-
-
Notifications
You must be signed in to change notification settings - Fork 44
/
RemappingPool.java
55 lines (46 loc) · 1.42 KB
/
RemappingPool.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package javassist;
import nallar.tickthreading.patcher.remapping.StringExtractor;
public class RemappingPool extends ClassPool {
private static final String target = "net/minecraft/";
public static boolean classIsSrgObfuscated(byte[] bytes) {
if (bytes == null) {
return false;
}
for (String entry : StringExtractor.getStrings(bytes)) {
if (entry.contains(target) && !entry.contains("server/MinecraftServer") && !entry.contains("client/Minecraft") && !entry.contains("network/packet/IPacketHandler")) {
return true;
}
}
return false;
}
@Override
protected void cacheCtClass(String className, CtClass c, boolean dynamic) {
super.cacheCtClass(className, c, dynamic);
}
@Override
public CtClass getCached(String className) {
return super.getCached(className);
}
@Override
protected synchronized CtClass get0(String className, boolean useCache) throws NotFoundException {
CtClass clazz;
if (useCache) {
clazz = getCached(className);
if (clazz != null) {
return clazz;
}
}
clazz = createCtClass(className, useCache);
if (clazz != null) {
// clazz.getName() != classname if classname is "[L<name>;".
if (useCache) {
cacheCtClass(clazz.getName(), clazz, false);
}
}
return clazz;
}
@Override
protected CtClass createCtClass(String className, boolean useCache) {
return super.createCtClass(className, useCache);
}
}