plugins { id 'java' id 'eclipse' id 'net.neoforged.moddev' version '2.0.141' id 'me.hypherionmc.cursegradle' version '2.+' } archivesBaseName = "${mod_name}-${minecraft_version}-neoforge" version = mod_version java.toolchain.languageVersion = JavaLanguageVersion.of(21) javadoc.options.addStringOption('Xdoclint:none', '-quiet') println('Java: ' + System.getProperty('java.version') + ' JVM: ' + System.getProperty('java.vm.version') + ' (' + System.getProperty('java.vendor') + ') Arch: ' + System.getProperty('os.arch')) neoForge { version = neo_version accessTransformers = project.files('src/main/resources/META-INF/accesstransformer.cfg') runs { client { client() gameDirectory = project.file('run') systemProperty 'neoforge.enabledGameTestNamespaces', mod_id } server { server() gameDirectory = project.file('run') programArgument '--nogui' systemProperty 'neoforge.enabledGameTestNamespaces', mod_id } gameTestServer { type = "gameTestServer" gameDirectory = project.file('run') systemProperty 'neoforge.enabledGameTestNamespaces', mod_id } data { data() gameDirectory = project.file('run-data') programArguments.addAll '--mod', mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() } } mods { "${mod_id}" { sourceSet(sourceSets.main) } } } sourceSets.main.resources { srcDir 'src/generated/resources' } tasks.named('jar', Jar).configure { manifest { attributes([ "Specification-Title": "${mod_id}", "Specification-Vendor": "${author}", "Specification-Version": "1", "Implementation-Title": "${mod_name}", "Implementation-Version": "${minecraft_version}-${version}", "Implementation-Vendor": "${author}", "Implementation-Timestamp": new Date().format("yyyy-MM-dd'T'HH:mm:ssZ"), "Main-Class": "${main_class}" ]) } } tasks.named('processResources', ProcessResources).configure { outputs.upToDateWhen { false } from sourceSets.main.resources filesMatching(['META-INF/neoforge.mods.toml']) { expand project.properties } } tasks.withType(JavaCompile).configureEach { options.encoding = 'UTF-8' } curseforge { apiKey = project.hasProperty("curse_api_key") ? curse_api_key : '' project { id = curse_project_id changelog = file('changelog.txt').canRead() ? file('changelog.txt').text : '' changelogType = 'text' releaseType = 'release' addGameVersion 'NeoForge' neoforge_compatible_minecraft_versions.split(",").each { addGameVersion(it) } mainArtifact(jar) { displayName = "${minecraft_version}-${mod_version} NeoForge" } } options { javaVersionAutoDetect = false } }