Skip to content

Commit d8ba840

Browse files
authored
migrate to ModDevGradle (#7)
1 parent b7d7359 commit d8ba840

File tree

4 files changed

+68
-36
lines changed

4 files changed

+68
-36
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@ bin/
3030

3131
run/
3232
run-data/
33+
/src/generated/resources/.cache/*

build.gradle

Lines changed: 63 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,15 @@ buildscript {
1010

1111
plugins {
1212
id "idea"
13+
id "eclipse"
1314
id "maven-publish"
14-
id 'net.minecraftforge.gradle' version '[6.0,6.2)'
15-
id 'org.parchmentmc.librarian.forgegradle' version '1.+'
15+
id 'net.neoforged.moddev.legacyforge' version '2.0.91'
1616
id 'com.diffplug.spotless' version '7.0.2'
17-
id 'org.spongepowered.mixin' version '0.7+'
1817
}
1918

20-
def generatedResources = file("src/generated")
21-
2219
sourceSets {
23-
main {
24-
resources.srcDir generatedResources
20+
main.resources {
21+
srcDir 'src/generated/resources'
2522
}
2623
}
2724

@@ -76,54 +73,85 @@ version = mod_version
7673
group = maven_group
7774
base { archivesName = archives_base_name }
7875
java { sourceCompatibility = targetCompatibility = JavaVersion.VERSION_17 }
79-
sourceSets.main.resources { srcDir 'src/generated/resources' }
8076

81-
minecraft {
82-
mappings channel: mapping_channel, version: mapping_version
83-
copyIdeResources = true
77+
legacyForge {
78+
version = project.minecraft_version + '-' + project.forge_version
79+
80+
parchment {
81+
mappingsVersion = project.mapping_version
82+
minecraftVersion = project.minecraft_version
83+
}
84+
8485
runs {
8586
configureEach {
86-
workingDirectory project.file('run')
87-
property 'forge.logging.markers', 'REGISTRIES'
88-
property 'forge.logging.console.level', 'debug'
89-
mods { "${mod_id}" { source sourceSets.main } }
90-
property 'mixin.env.remapRefMap', 'true'
91-
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
87+
// Recommended logging data for a userdev environment
88+
// The markers can be added/remove as needed separated by commas.
89+
// "SCAN": For mods scan.
90+
// "REGISTRIES": For firing of registry events.
91+
// "REGISTRYDUMP": For getting the contents of all registries.
92+
systemProperty 'forge.logging.markers', 'REGISTRIES'
93+
94+
// Recommended logging level for the console
95+
// You can set various levels here.
96+
// Please read: https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
97+
logLevel = org.slf4j.event.Level.DEBUG
98+
sourceSet = sourceSets.main
99+
}
100+
client {
101+
client()
102+
programArguments.addAll('--refresh-dependencies')
103+
systemProperty('forge.enabledGameTestNamespaces', project.mod_id)
104+
}
105+
server {
106+
server()
107+
systemProperty('forge.enabledGameTestNamespaces', project.mod_id)
108+
programArguments.addAll('--nogui', '--world', 'world-extra')
92109
}
93-
client { property 'forge.enabledGameTestNamespaces', mod_id }
94-
server { property 'forge.enabledGameTestNamespaces', mod_id; args '--nogui' }
95110
data {
96-
// example of overriding the workingDirectory set in configureEach above
97-
workingDirectory project.file('run-data')
111+
data()
98112

99113
// Specify the modid for data generation, where to output the resulting resource, and where to look for existing resources.
100-
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
114+
programArguments.addAll('--mod', project.mod_id, '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath())
115+
programArguments.addAll('--existing-mod', 'gtceu')
101116
}
102117
}
103-
}
104118

119+
mods {
120+
// define mod <-> source bindings
121+
// these are used to tell the game which sources are for which mod
122+
// mostly optional in a single mod project
123+
// but multi mod projects should define one per mod
124+
"${mod_id}" {
125+
sourceSet(sourceSets.main)
126+
}
127+
}
128+
}
129+
jar {
130+
manifest.attributes([
131+
"MixinConfigs": "examplemod.mixins.json"
132+
])
133+
}
105134

106-
apply plugin: 'org.spongepowered.mixin'
107135
apply from: "$rootDir/gradle/scripts/spotless.gradle"
108136

109137
dependencies {
110-
minecraft "net.minecraftforge:forge:${minecraft_version}-${forge_version}"
138+
compileOnly("org.jetbrains:annotations:26.0.1")
111139

112140
// Mixin
113-
annotationProcessor "org.spongepowered:mixin:0.8.7:processor"
141+
annotationProcessor('org.spongepowered:mixin:0.8.5:processor')
114142

115143
// JEI, EMI, Jade
116-
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
117-
compileOnly fg.deobf("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
118-
runtimeOnly fg.deobf("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
119-
runtimeOnly fg.deobf("dev.emi:emi-forge:${emi_version}+${minecraft_version}")
120-
runtimeOnly fg.deobf("curse.maven:jade-324717:5390389")
144+
modCompileOnly("mezz.jei:jei-${minecraft_version}-forge-api:${jei_version}")
145+
modCompileOnly("mezz.jei:jei-${minecraft_version}-common-api:${jei_version}")
146+
modRuntimeOnly("mezz.jei:jei-${minecraft_version}-forge:${jei_version}")
147+
modRuntimeOnly("dev.emi:emi-forge:${emi_version}+${minecraft_version}")
148+
modRuntimeOnly("curse.maven:jade-324717:5390389")
121149

122150
// GregTech and dependencies
123-
implementation fg.deobf("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtceu_version}:slim") { transitive = false }
124-
implementation fg.deobf("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
125-
implementation fg.deobf("com.tterrag.registrate:Registrate:${registrate_version}")
126-
runtimeOnly fg.deobf("dev.toma.configuration:configuration-forge-${minecraft_version}:${configuration_version}")
151+
modImplementation("com.gregtechceu.gtceu:gtceu-${minecraft_version}:${gtceu_version}:slim") { transitive = false }
152+
modImplementation("com.lowdragmc.ldlib:ldlib-forge-${minecraft_version}:${ldlib_version}") { transitive = false }
153+
modImplementation("com.tterrag.registrate:Registrate:${registrate_version}")
154+
modRuntimeOnly("dev.toma.configuration:configuration-forge-${minecraft_version}:${configuration_version}")
127155

128156
// lombok
129157
compileOnly 'org.projectlombok:lombok:1.18.24'

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
88
# forge version, latest version can be found on https://files.minecraftforge.net/
99
forge_version=47.4.0
1010
mapping_channel=parchment
11-
mapping_version=2023.09.03-1.20.1
11+
mapping_version=2023.09.03
1212

1313
# Mod Properties
1414
mod_version=0.1.0

settings.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ pluginManagement {
77
maven { url = 'https://maven.parchmentmc.org' }
88
}
99
}
10+
plugins {
11+
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
12+
}

0 commit comments

Comments
 (0)