9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-19 15:09:25 +00:00

Add missing rewrite rules

This commit is contained in:
HaHaWTH
2025-06-20 08:06:42 +14:00
parent d46c4bca93
commit b559e1ed72

View File

@@ -0,0 +1,27 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: HaHaWTH <102713261+HaHaWTH@users.noreply.github.com>
Date: Tue, 9 Nov 2077 00:00:00 +0800
Subject: [PATCH] Add missing rewrite rules
Tracking PR: https://github.com/PaperMC/asm-utils/pull/48
diff --git a/src/main/java/io/papermc/paper/pluginremap/reflect/ReflectionRemapper.java b/src/main/java/io/papermc/paper/pluginremap/reflect/ReflectionRemapper.java
index a3045afbc0cc057e99189b909367b21cf6a9e03f..2831b8b48a12815f8fb7e82327f654e90d1530a3 100644
--- a/src/main/java/io/papermc/paper/pluginremap/reflect/ReflectionRemapper.java
+++ b/src/main/java/io/papermc/paper/pluginremap/reflect/ReflectionRemapper.java
@@ -22,7 +22,14 @@ public final class ReflectionRemapper {
private static final RewriteRuleVisitorFactory VISITOR_FACTORY = RewriteRuleVisitorFactory.create(
Opcodes.ASM9,
chain -> chain.then(new BaseReflectionRules(PAPER_REFLECTION_HOLDER).rules())
- .then(DefineClassRule.create(PAPER_REFLECTION_HOLDER_DESC, true)),
+ // Leaf start - Add missing rewrite rules
+ .then(
+ io.papermc.asm.rules.RewriteRule.forOwnerClass(Class.class, rf -> {
+ rf.plainStaticRewrite(java.lang.constant.ClassDesc.of(PAPER_REFLECTION_HOLDER), b -> b
+ .match("forName").desc("(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;", "(Ljava/lang/Module;Ljava/lang/String;)Ljava/lang/Class;"));
+ })
+ ).then(DefineClassRule.create(PAPER_REFLECTION_HOLDER_DESC, true)),
+ // Leaf end - Add missing rewrite rules
ClassInfoProvider.basic()
);