Even more... you guessed it! REFACTORING. Removes the need for @Export for methods overriding base java methods

This commit is contained in:
Lucas
2019-07-07 21:30:17 +02:00
parent e2aac6d899
commit 83533475d4
116 changed files with 802 additions and 752 deletions

View File

@@ -48,6 +48,7 @@ public enum ScriptOpcode
CC_SETSIZE(1001),
CC_SETHIDE(1003),
CC_SETNOCLICKTHROUGH(1005),
CC_SETNOSCROLLTHROUGH(1006),
CC_SETSCROLLPOS(1100),
CC_SETCOLOUR(1101),
CC_SETFILL(1102),
@@ -257,11 +258,14 @@ public enum ScriptOpcode
SETSHOWLOADINGMESSAGES(3126),
SETTAPTODROP(3127),
GETTAPTODROP(3128),
SETOCULUSORBSPEED(3129),
GETCANVASSIZE(3132),
SETHIDEUSERNAME(3141),
GETHIDEUSERNAME(3142),
SETREMEMBERUSERNAME(3143),
GETREMEMBERUSERNAME(3144),
SETTITLEMUSICENABLED(3146),
GETTITLEMUSICENABLED(3147),
SOUND_SYNTH(3200),
SOUND_SONG(3201),
SOUND_JINGLE(3202),
@@ -381,6 +385,7 @@ public enum ScriptOpcode
REMOVETAGS(4119),
STRING_INDEXOF_CHAR(4120),
STRING_INDEXOF_STRING(4121),
UPPERCASE(4122),
OC_NAME(4200),
OC_OP(4201),
OC_IOP(4202),
@@ -431,6 +436,7 @@ public enum ScriptOpcode
WORLDLIST_NEXT(6502),
WORLDLIST_SPECIFIC(6506),
WORLDLIST_SORT(6507),
GETWORLDINFO(6511),
SETFOLLOWEROPSLOWPRIORITY(6512),
NC_PARAM(6513),
LC_PARAM(6514),

View File

@@ -1,5 +1,6 @@
package net.runelite.deob.updater;
import com.google.common.base.Strings;
import java.io.File;
import net.runelite.asm.ClassFile;
import net.runelite.asm.ClassGroup;
@@ -39,6 +40,12 @@ public class AnnotationCleaner
log.debug("Checking {}", c.toString());
String implementingName = DeobAnnotations.getImplements(c);
if (!Strings.isNullOrEmpty(implementingName))
{
assertEquals(c + " implements " + implementingName + " but is called " + c.getClassName(), implementingName, c.getClassName());
}
for (Field f : c.getFields())
{
Annotations an = f.getAnnotations();
@@ -48,11 +55,11 @@ public class AnnotationCleaner
if (exportedName == null)
{
assertTrue("Field " + fieldName + " isn't obfuscated but doesn't have @Export.", Deob.isObfuscated(fieldName) || fieldName.contains("$"));
assertTrue("Field " + c.getClassName() + '.' + fieldName + " isn't obfuscated but doesn't have @Export.", Deob.isObfuscated(fieldName) || fieldName.equals(DeobAnnotations.getObfuscatedName(an)) || DeobAnnotations.getObfuscatedName(an) == null);
continue;
}
assertEquals("Field " + fieldName + " has " + exportedName + " in @Export", fieldName, exportedName);
assertEquals("Field " + c.getClassName() + '.' + fieldName + " has " + exportedName + " in @Export", fieldName, exportedName);
}
for (Method m : c.getMethods())
@@ -64,11 +71,11 @@ public class AnnotationCleaner
if (exportedName == null)
{
assertTrue("Method " + fieldName + " isn't obfuscated but doesn't have @Export.", Deob.isObfuscated(fieldName) || fieldName.endsWith("init>") || fieldName.equals("values") || fieldName.equals("valueOf") || fieldName.startsWith("compareTo") || fieldName.equals("equals") || fieldName.equals("hashCode") || fieldName.equals("compare"));
assertTrue("Method " + c.getClassName() + '.' + fieldName + " isn't obfuscated but doesn't have @Export.", Deob.isObfuscated(fieldName) || fieldName.equals(DeobAnnotations.getObfuscatedName(an)) || DeobAnnotations.getObfuscatedName(an) == null);
continue;
}
assertEquals("Method " + fieldName + " has " + exportedName + " in @Export", fieldName, exportedName);
assertEquals("Method " + c.getClassName() + '.' + fieldName + " has " + exportedName + " in @Export", fieldName, exportedName);
}
}
}