diff --git a/deobfuscator/pom.xml b/deobfuscator/pom.xml
index c711697622..babd26ed24 100644
--- a/deobfuscator/pom.xml
+++ b/deobfuscator/pom.xml
@@ -65,6 +65,7 @@
org.slf4j
slf4j-simple
1.7.12
+ runtime
com.google.code.gson
diff --git a/deobfuscator/src/main/java/net/runelite/asm/Type.java b/deobfuscator/src/main/java/net/runelite/asm/Type.java
index 68ba6960d4..89eb3b3023 100644
--- a/deobfuscator/src/main/java/net/runelite/asm/Type.java
+++ b/deobfuscator/src/main/java/net/runelite/asm/Type.java
@@ -110,7 +110,7 @@ public class Type
{
s = s.substring(1);
}
- if (s.startsWith("L"))
+ if (s.startsWith("L") && s.endsWith(";"))
{
return s.substring(1, s.length() - 1);
}
diff --git a/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java b/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java
index 7e341b1a55..eb75795d49 100644
--- a/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java
+++ b/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/RenameUnique.java
@@ -31,6 +31,7 @@ import net.runelite.asm.Field;
import net.runelite.asm.Method;
import net.runelite.asm.signature.util.VirtualMethods;
import net.runelite.deob.Deob;
+import net.runelite.deob.DeobAnnotations;
import net.runelite.deob.Deobfuscator;
import net.runelite.deob.util.NameMappings;
@@ -60,7 +61,7 @@ public class RenameUnique implements Deobfuscator
for (ClassFile cf : group.getClasses())
for (Field field : cf.getFields())
{
- if (field.getName().length() > Deob.OBFUSCATED_NAME_MAX_LEN)
+ if (field.getName().length() > Deob.OBFUSCATED_NAME_MAX_LEN && !field.getName().startsWith("__") || field.getName().equals(DeobAnnotations.getExportedName(field.getAnnotations())))
continue;
map.map(field.getPoolField(), "field" + i++);
@@ -74,7 +75,7 @@ public class RenameUnique implements Deobfuscator
for (ClassFile cf : group.getClasses())
for (Method method : cf.getMethods())
{
- if (method.getName().length() > Deob.OBFUSCATED_NAME_MAX_LEN)
+ if (method.getName().length() > Deob.OBFUSCATED_NAME_MAX_LEN && !method.getName().startsWith("__") || method.getName().equals(DeobAnnotations.getExportedName(method.getAnnotations())))
continue;
List virtualMethods = VirtualMethods.getVirtualMethods(method);
diff --git a/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/Renamer.java b/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/Renamer.java
index cbb38be382..418802ef5a 100644
--- a/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/Renamer.java
+++ b/deobfuscator/src/main/java/net/runelite/deob/deobfuscators/Renamer.java
@@ -216,6 +216,8 @@ public class Renamer implements Deobfuscator
field.getAnnotations().addAnnotation(DeobAnnotations.OBFUSCATED_NAME, "value", field.getName());
}
+ assert DeobAnnotations.getExportedName(field.getAnnotations()) == null || DeobAnnotations.getExportedName(field.getAnnotations()).equals(newName) : "Tried changing field name to something other than the exported name!";
+
field.setName(newName);
++fields;
}
diff --git a/deobfuscator/src/main/java/net/runelite/deob/updater/UpdateMappings.java b/deobfuscator/src/main/java/net/runelite/deob/updater/UpdateMappings.java
index db6ed0ef1c..0201caabb1 100644
--- a/deobfuscator/src/main/java/net/runelite/deob/updater/UpdateMappings.java
+++ b/deobfuscator/src/main/java/net/runelite/deob/updater/UpdateMappings.java
@@ -26,24 +26,19 @@ package net.runelite.deob.updater;
import java.io.File;
import java.io.IOException;
-import java.util.Map;
import net.runelite.asm.ClassGroup;
-import net.runelite.asm.Field;
-import net.runelite.asm.Method;
-import net.runelite.deob.deobfuscators.Renamer;
import net.runelite.deob.deobfuscators.mapping.AnnotationIntegrityChecker;
import net.runelite.deob.deobfuscators.mapping.AnnotationMapper;
import net.runelite.deob.deobfuscators.mapping.Mapper;
import net.runelite.deob.deobfuscators.mapping.ParallelExecutorMapping;
import net.runelite.deob.util.JarUtil;
-import net.runelite.deob.util.NameMappings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class UpdateMappings
{
private static final Logger logger = LoggerFactory.getLogger(UpdateMappings.class);
- private static boolean renameRL = true;
+
private final ClassGroup group1, group2;
public UpdateMappings(ClassGroup group1, ClassGroup group2)
@@ -79,32 +74,6 @@ public class UpdateMappings
pr.run();
}
- public void updateRL()
- {
- Mapper mapper = new Mapper(group1, group2);
- mapper.run();
- ParallelExecutorMapping mapping = mapper.getMapping();
- NameMappings names = new NameMappings();
-
- for (Map.Entry