@@ -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