buildscript { repositories { maven { url = 'https://maven.minecraftforge.net' } mavenCentral() maven { url = 'https://repo.spongepowered.org/repository/maven-public' } maven { url = 'https://maven.parchmentmc.org' } } dependencies { classpath "net.minecraftforge.gradle:ForgeGradle:${forgegradle_version}" classpath "org.spongepowered:mixingradle:${mixingradle_version}" classpath "org.parchmentmc:librarian:${librarian_version}" } } plugins { id 'com.matthewprenger.cursegradle' version "${cursegradle_version}" } apply plugin: 'net.minecraftforge.gradle' apply plugin: 'org.parchmentmc.librarian.forgegradle' apply plugin: 'eclipse' apply plugin: 'maven-publish' apply plugin: 'org.spongepowered.mixin' jarJar.enable() boolean flywheelInWorkspace = findProject(':Flywheel') != null ext.buildNumber = System.getenv('BUILD_NUMBER') version = mod_version group = 'nl.requios.effortlessbuilding' base { archivesName = "effortlessbuilding-${artifact_minecraft_version}" } java.toolchain.languageVersion = JavaLanguageVersion.of(17) println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + ' (' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) minecraft { mappings channel: 'parchment', version: "${parchment_version}-${minecraft_version}" accessTransformer = file('src/main/resources/META-INF/accesstransformer.cfg') runs { client { workingDirectory project.file('run') arg '-mixin.config=flywheel.mixins.json' //jvmArgs '-XX:+UnlockCommercialFeatures' // uncomment for profiling property 'forge.logging.console.level', 'info' mods { effortlessbuilding { source sourceSets.main } if (flywheelInWorkspace) { flywheel { source project(":Flywheel").sourceSets.main } } } } server { workingDirectory project.file('run/server') property 'forge.logging.console.level', 'info' mods { effortlessbuilding { source sourceSets.main } } } data { workingDirectory project.file('run') property 'forge.logging.markers', 'REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' args '--mod', 'effortlessbuilding', '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources') mods { effortlessbuilding { source sourceSets.main } if (flywheelInWorkspace) { flywheel { source project(":Flywheel").sourceSets.main } } } } } } repositories { maven { // location of the maven for Registrate and Flywheel name = 'tterrag maven' url = 'https://maven.tterrag.com' } maven { url = 'https://www.cursemaven.com' content { includeGroup "curse.maven" } } maven { name = "Modrinth" url = "https://api.modrinth.com/maven" content { includeGroup "maven.modrinth" } } mavenLocal() flatDir { dirs 'libs' } } dependencies { minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}" jarJar("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") { jarJar.ranged(it, '[0.6.9,0.7)') } if (flywheelInWorkspace) { implementation project(':Flywheel') } else { implementation fg.deobf("com.jozufozu.flywheel:flywheel-forge-${flywheel_minecraft_version}:${flywheel_version}") } // Prevent Mixin annotation processor from getting into IntelliJ's annotation processor settings // This allows 'Settings > Build, Execution, and Deployment > Build Tools > Gradle > Build and run using' set to IntelliJ to work correctly if (!Boolean.getBoolean('idea.sync.active')) { annotationProcessor "org.spongepowered:mixin:${mixin_version}:processor" } } sourceSets.main.resources { srcDir 'src/generated/resources' exclude '.cache/' } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation } compileJava { options.compilerArgs = ['-Xdiags:verbose'] } jar { manifest { attributes([ "Specification-Title": "effortlessbuilding", "Specification-Vendor": "requios", "Specification-Version": "1", "Implementation-Title": project.name, "Implementation-Version": project.jar.archiveVersion, "Implementation-Vendor" :"requios", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ") ]) } } task jarJarRelease { group = 'jarjar' doLast { tasks.jarJar { classifier = '' } } finalizedBy tasks.jarJar } java { withSourcesJar() withJavadocJar() } jar.finalizedBy('reobfJar') tasks.jarJar.finalizedBy('reobfJarJar') publishing { publications { mavenJava(MavenPublication) { artifactId = base.archivesName.get() from components.java fg.component(it) jarJar.component(it) } } repositories { if (project.hasProperty('mavendir')) { maven { url mavendir } } } }