diff --git a/build.gradle b/build.gradle index 1df9b4c..92cc795 100644 --- a/build.gradle +++ b/build.gradle @@ -1,12 +1,14 @@ buildscript { repositories { - jcenter() mavenCentral() mavenLocal() maven { url = "https://maven.minecraftforge.net/" } } dependencies { - classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true + classpath("com.anatawa12.forge:ForgeGradle:2.3-1.0.+") { + changing = true + } + classpath "org.jfrog.buildinfo:build-info-extractor-gradle:5.2.+" } } @@ -39,123 +41,88 @@ repositories { } } -apply plugin: 'net.minecraftforge.gradle' -// Only edit below this line, the above code adds and enables the necessary things for Forge to be setup. -apply plugin: 'eclipse' -apply plugin: 'maven-publish' - -ext.buildNumber = "0" -if (System.getenv("BUILD_NUMBER") != null) { - buildNumber = System.getenv("BUILD_NUMBER") - -} - -version = "$baseVersion.$buildNumber" -group = "fr.jackcartersmith.orbsat" -archivesBaseName = "OrbitalSatellite-$project.minecraftVersion" +apply plugin: 'net.minecraftforge.gradle.forge' +ext.buildNumber = "0" +if (System.getenv("BUILD_NUMBER") != null) { + buildNumber = System.getenv("BUILD_NUMBER") +} + +version = "$baseVersion.$buildNumber" +group = "fr.jackcartersmith.orbsat" +archivesBaseName = "OrbitalSatellite-$project.minecraftVersion" + sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. -compileJava { - sourceCompatibility = targetCompatibility = '1.8' -} - -minecraft { - // The mappings can be changed at any time, and must be in the following format. - // snapshot_YYYYMMDD Snapshot are built nightly. - // stable_# Stables are built at the discretion of the MCP team. - // Use non-default mappings at your own risk. they may not always work. - // Simply re-run your setup task after changing the mappings to update your workspace. - //mappings channel: 'snapshot', version: '20171003-1.12' - mappings channel: 'stable', version: '39-1.12' - // makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. - - // accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') - - // Default run configurations. - // These can be tweaked, removed, or duplicated as needed. - runs { - client { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - - // Recommended logging level for the console - property 'forge.logging.console.level', 'debug' - } - - server { - workingDirectory project.file('run') - - // Recommended logging data for a userdev environment - property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' - - // Recommended logging level for the console - property 'forge.logging.console.level', 'debug' - } - } -} - -// Include resources generated by data generators. -sourceSets.main.resources { srcDir 'src/generated/resources' } - -dependencies { - // Specify the version of Minecraft to use, If this is any group other then 'net.minecraft' it is assumed - // that the dep is a ForgeGradle 'patcher' dependency. And it's patches will be applied. - // The userdev artifact is a special name and will get all sorts of transformations applied to it. - minecraft 'net.minecraftforge:forge:1.12.2-14.23.5.2860' - - implementation "mezz.jei:jei_1.12.2:4.10.+" - implementation fg.deobf("cofh:RedstoneFlux:1.12-2.1.1.1") - implementation "li.cil.oc:OpenComputers:MC1.12.2-1.8.+" - implementation "mcp.mobius.waila:Hwyla:1.8.26-B41_1.12.2" - //compileOnly 'industrial-craft:industrialcraft-2:release:ex112'//'net.industrial-craft:industrialcraft-2:2.8.+' - //compileOnly 'baubles:Baubles:1.12:1.5.2' // old dependencies management - //minecraftLibrary 'baubles:Baubles:1.12:1.5.2' -} - -// Example for how to get properties into the manifest for reading by the runtime.. -jar { - manifest { - attributes([ - "Specification-Title": "examplemod", - "Specification-Vendor": "examplemodsareus", - "Specification-Version": "1", // We are version 1 of ourselves - "Implementation-Title": project.name, - "Implementation-Version": "${version}", - "Implementation-Vendor" :"examplemodsareus", - "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") - ]) - } -} - -// Example configuration to allow publishing using the maven-publish task -// This is the preferred method to reobfuscate your jar file -jar.finalizedBy('reobfJar') -// However if you are in a multi-project build, dev time needs unobfed jar files, so you can delay the obfuscation until publishing by doing -//publish.dependsOn('reobfJar') - -// workaround for userdev bug -tasks.create("copyResourceToClasses", Copy.class) { - tasks.classes.dependsOn(it) - dependsOn(tasks.processResources) - onlyIf { gradle.taskGraph.hasTask(tasks.prepareRuns) } - - into("$buildDir/classes/java/main") - // if you write @Mod class in kotlin, please use code below - // into("$buildDir/classes/kotlin/main") - from(tasks.processResources.destinationDir) -} - -publishing { - publications { - mavenJava(MavenPublication) { - artifact jar - } - } - repositories { - maven { - url "file:///${project.projectDir}/mcmodsrepo" - } + +minecraft { + version = "$project.minecraftVersion-$project.forgeVersion" + runDir = "eclipse" + + mappings = "stable_39" + makeObfSourceJar = false // an Srg named sources jar is made by default. uncomment this to disable. +} + +dependencies { + // you may put jars on which you depend on in ./libs + // or you may define them like so.. + //compile "some.group:artifact:version:classifier" + //compile "some.group:artifact:version" + + // real examples + //compile 'com.mod-buildcraft:buildcraft:6.0.8:dev' // adds buildcraft to the dev env + //compile 'com.googlecode.efficient-java-matrix-library:ejml:0.24' // adds ejml to the dev env + + // the 'provided' configuration is for optional dependencies that exist at compile-time but might not at runtime. + //provided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + + // the deobf configurations: 'deobfCompile' and 'deobfProvided' are the same as the normal compile and provided, + // except that these dependencies get remapped to your current MCP mappings + //deobfCompile 'com.mod-buildcraft:buildcraft:6.0.8:dev' + //deobfProvided 'com.mod-buildcraft:buildcraft:6.0.8:dev' + + // for more info... + // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html + // http://www.gradle.org/docs/current/userguide/dependency_management.html + + compile "mezz.jei:jei_1.12.2:4.10.+:api" + deobfCompile "cofh:RedstoneFlux:1.12-2.1.0.7:deobf" + compile "li.cil.oc:OpenComputers:MC1.12.2-1.7.+:api" + compile "mcp.mobius.waila:Hwyla:1.8.26-B41_1.12.2:api" + compileOnly "net.industrial-craft:industrialcraft-2:2.8.+" + compileOnly 'baubles:Baubles:1.12:1.5.2' +} + +task signJar(type: SignJar, dependsOn: reobfJar) { + onlyIf { // Skip the task if our secret data isn't available + project.hasProperty('keyStore') + } + dependsOn reobfJar + if (project.hasProperty('keyStore')) { // This needs to be a path to the keystore file + keyStore = project.keyStore + alias = project.keyStoreAlias + storePass = project.keyStorePass + keyPass = project.keyStoreKeyPass + inputFile = jar.archivePath + outputFile = jar.archivePath + } +} +build.dependsOn signJar + +processResources { + // this will ensure that this task is redone when the versions change. + inputs.property "version", project.version + inputs.property "mcversion", project.minecraft.version + + // replace stuff in mcmod.info, nothing else + from(sourceSets.main.resources.srcDirs) { + include "mcmod.info" + + // replace version and mcversion + expand "version": project.version, "mcversion": "1.12.2" + } + + // copy everything else, thats not the mcmod.info + from(sourceSets.main.resources.srcDirs) { + exclude "mcmod.info" } } diff --git a/gradle.properties b/gradle.properties index d1308a9..5e7eb3c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,4 +4,4 @@ baseVersion=1.0 minecraftVersion=1.12.2 forgeVersion=14.23.5.2847 org.gradle.jvmargs=-Xmx4G - +org.gradle.daemon=false diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b9d52d8..1d5b29f 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip