diff --git a/build.gradle b/build.gradle index 634a488..1df9b4c 100644 --- a/build.gradle +++ b/build.gradle @@ -3,11 +3,10 @@ buildscript { jcenter() mavenCentral() mavenLocal() - maven { url = "http://files.minecraftforge.net/maven" } + maven { url = "https://maven.minecraftforge.net/" } } dependencies { - classpath 'net.minecraftforge.gradle:ForgeGradle:2.3-SNAPSHOT' - classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.0.1" + classpath group: 'net.minecraftforge.gradle', name: 'ForgeGradle', version: '4.1.+', changing: true } } @@ -39,8 +38,11 @@ repositories { url = "http://maven.covers1624.net" } } - -apply plugin: 'net.minecraftforge.gradle.forge' + +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) { @@ -52,81 +54,108 @@ version = "$baseVersion.$buildNumber" group = "fr.jackcartersmith.orbsat" archivesBaseName = "OrbitalSatellite-$project.minecraftVersion" -sourceCompatibility = targetCompatibility = 1.8 +sourceCompatibility = targetCompatibility = compileJava.sourceCompatibility = compileJava.targetCompatibility = '1.8' // Need this here so eclipse task generates correctly. compileJava { - sourceCompatibility = targetCompatibility = 1.8 + sourceCompatibility = targetCompatibility = '1.8' } minecraft { - version = "$project.minecraftVersion-$project.forgeVersion" - runDir = "eclipse" + // 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. - mappings = "stable_39" - //mappings = "snapshot_20180814" - 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 { - // 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 + // 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' - // 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.6:universal" - 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 'industrial-craft:industrialcraft-2:release:ex112'//'net.industrial-craft:industrialcraft-2:2.8.+' - //compileOnly 'baubles:Baubles:1.12:1.5.2' + 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' } -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 +// 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") + ]) } } -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 +// 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') - // replace stuff in mcmod.info, nothing else - from(sourceSets.main.resources.srcDirs) { - include "mcmod.info" +// workaround for userdev bug +tasks.create("copyResourceToClasses", Copy.class) { + tasks.classes.dependsOn(it) + dependsOn(tasks.processResources) + onlyIf { gradle.taskGraph.hasTask(tasks.prepareRuns) } - // replace version and mcversion - expand "version": project.version, "mcversion": "1.12.2" + 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 + } } - - // copy everything else, thats not the mcmod.info - from(sourceSets.main.resources.srcDirs) { - exclude "mcmod.info" + repositories { + maven { + url "file:///${project.projectDir}/mcmodsrepo" + } } } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 94336fc..7a3265e 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 290541c..b9d52d8 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.8.1-bin.zip