More patch work

This commit is contained in:
Nassim Jahnke 2024-04-24 18:15:59 +02:00
parent 1de0dc8828
commit 4e654f2a3a
No known key found for this signature in database
GPG key ID: EF6771C01F6EF02F
35 changed files with 136 additions and 221 deletions

View file

@ -29,7 +29,7 @@ index 3ebba8af1cf2d2eaf6670860b011c7dc1da62890..acf57732dd902bd23166e60788477b69
+ // Paper end - old getSpawnEgg API
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
index e495b2ce1f129172314178222de9bba7bfe56572..0542b72550ee92293b2b8fdb8a19bea6f8633030 100644
index e495b2ce1f129172314178222de9bba7bfe56572..b08de24fbc5addefe61d5b1919898775260d4a54 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Commodore.java
@@ -375,6 +375,15 @@ public class Commodore {
@ -39,9 +39,9 @@ index e495b2ce1f129172314178222de9bba7bfe56572..0542b72550ee92293b2b8fdb8a19bea6
+ // Paper start - ItemFactory#getSpawnEgg (paper had original method that returned ItemStack, upstream added identical but returned Material)
+ if (owner.equals("org/bukkit/inventory/ItemFactory") && name.equals("getSpawnEgg") && desc.equals("(Lorg/bukkit/entity/EntityType;)Lorg/bukkit/inventory/ItemStack;")) {
+ super.visitInsn(Opcodes.SWAP); // has 1 param, this moves the owner instance to the top for the checkcast
+ super.visitTypeInsn(Opcodes.CHECKCAST, CB_PACKAGE + "/inventory/CraftItemFactory");
+ super.visitTypeInsn(Opcodes.CHECKCAST, CB_PACKAGE_PREFIX + "inventory/CraftItemFactory");
+ super.visitInsn(Opcodes.SWAP); // moves param back to the the top of stack
+ super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CB_PACKAGE + "/inventory/CraftItemFactory", "getSpawnEgg0", desc, false);
+ super.visitMethodInsn(Opcodes.INVOKEVIRTUAL, CB_PACKAGE_PREFIX + "inventory/CraftItemFactory", "getSpawnEgg0", desc, false);
+ return;
+ }
+ // Paper end - ItemFactory#getSpawnEgg