From 6235bfc5ab85cdd471e315c52c413991fb9dbddf Mon Sep 17 00:00:00 2001 From: Thog Date: Sun, 30 Oct 2016 23:37:29 +0100 Subject: BREAKING CHANGE: Implement modifier transformer Known Bugs: - Inner class modifier isn't saved to mapping - Inner class modifier isn't applied to bytecode --- src/main/java/cuchaz/enigma/Deobfuscator.java | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'src/main/java/cuchaz/enigma/Deobfuscator.java') diff --git a/src/main/java/cuchaz/enigma/Deobfuscator.java b/src/main/java/cuchaz/enigma/Deobfuscator.java index ca38754..fe0e31d 100644 --- a/src/main/java/cuchaz/enigma/Deobfuscator.java +++ b/src/main/java/cuchaz/enigma/Deobfuscator.java @@ -607,4 +607,25 @@ public class Deobfuscator { // clear caches this.translatorCache.clear(); } + + public void changeModifier(Entry entry, Mappings.EntryModifier modifierEntry) + { + Entry obfEntry = obfuscateEntry(entry); + if (obfEntry instanceof ClassEntry) + this.renamer.setClassModifier((ClassEntry) obfEntry, modifierEntry); + else if (obfEntry instanceof FieldEntry) + this.renamer.setFieldModifier((FieldEntry) obfEntry, modifierEntry); + else if (obfEntry instanceof BehaviorEntry) + this.renamer.setMethodModifier((BehaviorEntry) obfEntry, modifierEntry); + else + throw new Error("Unknown entry type: " + obfEntry); + } + + public Mappings.EntryModifier getModifier(Entry obEntry) + { + Entry entry = obfuscateEntry(obEntry); + if (entry != null) + obEntry = entry; + return getTranslator(TranslationDirection.Deobfuscating).getModifier(obEntry); + } } -- cgit v1.2.3