Fix remapper crash on obfuscated plugins (#108)

This commit is contained in:
IzzelAliz 2021-01-10 16:13:23 +08:00
parent 43cafef3d4
commit 5c58877273
2 changed files with 22 additions and 2 deletions

View File

@ -34,7 +34,7 @@ import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.atomic.AtomicInteger;
public class ClassLoaderRemapper extends JarRemapper {
public class ClassLoaderRemapper extends LenientJarRemapper {
private static final Logger LOGGER = LogManager.getLogger("Arclight");
private static final String PREFIX = "net/minecraft/";
@ -51,7 +51,7 @@ public class ClassLoaderRemapper extends JarRemapper {
this.jarMapping.setInheritanceMap(ArclightRemapper.INSTANCE.inheritanceMap);
this.jarMapping.setFallbackInheritanceProvider(GlobalClassRepo.inheritanceProvider());
this.toBukkitMapping.setFallbackInheritanceProvider(GlobalClassRepo.inheritanceProvider());
this.toBukkitRemapper = new JarRemapper(this.toBukkitMapping);
this.toBukkitRemapper = new LenientJarRemapper(this.toBukkitMapping);
this.generatedHandler = generateReflectionHandler();
GlobalClassRepo.INSTANCE.addRepo(new ClassLoaderRepo(this.classLoader));
}

View File

@ -0,0 +1,20 @@
package io.izzel.arclight.common.mod.util.remapper;
import net.md_5.specialsource.JarMapping;
import net.md_5.specialsource.JarRemapper;
public class LenientJarRemapper extends JarRemapper {
public LenientJarRemapper(JarMapping jarMapping) {
super(jarMapping);
}
@Override
public String mapSignature(String signature, boolean typeSignature) {
try {
return super.mapSignature(signature, typeSignature);
} catch (Exception e) {
return signature;
}
}
}