Skip to content

Commit 65b6eab

Browse files
committed
SourceFile remover
1 parent 951a821 commit 65b6eab

File tree

5 files changed

+24
-2
lines changed

5 files changed

+24
-2
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ public class MainGUI extends MCP {
5858
public static final TaskMode[] TASKS = {TaskMode.DECOMPILE, TaskMode.RECOMPILE, TaskMode.REOBFUSCATE, TaskMode.BUILD, TaskMode.UPDATE_MD5, TaskMode.CREATE_PATCH};
5959
public static final String[] TABS = {"task.decompile", "task.recompile", "task.reobfuscate", "task.build", "options.running"};
6060
public static final TaskParameter[][] TAB_PARAMETERS = {
61-
{TaskParameter.PATCHES, TaskParameter.FERNFLOWER_OPTIONS, TaskParameter.IGNORED_PACKAGES, TaskParameter.OUTPUT_SRC, TaskParameter.DECOMPILE_RESOURCES, TaskParameter.GUESS_GENERICS, TaskParameter.STRIP_GENERICS},
61+
{TaskParameter.PATCHES, TaskParameter.FERNFLOWER_OPTIONS, TaskParameter.IGNORED_PACKAGES, TaskParameter.OUTPUT_SRC, TaskParameter.DECOMPILE_RESOURCES, TaskParameter.GUESS_GENERICS, TaskParameter.STRIP_GENERICS, TaskParameter.STRIP_SOURCE_FILE},
6262
{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
};

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import org.mcphackers.mcp.MCPPaths;
1818
import org.mcphackers.mcp.tasks.mode.TaskParameter;
1919
import org.mcphackers.mcp.tools.FileUtil;
20+
import org.mcphackers.mcp.tools.injector.SourceFileTransformer;
2021
import org.mcphackers.mcp.tools.mappings.MappingUtil;
2122
import org.mcphackers.rdi.injector.data.ClassStorage;
2223
import org.mcphackers.rdi.injector.data.Mappings;
@@ -59,6 +60,7 @@ protected Stage[] setStages() {
5960

6061
private void reobfuscate() throws IOException {
6162
final Path reobfBin = MCPPaths.get(mcp, BIN, side);
63+
final boolean stripSourceFile = mcp.getOptions().getBooleanParameter(TaskParameter.STRIP_SOURCE_FILE);
6264

6365
Side[] sides = side == Side.MERGED ? new Side[]{Side.CLIENT, Side.SERVER} : new Side[]{side};
6466

@@ -80,6 +82,9 @@ private void reobfuscate() throws IOException {
8082
if (mappings != null) {
8183
injector.applyMappings(mappings);
8284
}
85+
if (stripSourceFile) {
86+
injector.addTransform(SourceFileTransformer::removeSourceFileAttributes);
87+
}
8388
injector.transform();
8489
new ClassStorageWriter(injector.getStorage(), ClassWriter.COMPUTE_MAXS).write(Files.newOutputStream(reobfJar));
8590

src/main/java/org/mcphackers/mcp/tasks/mode/TaskParameter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ public enum TaskParameter {
3434
DECOMPILE_RESOURCES("resources", Boolean.class, false),
3535
GUESS_GENERICS("generics", Boolean.class, false),
3636
STRIP_GENERICS("stripgenerics", Boolean.class, false),
37-
OUTPUT_SRC("outputsrc", Boolean.class, true);
37+
OUTPUT_SRC("outputsrc", Boolean.class, true),
38+
STRIP_SOURCE_FILE("stripsourcefile", Boolean.class, true);
3839

3940
public static final TaskParameter[] VALUES = TaskParameter.values();
4041

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package org.mcphackers.mcp.tools.injector;
2+
3+
import org.mcphackers.rdi.injector.data.ClassStorage;
4+
import org.mcphackers.rdi.injector.transform.Injection;
5+
import org.objectweb.asm.tree.ClassNode;
6+
7+
public abstract class SourceFileTransformer implements Injection {
8+
public abstract void transform(ClassStorage storage);
9+
10+
public static void removeSourceFileAttributes(ClassStorage storage) {
11+
for (ClassNode clazz : storage.getClasses()) {
12+
clazz.sourceFile = null;
13+
}
14+
}
15+
}

src/main/resources/lang/en_US.lang

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,7 @@ task.param.resources = Keep resources
123123
task.param.generics = Guess generics
124124
task.param.stripgenerics = Strip generics
125125
task.param.outputsrc = Output source
126+
task.param.stripsourcefile = Strip SourceFile attribute
126127

127128
tasks.success = Finished successfully!
128129
tasks.warning = Finished with warnings!

0 commit comments

Comments
 (0)