Skip to content

Commit a3fc790

Browse files
committed
Fixed CLI and GUI. Obfuscation in reobf task
1 parent 523ae3b commit a3fc790

17 files changed

Lines changed: 218 additions & 272 deletions

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ dependencies {
2828
implementation 'org.ow2.asm:asm-tree:' + ASMVersion
2929
implementation 'org.ow2.asm:asm-util:' + ASMVersion
3030

31-
implementation 'com.github.MCPHackers:RetroFernflower:43254d0b4787e515c1fb387ccb82952421ce846b'
31+
implementation 'com.github.MCPHackers:RetroFernflower:3992b4b81fe2b106f2e53dca2d7425fce72dd9f5'
3232
implementation 'org.fusesource.jansi:jansi:2.4.0'
3333
implementation 'net.fabricmc:tiny-remapper:0.6.0'
3434
// TODO: Don't gut MCInjector bundled ASM

logs/mcp.log

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

src/main/java/org/mcphackers/mcp/MCP.java

Lines changed: 8 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
package org.mcphackers.mcp;
22

3-
import java.io.IOException;
4-
import java.nio.file.Files;
5-
import java.nio.file.Paths;
63
import java.util.ArrayList;
4+
import java.util.HashMap;
75
import java.util.List;
6+
import java.util.Map;
87
import java.util.concurrent.ExecutorService;
98
import java.util.concurrent.Executors;
109
import java.util.concurrent.atomic.AtomicInteger;
@@ -15,20 +14,9 @@
1514

1615
public interface MCP {
1716

18-
String VERSION = "v0.4";
19-
20-
default void attemptToDeleteUpdateJar() {
21-
long startTime = System.currentTimeMillis();
22-
boolean keepTrying = true;
23-
while(keepTrying) {
24-
try {
25-
Files.deleteIfExists(Paths.get(MCPPaths.UPDATE_JAR));
26-
keepTrying = false;
27-
} catch (IOException e) {
28-
keepTrying = System.currentTimeMillis() - startTime < 10000;
29-
}
30-
}
31-
}
17+
String VERSION = "v1.0-pre1";
18+
19+
Map<String, TaskParameter> nameToParamMap = new HashMap<>();
3220

3321
default void performTask(TaskMode mode, Side side) {
3422
performTask(mode, side, true, true);
@@ -58,7 +46,7 @@ default void performTask(TaskMode mode, Side side, boolean enableProgressBars, b
5846
performedTasks.add(task);
5947
}
6048
}
61-
setProgressBars(performedTasks);
49+
if(enableProgressBars) setProgressBars(performedTasks, mode);
6250
ExecutorService pool = Executors.newFixedThreadPool(2);
6351
setActive(false);
6452

@@ -71,14 +59,6 @@ default void performTask(TaskMode mode, Side side, boolean enableProgressBars, b
7159
task.setProgressBarIndex(barIndex);
7260
}
7361
pool.execute(() -> {
74-
String name = mode.name;
75-
if(task.side == Side.CLIENT || task.side == Side.SERVER) {
76-
name = task.side.name;
77-
}
78-
if(enableProgressBars) {
79-
setProgressBarName(barIndex, name);
80-
setProgressBarActive(barIndex, true);
81-
}
8262
try {
8363
task.doTask();
8464
} catch (Exception e) {
@@ -111,17 +91,11 @@ default void performTask(TaskMode mode, Side side, boolean enableProgressBars, b
11191
String[] msgs2 = {"Finished successfully!", "Finished with warnings!", "Finished with errors!"};
11292
showMessage(mode.name, msgs2[result], result);
11393
}
114-
115-
for(int i = 0; i < performedTasks.size(); i++) {
116-
setProgressBarActive(i, false);
117-
118-
setProgress(i, "Idle", 0);
119-
}
12094
setActive(true);
121-
clearProgressBars();
95+
if(enableProgressBars) clearProgressBars();
12296
}
12397

124-
void setProgressBars(List<Task> tasks);
98+
void setProgressBars(List<Task> tasks, TaskMode mode);
12599

126100
void clearProgressBars();
127101

@@ -133,10 +107,6 @@ default void performTask(TaskMode mode, Side side, boolean enableProgressBars, b
133107

134108
void setCurrentVersion(String version);
135109

136-
void setProgressBarActive(int barIndex, boolean active);
137-
138-
void setProgressBarName(int side, String name);
139-
140110
void setProgress(int barIndex, String progressMessage);
141111

142112
void setProgress(int barIndex, int progress);

src/main/java/org/mcphackers/mcp/MCPLogger.java

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

src/main/java/org/mcphackers/mcp/Options.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,19 +24,22 @@ public void setDefault(TaskParameter param) {
2424
value = true;
2525
break;
2626
case IGNORED_PACKAGES:
27-
value = new String[] {"paulscode", "com/jcraft", "isom"};
27+
value = new String[] {"paulscode", "com/jcraft", "de/jarnbjo", "isom"};
2828
break;
2929
case INDENTION_STRING:
3030
value = "\t";
3131
break;
32+
case OBFUSCATION:
33+
value = true;
34+
break;
3235
case FULL_BUILD:
3336
value = false;
3437
break;
3538
case RUN_BUILD:
3639
value = false;
3740
break;
3841
case RUN_ARGS:
39-
value = new String[0];
42+
value = new String[] {"-Xms1024M", "-Xmx1024M", "-Djava.util.Arrays.useLegacyMergeSort=true"};
4043
break;
4144
case SETUP_VERSION:
4245
value = null;
@@ -65,6 +68,15 @@ public void setParameter(TaskParameter param, Object value) throws IllegalArgume
6568
}
6669
}
6770

71+
public Object getParameter(TaskParameter param) {
72+
Object value = options.get(param);
73+
if(value instanceof String[]) {
74+
String valueStr = String.join(", ", (String[])value);
75+
return valueStr;
76+
}
77+
return value;
78+
}
79+
6880
public boolean getBooleanParameter(TaskParameter param) throws IllegalArgumentException {
6981
Object value = options.get(param);
7082
if(value instanceof Boolean) {

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ public enum TaskParameter {
88
PATCHES("patch", "Apply patches", Boolean.class),
99
IGNORED_PACKAGES("ignore", "Set ignored packages", String[].class),
1010
INDENTION_STRING("ind", "Set indention string", String.class),
11+
OBFUSCATION("obf", "Obfuscation", Boolean.class),
1112
FULL_BUILD("fullbuild", "Full build", Boolean.class),
1213
RUN_BUILD("runbuild", "Run build", Boolean.class),
1314
RUN_ARGS("runargs", "Run arguments", String[].class),
@@ -25,6 +26,7 @@ public enum TaskParameter {
2526
}
2627

2728
TaskParameter(String name, String desc, Class c) {
29+
MCP.nameToParamMap.put(name, this);
2830
this.name = name;
2931
this.desc = desc;
3032
this.type = c;

src/main/java/org/mcphackers/mcp/Update.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,17 @@ public static void main(String[] args) {
2828
}
2929
}
3030
}
31+
32+
public static void attemptToDeleteUpdateJar() {
33+
long startTime = System.currentTimeMillis();
34+
boolean keepTrying = true;
35+
while(keepTrying) {
36+
try {
37+
Files.deleteIfExists(Paths.get(MCPPaths.UPDATE_JAR));
38+
keepTrying = false;
39+
} catch (IOException e) {
40+
keepTrying = System.currentTimeMillis() - startTime < 10000;
41+
}
42+
}
43+
}
3144
}

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,13 @@ private void initOptions() {
9999
}
100100
menuOptions.add(sideMenu);
101101

102-
String[] names = {TaskMode.decompile.name, TaskMode.recompile.name/*, TaskMode.build.name*/};
102+
String[] names = {TaskMode.decompile.name, TaskMode.recompile.name, TaskMode.reobfuscate.name, TaskMode.build.name, "Running"};
103103
TaskParameter[][] params = {
104104
{TaskParameter.PATCHES, TaskParameter.INDENTION_STRING, TaskParameter.IGNORED_PACKAGES},
105-
{TaskParameter.SOURCE_VERSION, TaskParameter.TARGET_VERSION, TaskParameter.BOOT_CLASS_PATH}
105+
{TaskParameter.SOURCE_VERSION, TaskParameter.TARGET_VERSION, TaskParameter.BOOT_CLASS_PATH},
106+
{TaskParameter.OBFUSCATION},
107+
{TaskParameter.FULL_BUILD},
108+
{TaskParameter.RUN_BUILD, TaskParameter.RUN_ARGS}
106109
};
107110
Map<TaskParameter, JMenuItem> resetOptions = new HashMap<>();
108111
for(int i = 0; i < names.length; i++) {
@@ -123,7 +126,7 @@ private void initOptions() {
123126
if(param.type == String[].class) {
124127
s = "Enter a set of values\n(Separate values with comma)";
125128
}
126-
String value = owner.inputString(param.desc, s);
129+
String value = (String)JOptionPane.showInputDialog(owner, s, param.desc, JOptionPane.PLAIN_MESSAGE, null, null, options.getParameter(param));
127130
//TODO move this to a separate method so it can be used with other MCP implementations
128131
if(value != null) {
129132
try {
@@ -151,9 +154,9 @@ private void initOptions() {
151154
if(value.contains(",")) {
152155
try {
153156
String[] values = value.split(",");
154-
for(String value2 : values) {
155-
value2.trim();
156-
value2 = value2.replace("\\n", "\n").replace("\\t", "\t");
157+
for(int i2 = 0 ; i2 < values.length; i2++) {
158+
values[i2] = values[i2].trim();
159+
values[i2] = values[i2].replace("\\n", "\n").replace("\\t", "\t");
157160
}
158161
options.setParameter(param, values);
159162
return;

0 commit comments

Comments
 (0)