Skip to content

Commit fd1c4e0

Browse files
authored
Merge pull request #188 from ThexXTURBOXx/main
Add SRG obfuscation option
2 parents d1ed078 + 208239f commit fd1c4e0

13 files changed

Lines changed: 87 additions & 46 deletions

File tree

build.gradle

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
11
plugins {
2-
id "java"
2+
id "java"
33
}
44

55
allprojects {
66
apply plugin: "java"
7-
7+
88
repositories {
99
mavenCentral()
10-
maven { url "https://jitpack.io/" }
11-
maven { url "https://maven.fabricmc.net/" }
12-
maven { url "https://mcphackers.org/libraries/" }
13-
maven { url "https://maven.glass-launcher.net/releases" }
10+
maven { url = "https://jitpack.io/" }
11+
maven { url = "https://maven.fabricmc.net/" }
12+
maven { url = "https://mcphackers.org/libraries/" }
13+
maven { url = "https://maven.glass-launcher.net/releases" }
1414
}
1515

1616
dependencies {
1717
runtimeOnly sourceSets.test.output
1818

1919
// Required libraries
20-
implementation "org.ow2.asm:asm:${project.asm_version}"
21-
implementation "org.ow2.asm:asm-analysis:${project.asm_version}"
22-
implementation "org.ow2.asm:asm-commons:${project.asm_version}"
23-
implementation "org.ow2.asm:asm-tree:${project.asm_version}"
24-
implementation "org.ow2.asm:asm-util:${project.asm_version}"
20+
implementation libs.asm
21+
implementation libs.asm.analysis
22+
implementation libs.asm.commons
23+
implementation libs.asm.tree
24+
implementation libs.asm.util
2525

26-
implementation "org.mcphackers.rdi:rdi-nio:${project.rdi_version}"
27-
implementation "org.mcphackers.rdi:rdi:${project.rdi_version}"
26+
implementation libs.rdi.nio
27+
implementation libs.rdi
2828

29-
implementation "io.github.lassebq:fernflower:${project.fernflower_version}"
29+
implementation libs.fernflower
3030

31-
implementation "org.json:json:${project.json_version}"
32-
implementation "com.github.MCPHackers:DiffPatch:${project.diffpatch_version}"
33-
implementation "org.apache.commons:commons-lang3:${project.apache_version}"
34-
implementation "net.fabricmc:mapping-io:${project.mapping_io_version}"
31+
implementation libs.json
32+
implementation libs.diffpatch
33+
implementation libs.commons.lang3
34+
implementation libs.mapping.io
3535
}
3636

3737
tasks.withType(JavaCompile).configureEach {

cli/build.gradle

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
plugins {
2-
id "com.gradleup.shadow" version "8.3.1"
2+
alias libs.plugins.shadow
33
}
44

55
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
66

77
dependencies {
88
implementation rootProject
9-
implementation "org.fusesource.jansi:jansi:${project.jansi_version}"
9+
10+
implementation libs.jansi
1011
}
1112

1213
application {

gradle.properties

Lines changed: 0 additions & 9 deletions
This file was deleted.

gradle/libs.versions.toml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
[versions]
2+
asm = '9.8'
3+
commons-lang3 = '3.17.0'
4+
diffpatch = 'cde1224'
5+
fernflower = '1.0.0'
6+
flatlaf = '3.6'
7+
jansi = '2.4.1'
8+
json = '20250107'
9+
mapping-io = '0.7.1'
10+
rdi = '1.1'
11+
shadow-plugin = '8.3.1'
12+
13+
[libraries]
14+
asm = { module = "org.ow2.asm:asm", version.ref = "asm" }
15+
asm-analysis = { module = "org.ow2.asm:asm-analysis", version.ref = "asm" }
16+
asm-commons = { module = "org.ow2.asm:asm-commons", version.ref = "asm" }
17+
asm-tree = { module = "org.ow2.asm:asm-tree", version.ref = "asm" }
18+
asm-util = { module = "org.ow2.asm:asm-util", version.ref = "asm" }
19+
commons-lang3 = { module = "org.apache.commons:commons-lang3", version.ref = "commons-lang3" }
20+
diffpatch = { module = "com.github.MCPHackers:DiffPatch", version.ref = "diffpatch" }
21+
fernflower = { module = "io.github.lassebq:fernflower", version.ref = "fernflower" }
22+
flatlaf = { module = "com.formdev:flatlaf", version.ref = "flatlaf" }
23+
jansi = { module = "org.fusesource.jansi:jansi", version.ref = "jansi" }
24+
json = { module = "org.json:json", version.ref = "json" }
25+
mapping-io = { module = "net.fabricmc:mapping-io", version.ref = "mapping-io" }
26+
rdi = { module = "org.mcphackers.rdi:rdi", version.ref = "rdi" }
27+
rdi-nio = { module = "org.mcphackers.rdi:rdi-nio", version.ref = "rdi" }
28+
29+
[plugins]
30+
shadow = { id = "com.gradleup.shadow", version.ref = "shadow-plugin" }

gradle/wrapper/gradle-wrapper.jar

122 Bytes
Binary file not shown.

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.10.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

Lines changed: 2 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gui/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
plugins {
2-
id "com.gradleup.shadow" version "8.3.1"
2+
alias libs.plugins.shadow
33
}
44

55
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
66

77
dependencies {
88
implementation rootProject
99

10-
implementation "com.formdev:flatlaf:${project.flatlaf_version}"
10+
implementation libs.flatlaf
1111
}
1212

1313
application {
@@ -29,5 +29,5 @@ tasks.named("shadowJar", ShadowJar) {
2929
archiveBaseName.set("RetroMCP-GUI")
3030
archiveClassifier.set("all")
3131
setDestinationDirectory(rootProject.getLayout().getBuildDirectory().dir("libs"))
32-
minimize()
32+
minimize() // This breaks FlatLaf
3333
}

gui/src/main/java/org/mcphackers/mcp/main/MainGUI.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public class MainGUI extends MCP {
5959
public static final String[] TABS = {"task.decompile", "task.recompile", "task.reobfuscate", "task.build", "options.running"};
6060
public static final TaskParameter[][] TAB_PARAMETERS = {
6161
{TaskParameter.PATCHES, TaskParameter.FERNFLOWER_OPTIONS, TaskParameter.IGNORED_PACKAGES, TaskParameter.OUTPUT_SRC, TaskParameter.DECOMPILE_RESOURCES, TaskParameter.GUESS_GENERICS, TaskParameter.STRIP_GENERICS},
62-
{TaskParameter.SOURCE_VERSION, TaskParameter.TARGET_VERSION, TaskParameter.JAVA_HOME}, {TaskParameter.OBFUSCATION, TaskParameter.EXCLUDED_CLASSES},
62+
{TaskParameter.SOURCE_VERSION, TaskParameter.TARGET_VERSION, TaskParameter.JAVA_HOME}, {TaskParameter.OBFUSCATION, TaskParameter.SRG_OBFUSCATION, TaskParameter.EXCLUDED_CLASSES},
6363
{TaskParameter.FULL_BUILD}, {TaskParameter.RUN_BUILD, TaskParameter.RUN_ARGS, TaskParameter.GAME_ARGS}
6464
};
6565
public Theme theme = Theme.THEMES_MAP.get(UIManager.getCrossPlatformLookAndFeelClassName());

src/main/java/org/mcphackers/mcp/tasks/TaskReobfuscate.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.mcphackers.mcp.MCPPaths.*;
44

5-
import java.io.BufferedReader;
65
import java.io.IOException;
76
import java.nio.file.Files;
87
import java.nio.file.Path;
@@ -118,8 +117,11 @@ private Mappings getMappings(ClassStorage storage, Side side) throws IOException
118117
return new Mappings();
119118
}
120119
final boolean enableObfuscation = mcp.getOptions().getBooleanParameter(TaskParameter.OBFUSCATION);
121-
boolean joined = MappingUtil.readNamespaces(mappingsPath).contains("official");
122-
Mappings mappings = MappingsIO.read(mappingsPath, "named", joined ? "official" : side.name);
120+
final boolean srgObfuscation = mcp.getOptions().getBooleanParameter(TaskParameter.SRG_OBFUSCATION);
121+
List<String> nss = MappingUtil.readNamespaces(mappingsPath);
122+
boolean joined = srgObfuscation ? nss.contains("searge") : nss.contains("official");
123+
Mappings mappings = MappingsIO.read(mappingsPath, "named",
124+
joined ? (srgObfuscation ? "searge" : "official") : side.name);
123125
modifyClassMappings(mappings, storage.getAllClasses(), enableObfuscation);
124126
return mappings;
125127
}

0 commit comments

Comments
 (0)