From b5f1ade7e4db92098b601ce8fbb093ba180b8b0a Mon Sep 17 00:00:00 2001 From: Thomas Pakh Date: Sun, 5 Jul 2020 19:23:49 -0400 Subject: [PATCH] Don't run transformers on classes with @Mixin annotation --- .../tickcentral/api/ClassSniffer.java | 30 +++++++++++-------- .../tickcentral/asm/BlockTransformer.java | 2 +- .../tickcentral/asm/EntityTransformer.java | 2 +- .../tickcentral/asm/ITickableTransformer.java | 2 +- 4 files changed, 21 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/github/terminatornl/tickcentral/api/ClassSniffer.java b/src/main/java/com/github/terminatornl/tickcentral/api/ClassSniffer.java index f36df98..35a7716 100644 --- a/src/main/java/com/github/terminatornl/tickcentral/api/ClassSniffer.java +++ b/src/main/java/com/github/terminatornl/tickcentral/api/ClassSniffer.java @@ -105,14 +105,8 @@ public static boolean isInstanceOf(ClassReader reader, String obfuscated, boolea } else { ClassReader superReader = new ClassReader(superClass); if (disallowMixinSupers) { - ClassNode superClassNode = new ClassNode(); - superReader.accept(superClassNode, 0); - if (superClassNode.invisibleAnnotations != null) { - for (AnnotationNode annotation : superClassNode.invisibleAnnotations) { - if (annotation.desc.equals("Lorg/spongepowered/asm/mixin/Mixin;")) { - return false; - } - } + if (hasMixinAnnotation(superReader)) { + return false; } } if (isInstanceOf(superReader, obfuscated, disallowMixinSupers)) { @@ -164,10 +158,22 @@ public static R performOnMappedSource(String source, Function