diff options
Diffstat (limited to 'src/main/java')
| -rw-r--r-- | src/main/java/cuchaz/enigma/Enigma.java | 5 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/Main.java | 11 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java | 18 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/Gui.java | 5 | ||||
| -rw-r--r-- | src/main/java/cuchaz/enigma/gui/GuiController.java | 12 |
5 files changed, 23 insertions, 28 deletions
diff --git a/src/main/java/cuchaz/enigma/Enigma.java b/src/main/java/cuchaz/enigma/Enigma.java index 9f88f77..fd23b47 100644 --- a/src/main/java/cuchaz/enigma/Enigma.java +++ b/src/main/java/cuchaz/enigma/Enigma.java | |||
| @@ -20,6 +20,7 @@ import cuchaz.enigma.api.EnigmaPluginContext; | |||
| 20 | import cuchaz.enigma.api.service.EnigmaService; | 20 | import cuchaz.enigma.api.service.EnigmaService; |
| 21 | import cuchaz.enigma.api.service.EnigmaServiceFactory; | 21 | import cuchaz.enigma.api.service.EnigmaServiceFactory; |
| 22 | import cuchaz.enigma.api.service.EnigmaServiceType; | 22 | import cuchaz.enigma.api.service.EnigmaServiceType; |
| 23 | import cuchaz.enigma.api.service.JarIndexerService; | ||
| 23 | 24 | ||
| 24 | import java.io.IOException; | 25 | import java.io.IOException; |
| 25 | import java.nio.file.Path; | 26 | import java.nio.file.Path; |
| @@ -46,6 +47,10 @@ public class Enigma { | |||
| 46 | ClassCache classCache = ClassCache.of(path); | 47 | ClassCache classCache = ClassCache.of(path); |
| 47 | JarIndex jarIndex = classCache.index(progress); | 48 | JarIndex jarIndex = classCache.index(progress); |
| 48 | 49 | ||
| 50 | services.get(JarIndexerService.TYPE).ifPresent(indexer -> { | ||
| 51 | indexer.acceptJar(classCache, jarIndex); | ||
| 52 | }); | ||
| 53 | |||
| 49 | return new EnigmaProject(this, classCache, jarIndex); | 54 | return new EnigmaProject(this, classCache, jarIndex); |
| 50 | } | 55 | } |
| 51 | 56 | ||
diff --git a/src/main/java/cuchaz/enigma/Main.java b/src/main/java/cuchaz/enigma/Main.java index a642840..1f2cb84 100644 --- a/src/main/java/cuchaz/enigma/Main.java +++ b/src/main/java/cuchaz/enigma/Main.java | |||
| @@ -16,6 +16,7 @@ import cuchaz.enigma.gui.GuiController; | |||
| 16 | import cuchaz.enigma.translation.mapping.serde.MappingFormat; | 16 | import cuchaz.enigma.translation.mapping.serde.MappingFormat; |
| 17 | import joptsimple.*; | 17 | import joptsimple.*; |
| 18 | 18 | ||
| 19 | import java.io.BufferedReader; | ||
| 19 | import java.io.IOException; | 20 | import java.io.IOException; |
| 20 | import java.nio.file.Files; | 21 | import java.nio.file.Files; |
| 21 | import java.nio.file.Path; | 22 | import java.nio.file.Path; |
| @@ -48,7 +49,15 @@ public class Main { | |||
| 48 | return; | 49 | return; |
| 49 | } | 50 | } |
| 50 | 51 | ||
| 51 | Gui gui = new Gui(); | 52 | EnigmaProfile parsedProfile = EnigmaProfile.EMPTY; |
| 53 | if (options.has(profile)) { | ||
| 54 | Path profilePath = options.valueOf(profile); | ||
| 55 | try (BufferedReader reader = Files.newBufferedReader(profilePath)) { | ||
| 56 | parsedProfile = EnigmaProfile.parse(reader); | ||
| 57 | } | ||
| 58 | } | ||
| 59 | |||
| 60 | Gui gui = new Gui(parsedProfile); | ||
| 52 | GuiController controller = gui.getController(); | 61 | GuiController controller = gui.getController(); |
| 53 | 62 | ||
| 54 | if (options.has(jar)) { | 63 | if (options.has(jar)) { |
diff --git a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java index c580f09..af0cf30 100644 --- a/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java +++ b/src/main/java/cuchaz/enigma/api/service/ObfuscationTestService.java | |||
| @@ -1,27 +1,9 @@ | |||
| 1 | package cuchaz.enigma.api.service; | 1 | package cuchaz.enigma.api.service; |
| 2 | 2 | ||
| 3 | import com.google.common.base.Strings; | ||
| 4 | import cuchaz.enigma.translation.representation.entry.ClassEntry; | ||
| 5 | import cuchaz.enigma.translation.representation.entry.Entry; | 3 | import cuchaz.enigma.translation.representation.entry.Entry; |
| 6 | 4 | ||
| 7 | public interface ObfuscationTestService extends EnigmaService { | 5 | public interface ObfuscationTestService extends EnigmaService { |
| 8 | EnigmaServiceType<ObfuscationTestService> TYPE = EnigmaServiceType.create("obfuscation_test"); | 6 | EnigmaServiceType<ObfuscationTestService> TYPE = EnigmaServiceType.create("obfuscation_test"); |
| 9 | 7 | ||
| 10 | boolean testDeobfuscated(Entry<?> entry); | 8 | boolean testDeobfuscated(Entry<?> entry); |
| 11 | |||
| 12 | final class Default implements ObfuscationTestService { | ||
| 13 | Default INSTANCE = new Default(); | ||
| 14 | |||
| 15 | Default() { | ||
| 16 | } | ||
| 17 | |||
| 18 | @Override | ||
| 19 | public boolean testDeobfuscated(Entry<?> entry) { | ||
| 20 | if (entry instanceof ClassEntry) { | ||
| 21 | String packageName = ((ClassEntry) entry).getPackageName(); | ||
| 22 | return Strings.isNullOrEmpty(packageName); | ||
| 23 | } | ||
| 24 | return false; | ||
| 25 | } | ||
| 26 | } | ||
| 27 | } | 9 | } |
diff --git a/src/main/java/cuchaz/enigma/gui/Gui.java b/src/main/java/cuchaz/enigma/gui/Gui.java index 6fc9fcf..5b9a331 100644 --- a/src/main/java/cuchaz/enigma/gui/Gui.java +++ b/src/main/java/cuchaz/enigma/gui/Gui.java | |||
| @@ -13,6 +13,7 @@ package cuchaz.enigma.gui; | |||
| 13 | 13 | ||
| 14 | import com.google.common.collect.Lists; | 14 | import com.google.common.collect.Lists; |
| 15 | import cuchaz.enigma.Constants; | 15 | import cuchaz.enigma.Constants; |
| 16 | import cuchaz.enigma.EnigmaProfile; | ||
| 16 | import cuchaz.enigma.ExceptionIgnorer; | 17 | import cuchaz.enigma.ExceptionIgnorer; |
| 17 | import cuchaz.enigma.analysis.*; | 18 | import cuchaz.enigma.analysis.*; |
| 18 | import cuchaz.enigma.config.Config; | 19 | import cuchaz.enigma.config.Config; |
| @@ -93,7 +94,7 @@ public class Gui { | |||
| 93 | } | 94 | } |
| 94 | } | 95 | } |
| 95 | 96 | ||
| 96 | public Gui() { | 97 | public Gui(EnigmaProfile profile) { |
| 97 | Config.getInstance().lookAndFeel.setGlobalLAF(); | 98 | Config.getInstance().lookAndFeel.setGlobalLAF(); |
| 98 | 99 | ||
| 99 | // init frame | 100 | // init frame |
| @@ -112,7 +113,7 @@ public class Gui { | |||
| 112 | }); | 113 | }); |
| 113 | } | 114 | } |
| 114 | 115 | ||
| 115 | this.controller = new GuiController(this); | 116 | this.controller = new GuiController(this, profile); |
| 116 | 117 | ||
| 117 | // init file choosers | 118 | // init file choosers |
| 118 | this.jarFileChooser = new FileDialog(getFrame(), "Open Jar", FileDialog.LOAD); | 119 | this.jarFileChooser = new FileDialog(getFrame(), "Open Jar", FileDialog.LOAD); |
diff --git a/src/main/java/cuchaz/enigma/gui/GuiController.java b/src/main/java/cuchaz/enigma/gui/GuiController.java index 4410bf3..209b5d1 100644 --- a/src/main/java/cuchaz/enigma/gui/GuiController.java +++ b/src/main/java/cuchaz/enigma/gui/GuiController.java | |||
| @@ -14,10 +14,7 @@ package cuchaz.enigma.gui; | |||
| 14 | import com.google.common.collect.Lists; | 14 | import com.google.common.collect.Lists; |
| 15 | import com.google.common.util.concurrent.ThreadFactoryBuilder; | 15 | import com.google.common.util.concurrent.ThreadFactoryBuilder; |
| 16 | import com.strobel.decompiler.languages.java.ast.CompilationUnit; | 16 | import com.strobel.decompiler.languages.java.ast.CompilationUnit; |
| 17 | import cuchaz.enigma.CompiledSourceTypeLoader; | 17 | import cuchaz.enigma.*; |
| 18 | import cuchaz.enigma.Enigma; | ||
| 19 | import cuchaz.enigma.EnigmaProject; | ||
| 20 | import cuchaz.enigma.SourceProvider; | ||
| 21 | import cuchaz.enigma.analysis.*; | 18 | import cuchaz.enigma.analysis.*; |
| 22 | import cuchaz.enigma.api.service.ObfuscationTestService; | 19 | import cuchaz.enigma.api.service.ObfuscationTestService; |
| 23 | import cuchaz.enigma.bytecode.translators.SourceFixVisitor; | 20 | import cuchaz.enigma.bytecode.translators.SourceFixVisitor; |
| @@ -70,10 +67,11 @@ public class GuiController { | |||
| 70 | 67 | ||
| 71 | private DecompiledClassSource currentSource; | 68 | private DecompiledClassSource currentSource; |
| 72 | 69 | ||
| 73 | public GuiController(Gui gui) { | 70 | public GuiController(Gui gui, EnigmaProfile profile) { |
| 74 | this.gui = gui; | 71 | this.gui = gui; |
| 75 | // TODO: load and set profile | 72 | this.enigma = Enigma.builder() |
| 76 | this.enigma = Enigma.create(); | 73 | .setProfile(profile) |
| 74 | .build(); | ||
| 77 | } | 75 | } |
| 78 | 76 | ||
| 79 | public boolean isDirty() { | 77 | public boolean isDirty() { |