Skip to content

Commit 58b1cf3

Browse files
authored
Actually fix temp transformer logic for AE2 (#193)
1 parent c6dcfae commit 58b1cf3

1 file changed

Lines changed: 14 additions & 5 deletions

File tree

src/main/java/com/cleanroommc/modularui/core/ClassTransformer.java

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,22 +15,31 @@ public class ClassTransformer implements IClassTransformer {
1515

1616
@Override
1717
public byte[] transform(String name, String transformedName, byte[] basicClass) {
18-
if (!ModularUICore.stackUpLoaded) {
19-
// Temporarily use AE2's implementation if it's loaded
20-
if (ModularUICore.ae2Loaded && transformedName.equals(PacketByteBufferVisitor.PACKET_UTIL_CLASS)) {
18+
// Don't patch over StackUp
19+
if (ModularUICore.stackUpLoaded) {
20+
return basicClass;
21+
}
22+
// Patch using AE2's implementation if it's loaded (temporary, see #155)
23+
if (ModularUICore.ae2Loaded) {
24+
// AE2 is missing PacketUtilPatch, patch it in
25+
if (transformedName.equals(PacketByteBufferVisitor.PACKET_UTIL_CLASS)) {
2126
Consumer<ClassNode> consumer = (node) -> {
2227
ClassSplicer.spliceClasses(node, "com.cleanroommc.modularui.core.temp.PacketUtilPatch",
2328
"writeItemStackFromClientToServer");
2429
};
2530
ModularUICore.LOGGER.info("Applied {} ASM, specific for AE2, from ModularUI", transformedName);
2631
return ClassSplicer.processNode(basicClass, consumer);
27-
} else if (transformedName.equals(PacketByteBufferVisitor.PACKET_UTIL_CLASS) ||
32+
}
33+
// Don't patch over AE2's PacketBufferPatch
34+
return basicClass;
35+
}
36+
// Otherwise apply ModularUI's patches
37+
if (transformedName.equals(PacketByteBufferVisitor.PACKET_UTIL_CLASS) ||
2838
transformedName.equals(PacketByteBufferVisitor.PACKET_BUFFER_CLASS)) {
2939
ClassWriter classWriter = new ClassWriter(0);
3040
new ClassReader(basicClass).accept(new PacketByteBufferVisitor(classWriter), 0);
3141
ModularUICore.LOGGER.info("Applied {} ASM from ModularUI", transformedName);
3242
return classWriter.toByteArray();
33-
}
3443
}
3544
return basicClass;
3645
}

0 commit comments

Comments
 (0)