Files
WorldHandler/build.gradle
Codex 193d93069e feat: add NeoForge 1.21.1 support
Port WorldHandler to Minecraft 1.21.1 on NeoForge 21.1.225.

This migrates the build from ForgeGradle to NeoForge ModDevGradle, updates mod metadata, replaces Forge API usage with NeoForge equivalents, updates registry access for 1.21.1, and avoids a client-startup advancement reload that can hang large modpacks.

Validated with compileJava and full Gradle build.
2026-04-26 20:54:01 +02:00

105 lines
2.7 KiB
Groovy

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
}
}