From d4f6559c65b1a5e482619f3d23042bf85127cea6 Mon Sep 17 00:00:00 2001 From: Angelina Michalek Date: Sun, 15 Mar 2026 17:41:53 -0400 Subject: [PATCH 1/2] Add ForgeGradle 7 test. --- fg7-obf-with-deps/.gitattributes | 0 fg7-obf-with-deps/.gitignore | 25 ++++++ fg7-obf-with-deps/build.gradle | 81 +++++++++++++++++++ fg7-obf-with-deps/build.properties | 9 +++ fg7-obf-with-deps/gradlew | 0 fg7-obf-with-deps/gradlew.bat | 0 fg7-obf-with-deps/settings.gradle | 16 ++++ .../com/example/examplemod/ExampleMod.java | 16 ++++ .../com/example/examplemod/TestJEIPlugin.java | 14 ++++ .../src/main/resources/META-INF/mods.toml | 29 +++++++ .../src/main/resources/pack.mcmeta | 6 ++ gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 1 + 13 files changed, 198 insertions(+), 1 deletion(-) create mode 100644 fg7-obf-with-deps/.gitattributes create mode 100644 fg7-obf-with-deps/.gitignore create mode 100644 fg7-obf-with-deps/build.gradle create mode 100644 fg7-obf-with-deps/build.properties create mode 100644 fg7-obf-with-deps/gradlew create mode 100644 fg7-obf-with-deps/gradlew.bat create mode 100644 fg7-obf-with-deps/settings.gradle create mode 100644 fg7-obf-with-deps/src/main/java/com/example/examplemod/ExampleMod.java create mode 100644 fg7-obf-with-deps/src/main/java/com/example/examplemod/TestJEIPlugin.java create mode 100644 fg7-obf-with-deps/src/main/resources/META-INF/mods.toml create mode 100644 fg7-obf-with-deps/src/main/resources/pack.mcmeta diff --git a/fg7-obf-with-deps/.gitattributes b/fg7-obf-with-deps/.gitattributes new file mode 100644 index 0000000..e69de29 diff --git a/fg7-obf-with-deps/.gitignore b/fg7-obf-with-deps/.gitignore new file mode 100644 index 0000000..12f8644 --- /dev/null +++ b/fg7-obf-with-deps/.gitignore @@ -0,0 +1,25 @@ +# eclipse +bin +*.launch +.settings +.metadata +.classpath +.project + +# idea +out +*.ipr +*.iws +*.iml +.idea + +# gradle +build +.gradle + +# other +eclipse +run + +# Files from Forge MDK +forge*changelog.txt diff --git a/fg7-obf-with-deps/build.gradle b/fg7-obf-with-deps/build.gradle new file mode 100644 index 0000000..a61d1af --- /dev/null +++ b/fg7-obf-with-deps/build.gradle @@ -0,0 +1,81 @@ +plugins { + id("java") + id("idea") + id("eclipse") + id("net.minecraftforge.gradle") version "7.0.15" + id("net.minecraftforge.renamer") +} + +version = "1.0" +group = "com.example" +base.archivesName = "fg7-obf-with-deps" + +java.toolchain.languageVersion = JavaLanguageVersion.of(17) + +minecraft { + mappings("official", "1.20.1") + runs { + configureEach { + workingDir.convention(layout.projectDirectory.dir("run")) + + //systemProperty("forge.logging.markers", "REGISTRIES") + + systemProperty("forge.logging.console.level", "debug") + + systemProperty("eventbus.api.strictRuntimeChecks", "true") + + //args("-mixin.config=test.mixins.json") + } + + register("client") { + systemProperty("forge.enabledGameTestNamespaces", "test") + } + } +} + +repositories { + minecraft.mavenizer(it) + maven(fg.forgeMaven) + maven(fg.minecraftLibsMaven) + maven { + // location of the maven that hosts JEI files before January 2023 + name = "Progwml6's maven" + url = "https://dvs1.progwml6.com/files/maven/" + } + maven { + // location of the maven that hosts JEI files since January 2023 + name = "Jared's maven" + url = "https://maven.blamejared.com/" + } + maven { + // location of a maven mirror for JEI files, as a fallback + name = "ModMaven" + url = "https://modmaven.dev" + } +} + +dependencies { + implementation(minecraft.dependency("net.minecraftforge:forge:1.20.1-47.4.16")) + + var fromSrg = renamer.convert("reverse", minecraft.dependency.toSrgFile) { + reverse = true + format = "srg" + } + + compileOnly(renamer.dependency("mezz.jei:jei-1.20.1-forge-api:15.20.0.129") { + map.from(fromSrg) + }) + runtimeOnly(renamer.dependency("mezz.jei:jei-1.20.1-forge:15.20.0.129") { + map.from(fromSrg) + }) +} + +// Creates a task named 'renameJar' +renamer.classes(jar) { + // You need to point to the mappings you wish to apply, typically this is the Mapped names to SRG for older versions. + // ForgeGradle/Mavenizer generate these files for the dependencies you declare. So you can use the helper. + // Or you can specify the file or dependency if you host them yourself. + map.from(minecraft.dependency.toSrgFile) + // This is publishable task so you can specify things such as the classifier + archiveClassifier = "srg" +} diff --git a/fg7-obf-with-deps/build.properties b/fg7-obf-with-deps/build.properties new file mode 100644 index 0000000..3feceb6 --- /dev/null +++ b/fg7-obf-with-deps/build.properties @@ -0,0 +1,9 @@ +org.gradle.caching=true +org.gradle.parallel=true +org.gradle.configureondemand=true + +org.gradle.configuration-cache=true +org.gradle.configuration-cache.parallel=true +org.gradle.configuration-cache.problems=warn + +net.minecraftforge.gradle.merge-source-sets=true diff --git a/fg7-obf-with-deps/gradlew b/fg7-obf-with-deps/gradlew new file mode 100644 index 0000000..e69de29 diff --git a/fg7-obf-with-deps/gradlew.bat b/fg7-obf-with-deps/gradlew.bat new file mode 100644 index 0000000..e69de29 diff --git a/fg7-obf-with-deps/settings.gradle b/fg7-obf-with-deps/settings.gradle new file mode 100644 index 0000000..deb32fd --- /dev/null +++ b/fg7-obf-with-deps/settings.gradle @@ -0,0 +1,16 @@ +pluginManagement { + includeBuild("../renamer-gradle") + + repositories { + mavenCentral() + gradlePluginPortal() + maven { url = 'https://maven.minecraftforge.net' } + //mavenLocal() + } +} + +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" +} + +rootProject.name = "fg7-obf-with-deps" diff --git a/fg7-obf-with-deps/src/main/java/com/example/examplemod/ExampleMod.java b/fg7-obf-with-deps/src/main/java/com/example/examplemod/ExampleMod.java new file mode 100644 index 0000000..6cc0cb3 --- /dev/null +++ b/fg7-obf-with-deps/src/main/java/com/example/examplemod/ExampleMod.java @@ -0,0 +1,16 @@ +package com.example.examplemod; + +import com.mojang.logging.LogUtils; +import net.minecraft.world.level.block.Blocks; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; +import org.slf4j.Logger; + +@Mod("test") +public final class ExampleMod { + private static final Logger LOGGER = LogUtils.getLogger(); + + public ExampleMod(FMLJavaModLoadingContext context) { + LOGGER.info("If this shows up we can reference obfuscated code: " + Blocks.DIRT.getDescriptionId()); + } +} diff --git a/fg7-obf-with-deps/src/main/java/com/example/examplemod/TestJEIPlugin.java b/fg7-obf-with-deps/src/main/java/com/example/examplemod/TestJEIPlugin.java new file mode 100644 index 0000000..de8f30e --- /dev/null +++ b/fg7-obf-with-deps/src/main/java/com/example/examplemod/TestJEIPlugin.java @@ -0,0 +1,14 @@ +package com.example.examplemod; + +import mezz.jei.api.IModPlugin; +import mezz.jei.api.JeiPlugin; +import net.minecraft.resources.ResourceLocation; +import org.jetbrains.annotations.NotNull; + +@JeiPlugin +public class TestJEIPlugin implements IModPlugin { + @Override + public @NotNull ResourceLocation getPluginUid() { + return ResourceLocation.fromNamespaceAndPath("examplemod", "test"); + } +} diff --git a/fg7-obf-with-deps/src/main/resources/META-INF/mods.toml b/fg7-obf-with-deps/src/main/resources/META-INF/mods.toml new file mode 100644 index 0000000..9d224f2 --- /dev/null +++ b/fg7-obf-with-deps/src/main/resources/META-INF/mods.toml @@ -0,0 +1,29 @@ +modLoader = "javafml" +loaderVersion = "*" +license = "Example" + +[[mods]] +modId = "test" +version = "1.0" +displayName = "FG7 Obfuscation With Dependencies" + +[[dependencies.test]] +modId = "forge" +mandatory = true +versionRange = "[46,)" +ordering = "NONE" +side = "BOTH" + +[[dependencies.test]] +modId = "minecraft" +mandatory = true +versionRange = "[1.20.1]" +ordering = "NONE" +side = "BOTH" + +[[dependencies.test]] +modId = "jei" +mandatory = true +versionRange = "[15.20.0.129]" +ordering = "AFTER" +side = "BOTH" \ No newline at end of file diff --git a/fg7-obf-with-deps/src/main/resources/pack.mcmeta b/fg7-obf-with-deps/src/main/resources/pack.mcmeta new file mode 100644 index 0000000..8ed93a9 --- /dev/null +++ b/fg7-obf-with-deps/src/main/resources/pack.mcmeta @@ -0,0 +1,6 @@ +{ + "pack": { + "description": "resources", + "pack_format": 12 + } +} \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2a1bb9d..19a6bde 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-rc-2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle b/settings.gradle index a226f97..f6ac35b 100644 --- a/settings.gradle +++ b/settings.gradle @@ -6,6 +6,7 @@ rootProject.name = 'renamer' includeBuild 'renamer-gradle' includeBuild 'renamer-gradle-demo' +includeBuild 'fg7-obf-with-deps' // Applying plugins causes them to not have any IDE support when also applied to any build.gradle files // The workaround for now is to use this listener here so that it can stay in settings.gradle From 3473aafa57071561830efb826eec7bad32c6c3da Mon Sep 17 00:00:00 2001 From: Angelina Michalek Date: Sun, 15 Mar 2026 18:50:55 -0400 Subject: [PATCH 2/2] It works better? Still not functional --- fg7-obf-with-deps/build.gradle | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fg7-obf-with-deps/build.gradle b/fg7-obf-with-deps/build.gradle index a61d1af..2bf9e8f 100644 --- a/fg7-obf-with-deps/build.gradle +++ b/fg7-obf-with-deps/build.gradle @@ -2,7 +2,7 @@ plugins { id("java") id("idea") id("eclipse") - id("net.minecraftforge.gradle") version "7.0.15" + id("net.minecraftforge.gradle") version "[7.0.15,8.0)" id("net.minecraftforge.renamer") } @@ -55,7 +55,8 @@ repositories { } dependencies { - implementation(minecraft.dependency("net.minecraftforge:forge:1.20.1-47.4.16")) + var mcDep= minecraft.dependency("net.minecraftforge:forge:1.20.1-47.4.16") + implementation(mcDep) var fromSrg = renamer.convert("reverse", minecraft.dependency.toSrgFile) { reverse = true @@ -64,9 +65,11 @@ dependencies { compileOnly(renamer.dependency("mezz.jei:jei-1.20.1-forge-api:15.20.0.129") { map.from(fromSrg) + libraries.from(configurations.detachedConfiguration(mcDep.asProvider().get()).resolve()) }) runtimeOnly(renamer.dependency("mezz.jei:jei-1.20.1-forge:15.20.0.129") { map.from(fromSrg) + libraries.from(configurations.detachedConfiguration(mcDep.asProvider().get()).resolve()) }) }