Remap classes for inheritance (#204)
This commit is contained in:
parent
9319dbc00f
commit
8f071289b0
|
@ -362,7 +362,10 @@ public class ClassLoaderRemapper extends LenientJarRemapper {
|
|||
|
||||
private String getSuper(final String typeName) {
|
||||
ClassNode node = GlobalClassRepo.INSTANCE.findClass(typeName);
|
||||
if (node == null) return "java/lang/Object";
|
||||
if (node == null) {
|
||||
LOGGER.warn("Failed to find class {}", typeName);
|
||||
return "java/lang/Object";
|
||||
}
|
||||
return node.superName;
|
||||
}
|
||||
|
||||
|
|
|
@ -2,6 +2,9 @@ package io.izzel.arclight.common.mod.util.remapper;
|
|||
|
||||
import net.md_5.specialsource.repo.ClassRepo;
|
||||
import org.objectweb.asm.ClassReader;
|
||||
import org.objectweb.asm.ClassVisitor;
|
||||
import org.objectweb.asm.commons.ClassRemapper;
|
||||
import org.objectweb.asm.commons.Remapper;
|
||||
import org.objectweb.asm.tree.ClassNode;
|
||||
|
||||
import java.io.IOException;
|
||||
|
@ -29,7 +32,18 @@ public class ClassLoaderRepo implements ClassRepo {
|
|||
try (InputStream inputStream = connection.getInputStream()) {
|
||||
ClassReader reader = new ClassReader(inputStream);
|
||||
ClassNode classNode = new ClassNode();
|
||||
reader.accept(classNode, ClassReader.SKIP_CODE);
|
||||
ClassVisitor cv;
|
||||
if (classLoader instanceof RemappingClassLoader) {
|
||||
cv = new ClassRemapper(classNode, new Remapper() {
|
||||
@Override
|
||||
public String map(String internalName) {
|
||||
return ((RemappingClassLoader) classLoader).getRemapper().map(internalName);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
cv = classNode;
|
||||
}
|
||||
reader.accept(cv, ClassReader.SKIP_CODE);
|
||||
return classNode;
|
||||
}
|
||||
} catch (IOException ignored) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user