148 lines
4.5 KiB
Groovy
148 lines
4.5 KiB
Groovy
buildscript {
|
|
repositories {
|
|
gradlePluginPortal()
|
|
}
|
|
dependencies {
|
|
classpath 'com.github.johnrengelman:shadow:6.1.0'
|
|
}
|
|
}
|
|
|
|
plugins {
|
|
id 'fabric-loom' version '0d0261a'
|
|
id 'maven-publish'
|
|
}
|
|
|
|
apply plugin: 'com.github.johnrengelman.shadow'
|
|
apply plugin: 'java'
|
|
|
|
sourceCompatibility = JavaVersion.VERSION_1_8
|
|
targetCompatibility = JavaVersion.VERSION_1_8
|
|
|
|
def shortHash = 'git rev-parse --short HEAD'.execute().in.text.trim()
|
|
archivesBaseName = project.archives_base_name
|
|
version = project.mod_version
|
|
group = project.maven_group
|
|
|
|
repositories {
|
|
// Add repositories to retrieve artifacts from in here.
|
|
// You should only use this when depending on other mods because
|
|
// Loom adds some essential maven repositories to download Minecraft and libraries from automatically.
|
|
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
|
|
// for more information about repositories.
|
|
mavenCentral()
|
|
maven {
|
|
name 'Jitpack'
|
|
url 'https://jitpack.io/'
|
|
}
|
|
maven {
|
|
name 'HalfOf2'
|
|
url 'https://storage.googleapis.com/devan-maven/'
|
|
}
|
|
}
|
|
|
|
minecraft {
|
|
// Skip old versions of libraries which Mojang use but we don't need
|
|
addLibraryFilter {library ->
|
|
return !(library.startsWith('net.minecraft:launchwrapper:') ||
|
|
library.startsWith('net.sf.jopt-simple:jopt-simple:') ||
|
|
library.startsWith('org.ow2.asm:asm-all:'))
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// To change the versions see the gradle.properties file
|
|
minecraft "com.mojang:minecraft:${project.minecraft_version}"
|
|
mappings "io.github.minecraft-cursed-legacy:plasma:b1.7.3-build.${project.plasma_build}"
|
|
modImplementation("io.github.minecraft-cursed-legacy:cursed-fabric-loader:${project.loader_version}") {
|
|
transitive false
|
|
}
|
|
|
|
shadow(compile('com.electronwill.night-config:toml:3.6.6'))
|
|
|
|
// API. You technically don't need it, but it's extremely useful for not having to write the same code in every mod.
|
|
// modImplementation "io.github.minecraft-cursed-legacy:cursed-legacy-api:${project.api_version}"
|
|
|
|
// PSA: Some older mods, compiled on Loom 0.2.1, might have outdated Maven POMs.
|
|
// You may need to force-disable transitiveness on them.
|
|
}
|
|
|
|
processResources {
|
|
inputs.property "version", project.version
|
|
|
|
filesMatching("fabric.mod.json") {
|
|
expand "version": project.version
|
|
}
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
// ensure that the encoding is set to UTF-8, no matter what the system default is
|
|
// this fixes some edge cases with special characters not displaying correctly
|
|
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
|
|
// If Javadoc is generated, this must be specified in that task too.
|
|
it.options.encoding = "UTF-8"
|
|
|
|
// The Minecraft launcher currently installs Java 8 for users, so your mod probably wants to target Java 8 too
|
|
// JDK 9 introduced a new way of specifying this that will make sure no newer classes or methods are used.
|
|
// We'll use that if it's available, but otherwise we'll use the older option.
|
|
def targetVersion = 8
|
|
if (JavaVersion.current().isJava9Compatible()) {
|
|
it.options.release = targetVersion
|
|
}
|
|
}
|
|
|
|
java {
|
|
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
|
|
// if it is present.
|
|
// If you remove this line, sources will not be generated.
|
|
withSourcesJar()
|
|
}
|
|
|
|
jar {
|
|
manifest {
|
|
attributes([
|
|
"MixinConfigs": archivesBaseName+".mixins.json",
|
|
"Implementation-Title": project.name,
|
|
"Implementation-Version": project.mod_version,
|
|
"Implementation-Commit": shortHash,
|
|
"Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ")
|
|
])
|
|
}
|
|
archiveClassifier.set("dev")
|
|
// from("LICENSE") {
|
|
// rename { "${it}_${project.archivesBaseName}"}
|
|
// }
|
|
}
|
|
|
|
shadowJar {
|
|
configurations = [project.configurations.shadow]
|
|
relocate "com.electronwill.nightconfig", "xyz.pixelatedw.finalbeta.com.electronwill.nightconfig"
|
|
archiveClassifier.set("dev")
|
|
}
|
|
|
|
remapJar {
|
|
dependsOn(shadowJar)
|
|
}
|
|
|
|
// configure the maven publication
|
|
publishing {
|
|
// publications {
|
|
// mavenJava(MavenPublication) {
|
|
// // add all the jars that should be included when publishing to maven
|
|
// artifact(remapJar) {
|
|
// builtBy remapJar
|
|
// }
|
|
// artifact(sourcesJar) {
|
|
// builtBy remapSourcesJar
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
// See https://docs.gradle.org/current/userguide/publishing_maven.html for information on how to set up publishing.
|
|
repositories {
|
|
// Add repositories to publish to here.
|
|
// Notice: This block does NOT have the same function as the block in the top level.
|
|
// The repositories here will be used for publishing your artifact, not for
|
|
// retrieving dependencies.
|
|
}
|
|
}
|