Skip to content

Commit 094e717

Browse files
committed
build: Update Gradle, Loom, ForgeGradle, Balm
1 parent 84c2fab commit 094e717

4 files changed

Lines changed: 38 additions & 82 deletions

File tree

forge/build.gradle

Lines changed: 32 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -3,100 +3,63 @@ import net.darkhax.curseforgegradle.TaskPublishCurseForge
33
plugins {
44
id 'multiloader-loader'
55
alias libs.plugins.forgeGradle
6-
alias libs.plugins.mixin
76
alias libs.plugins.curseForgeGradle
87
alias libs.plugins.modrinthMinotaur
98
}
109

11-
mixin {
12-
config("${mod_id}.mixins.json")
13-
config("${mod_id}.forge.mixins.json")
14-
}
15-
16-
jar {
17-
manifest {
18-
attributes["MixinConfigs"] = "${mod_id}.mixins.json,${mod_id}.forge.mixins.json"
19-
}
20-
}
10+
java.toolchain.languageVersion = JavaLanguageVersion.of(21)
2111

2212
minecraft {
2313
mappings channel: 'official', version: libs.minecraft.get().version
2414

25-
copyIdeResources = true //Calls processResources when in dev
26-
27-
reobf = false // Forge 1.20.6+ uses official mappings at runtime, so we shouldn't reobf from official to SRG
28-
29-
// Automatically enable forge AccessTransformers if the file exists
30-
def at = file('src/main/resources/META-INF/accesstransformer.cfg')
31-
if (at.exists()) {
32-
accessTransformer = at
33-
}
34-
3515
runs {
36-
client {
37-
workingDirectory file('runs/client')
38-
ideaModule "${rootProject.name}.${project.name}.main"
39-
taskName "Client"
40-
41-
property 'forge.enabledGameTestNamespaces', mod_id
42-
43-
mods {
44-
modClientRun {
45-
source sourceSets.main
46-
}
47-
}
48-
}
49-
50-
server {
51-
workingDirectory file('runs/server')
52-
ideaModule "${rootProject.name}.${project.name}.main"
53-
taskName "Server"
54-
55-
property 'forge.enabledGameTestNamespaces', mod_id
56-
57-
mods {
58-
modServerRun {
59-
source sourceSets.main
60-
}
61-
}
16+
configureEach {
17+
workingDir.convention layout.projectDirectory.dir('run')
18+
// Mixin requires either specifying the config via command line, or in the Manifest
19+
args "--mixin.config=${mod_id}.mixins.json,${mod_id}-api.mixins.json,${mod_id}-forge.mixins.json"
6220
}
6321

64-
data {
65-
workingDirectory file('runs/data')
66-
ideaModule "${rootProject.name}.${project.name}.main"
67-
args '--mod', mod_id, '--all', '--output', file('src/generated/resources/'), '--existing', file('src/main/resources/')
68-
taskName "Data"
69-
70-
mods {
71-
modDataRun {
72-
source sourceSets.main
73-
}
74-
}
22+
register('client') {
23+
systemProperty 'forge.enabledGameTestNamespaces', mod_id
7524
}
7625
}
7726
}
7827

79-
sourceSets.main.resources.srcDir 'src/generated/resources'
28+
repositories {
29+
maven minecraft.mavenizer
30+
maven fg.forgeMaven
31+
maven fg.minecraftLibsMaven
32+
mavenCentral()
33+
}
8034

8135
dependencies {
8236
def mcVersion = libs.minecraft.get().version
8337
def forgeVersion = libs.forge.get().version
84-
minecraft "net.minecraftforge:forge:${mcVersion}-${forgeVersion}"
85-
def mixinVersion = libs.mixin.get().version
86-
annotationProcessor "org.spongepowered:mixin:${mixinVersion}:processor"
38+
implementation minecraft.dependency("net.minecraftforge:forge:$mcVersion-$forgeVersion")
39+
annotationProcessor 'net.minecraftforge:eventbus-validator:7.0-beta.10'
8740
}
8841

89-
apply from: rootProject.file('repositories.gradle')
90-
apply from: 'dependencies.gradle'
42+
tasks.withType(JavaCompile).configureEach {
43+
options.encoding = 'UTF-8' // Use the UTF-8 charset for Java compilation
44+
}
9145

92-
publishing {
93-
publications {
94-
mavenJava(MavenPublication) {
95-
fg.component(it)
96-
}
46+
tasks.named('jar', Jar) {
47+
manifest {
48+
attributes["MixinConfigs"] = "${mod_id}.mixins.json,${mod_id}.forge.mixins.json"
49+
}
50+
}
51+
52+
fgtools {
53+
configure('mavenizer') {
54+
classpath = configurations.detachedConfiguration(dependencies.create('net.minecraftforge:minecraft-mavenizer:0.4.19'))
9755
}
9856
}
9957

58+
sourceSets.main.resources.srcDir 'src/generated/resources'
59+
60+
apply from: rootProject.file('repositories.gradle')
61+
apply from: 'dependencies.gradle'
62+
10063
tasks.register('curseforge', TaskPublishCurseForge) {
10164
dependsOn('build')
10265
description = 'Publishes the Forge build to CurseForge.'
@@ -132,10 +95,3 @@ modrinth {
13295
required.project "balm"
13396
}
13497
}
135-
136-
sourceSets.each {
137-
def dir = layout.buildDirectory.dir("sourcesSets/$it.name")
138-
it.output.resourcesDir = dir
139-
it.java.destinationDirectory = dir
140-
}
141-

gradle/libs.versions.toml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
balm = "21.11.2"
2+
balm = "21.11.5"
33
minecraft = "1.21.11"
44
neoForm = "1.21.11-20251209.172050"
55
neoForge = "21.11.0-beta"
@@ -25,9 +25,9 @@ fabricLoader = { module = "net.fabricmc:fabric-loader", version.ref = "fabricLoa
2525
mixin = { module = "org.spongepowered:mixin", version = "0.8.7" }
2626

2727
[plugins]
28-
fabricLoom = { id = "fabric-loom", version = "1.13-SNAPSHOT" }
29-
modDevGradle = { id = "net.neoforged.moddev", version = "2.0.107" }
30-
forgeGradle = { id = "net.minecraftforge.gradle", version = "[6.0.25,6.2)" }
28+
fabricLoom = { id = "fabric-loom", version = "1.14-SNAPSHOT" }
29+
modDevGradle = { id = "net.neoforged.moddev", version = "2.0.139" }
30+
forgeGradle = { id = "net.minecraftforge.gradle", version = "[7,8)" }
3131
mixin = { id = "org.spongepowered.mixin", version = "0.7-SNAPSHOT" }
3232
curseForgeGradle = { id = "net.darkhax.curseforgegradle", version = "1.1.26" }
3333
modrinthMinotaur = { id = "com.modrinth.minotaur", version = "2.+" }

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-rc-1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

settings.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ pluginManagement {
4040
}
4141

4242
plugins {
43-
id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0'
43+
id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0'
4444
}
4545

4646
includeBuild('build-logic')

0 commit comments

Comments
 (0)