@@ -2,7 +2,7 @@ plugins {
22 id ' idea'
33 id ' java-library'
44 id ' maven-publish'
5- id ' net.neoforged.moddev' version ' 1 .0.23 '
5+ id ' net.neoforged.moddev.legacyforge ' version ' 2 .0.76 '
66}
77
88tasks. named(' wrapper' , Wrapper ). configure {
@@ -25,12 +25,12 @@ base {
2525 archivesName = mod_id
2626}
2727
28- // Mojang ships Java 21 to end users starting in 1.20.5 , so mods should target Java 21 .
29- java. toolchain. languageVersion = JavaLanguageVersion . of(21 )
28+ // Mojang ships Java 21 to end users in 1.20.1 , so mods should target Java 17 .
29+ java. toolchain. languageVersion = JavaLanguageVersion . of(17 )
3030
31- neoForge {
32- // Specify the version of NeoForge to use.
33- version = project. neo_version
31+ legacyForge {
32+ // Specify the version of MinecraftForge to use.
33+ version = project. minecraft_version + ' - ' + project . forge_version
3434
3535 parchment {
3636 mappingsVersion = project. parchment_mappings_version
@@ -47,21 +47,21 @@ neoForge {
4747 client()
4848
4949 // Comma-separated list of namespaces to load gametests from. Empty = all namespaces.
50- systemProperty ' neoforge .enabledGameTestNamespaces' , project. mod_id
50+ systemProperty ' forge .enabledGameTestNamespaces' , project. mod_id
5151 }
5252
5353 server {
5454 server()
5555 programArgument ' --nogui'
56- systemProperty ' neoforge .enabledGameTestNamespaces' , project. mod_id
56+ systemProperty ' forge .enabledGameTestNamespaces' , project. mod_id
5757 }
5858
5959 // This run config launches GameTestServer and runs all registered gametests, then exits.
6060 // By default, the server will crash when no gametests are provided.
6161 // The gametest system is also enabled by default for other run configs under the /test command.
6262 gameTestServer {
6363 type = " gameTestServer"
64- systemProperty ' neoforge .enabledGameTestNamespaces' , project. mod_id
64+ systemProperty ' forge .enabledGameTestNamespaces' , project. mod_id
6565 }
6666
6767 data {
@@ -104,53 +104,77 @@ neoForge {
104104// Include resources generated by data generators.
105105sourceSets. main. resources { srcDir ' src/generated/resources' }
106106
107- // Sets up a dependency configuration called 'localRuntime'.
108- // This configuration should be used instead of 'runtimeOnly' to declare
107+ // Sets up a dependency configuration called 'localRuntime' and a deobfuscating one called 'modLocalRuntime'
108+ // These configurations should be used instead of 'runtimeOnly' to declare
109109// a dependency that will be present for runtime testing but that is
110110// "optional", meaning it will not be pulled by dependents of this mod.
111111configurations {
112112 runtimeClasspath. extendsFrom localRuntime
113113}
114+ obfuscation {
115+ createRemappingConfiguration(configurations. localRuntime)
116+ }
114117
115118dependencies {
119+ // If you wish to declare dependencies against mods, make sure to use the 'mod*' configurations so that they're remapped.
120+ // See https://github.com/neoforged/ModDevGradle/blob/main/LEGACY.md#remapping-mod-dependencies for more information.
121+
116122 // Example optional mod dependency with JEI
117123 // The JEI API is declared for compile time use, while the full JEI artifact is used at runtime
118- // compileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
119- // compileOnly "mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}"
124+ // modCompileOnly "mezz.jei:jei-${mc_version}-common-api:${jei_version}"
125+ // modCompileOnly "mezz.jei:jei-${mc_version}-neoforge-api:${jei_version}"
120126 // We add the full version to localRuntime, not runtimeOnly, so that we do not publish a dependency on it
121- // localRuntime "mezz.jei:jei-${mc_version}-neoforge:${jei_version}"
127+ // modLocalRuntime "mezz.jei:jei-${mc_version}-neoforge:${jei_version}"
122128
123129 // Example mod dependency using a mod jar from ./libs with a flat dir repository
124130 // This maps to ./libs/coolmod-${mc_version}-${coolmod_version}.jar
125131 // The group id is ignored when searching -- in this case, it is "blank"
126- // implementation "blank:coolmod-${mc_version}:${coolmod_version}"
132+ // modImplementation "blank:coolmod-${mc_version}:${coolmod_version}"
127133
128134 // Example mod dependency using a file as dependency
129- // implementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar")
135+ // modImplementation files("libs/coolmod-${mc_version}-${coolmod_version}.jar")
130136
131137 // Example project dependency using a sister or child project:
132- // implementation project(":myproject")
138+ // modImplementation project(":myproject")
133139
134140 // For more info:
135141 // http://www.gradle.org/docs/current/userguide/artifact_dependencies_tutorial.html
136142 // http://www.gradle.org/docs/current/userguide/dependency_management.html
137143}
138144
145+ // Uncomment the lines below if you wish to configure mixin. The mixin file should be named modid.mixins.json.
146+ /*
147+ mixin {
148+ add sourceSets.main, "${mod_id}.refmap.json"
149+ config "${mod_id}.mixins.json"
150+ }
151+
152+ dependencies {
153+ annotationProcessor 'org.spongepowered:mixin:0.8.5:processor'
154+ }
155+
156+ jar {
157+ manifest.attributes([
158+ "MixinConfigs": "${mod_id}.mixins.json"
159+ ])
160+ }
161+ */
162+
139163// This block of code expands all declared replace properties in the specified resource targets.
140164// A missing property will result in an error. Properties are expanded using ${} Groovy notation.
141165var generateModMetadata = tasks. register(" generateModMetadata" , ProcessResources ) {
142166 var replaceProperties = [
143- minecraft_version : minecraft_version,
144- minecraft_version_range : minecraft_version_range,
145- neo_version : neo_version ,
146- neo_version_range : neo_version_range ,
147- loader_version_range : loader_version_range,
148- mod_id : mod_id,
149- mod_name : mod_name,
150- mod_license : mod_license,
151- mod_version : mod_version,
152- mod_authors : mod_authors,
153- mod_description : mod_description
167+ minecraft_version : minecraft_version,
168+ minecraft_version_range : minecraft_version_range,
169+ forge_version : forge_version ,
170+ forge_version_range : forge_version_range ,
171+ loader_version_range : loader_version_range,
172+ mod_id : mod_id,
173+ mod_name : mod_name,
174+ mod_license : mod_license,
175+ mod_version : mod_version,
176+ mod_authors : mod_authors,
177+ mod_description : mod_description
154178 ]
155179 inputs. properties replaceProperties
156180 expand replaceProperties
@@ -161,7 +185,7 @@ var generateModMetadata = tasks.register("generateModMetadata", ProcessResources
161185// this works with both building through Gradle and the IDE.
162186sourceSets. main. resources. srcDir generateModMetadata
163187// To avoid having to run "generateModMetadata" manually, make it run on every project reload
164- neoForge . ideSyncTask generateModMetadata
188+ legacyForge . ideSyncTask generateModMetadata
165189
166190// Example configuration to allow publishing using the maven-publish plugin
167191publishing {
0 commit comments