From 13d4b4116a67f6d97d6edff4b13e8c6086da25a1 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Wed, 26 Feb 2025 19:19:12 +0000 Subject: [PATCH] Don't propose names in classes marked with @DeobfuscateClass --- .../nameproposal/NameFinderVisitor.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/filament/src/main/java/net/fabricmc/filament/nameproposal/NameFinderVisitor.java b/filament/src/main/java/net/fabricmc/filament/nameproposal/NameFinderVisitor.java index 2417b5b3b1..925e4f466d 100644 --- a/filament/src/main/java/net/fabricmc/filament/nameproposal/NameFinderVisitor.java +++ b/filament/src/main/java/net/fabricmc/filament/nameproposal/NameFinderVisitor.java @@ -22,6 +22,7 @@ import java.util.Map; import java.util.Set; +import org.objectweb.asm.AnnotationVisitor; import org.objectweb.asm.ClassVisitor; import org.objectweb.asm.FieldVisitor; import org.objectweb.asm.MethodVisitor; @@ -29,7 +30,10 @@ import org.objectweb.asm.tree.MethodNode; public class NameFinderVisitor extends ClassVisitor { + private static final String DONT_OBFUSCATE_DESC = "Lnet/minecraft/class_6177;"; + private String owner; + private boolean notObfuscated; private final Map> allEnumFields; private final Map> allMethods; @@ -42,11 +46,25 @@ public NameFinderVisitor(int api, Map> allEnumFields, Map new HashSet<>()).add(descriptor + name)) { throw new IllegalArgumentException("Found two enum fields with the same name \"" + name + "\"!"); @@ -63,6 +81,10 @@ public MethodVisitor visitMethod( final String descriptor, final String signature, final String[] exceptions) { + if (notObfuscated) { + return super.visitMethod(access, name, descriptor, signature, exceptions); + } + if ("".equals(name)) { MethodNode node = new MethodNode(api, access, name, descriptor, signature, exceptions); allMethods.computeIfAbsent(owner, s -> new ArrayList<>()).add(node);