aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0966-fix-item-meta-for-tadpole-buckets.patch
blob: c1d43316d32ef08e5188f84088f9e1942659d811 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Tue, 11 Jul 2023 11:22:30 -0700
Subject: [PATCH] fix item meta for tadpole buckets


diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
index 6e91c7ccc36e088be60739dd71b287f0b922a055..57f4cf40359fe9bb427eb0134660d00839a63c86 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemFactory.java
@@ -348,6 +348,7 @@ public final class CraftItemFactory implements ItemFactory {
         case COD_BUCKET:
         case PUFFERFISH_BUCKET:
         case SALMON_BUCKET:
+        case TADPOLE_BUCKET: // Paper
         case ITEM_FRAME:
         case GLOW_ITEM_FRAME:
         case PAINTING:
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
index b758cf51923f9e227c287680287dc18525bed4a0..ff9e42299d46764cd53f72c730716102c6b8aa3c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemStack.java
@@ -600,6 +600,7 @@ public final class CraftItemStack extends ItemStack {
             case COD_BUCKET:
             case PUFFERFISH_BUCKET:
             case SALMON_BUCKET:
+            case TADPOLE_BUCKET: // Paper
             case ITEM_FRAME:
             case GLOW_ITEM_FRAME:
             case PAINTING:
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java
index 6aa64334943a22da8cfcac88d48ae8156ad7a9b4..630e16403cb1fc0f4ba798993bb0c3139196a97c 100644
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java
@@ -16,6 +16,7 @@ public class CraftMetaEntityTag extends CraftMetaItem {
             Material.COD_BUCKET,
             Material.PUFFERFISH_BUCKET,
             Material.SALMON_BUCKET,
+            Material.TADPOLE_BUCKET, // Paper
             Material.ITEM_FRAME,
             Material.GLOW_ITEM_FRAME,
             Material.PAINTING
diff --git a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
index 937ddd3a2b9e1df2c8835079923c339178f08459..ceca8b6a4a11753bef7ad341c34ccda60114c6b5 100644
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
@@ -236,6 +236,27 @@ public class ItemMetaTest extends AbstractTestingBase {
         }
     }
 
+    // Paper start - check entity tag metas
+    private static final java.util.Set<Class<?>> ENTITY_TAG_METAS = java.util.Set.of(
+        CraftMetaEntityTag.class,
+        CraftMetaTropicalFishBucket.class,
+        CraftMetaAxolotlBucket.class
+    );
+    @Test
+    public void testEntityTagMeta() {
+        for (final Item item : BuiltInRegistries.ITEM) {
+            if (item instanceof net.minecraft.world.item.HangingEntityItem || item instanceof net.minecraft.world.item.MobBucketItem) {
+                ItemStack stack = new ItemStack(CraftMagicNumbers.getMaterial(item));
+                assertTrue(ENTITY_TAG_METAS.contains(stack.getItemMeta().getClass()), "missing entity tag meta handling for " + item);
+                stack = CraftItemStack.asNewCraftStack(net.minecraft.world.item.Items.STONE);
+                stack.editMeta(meta -> meta.displayName(net.kyori.adventure.text.Component.text("hello")));
+                stack.setType(CraftMagicNumbers.getMaterial(item));
+                assertTrue(ENTITY_TAG_METAS.contains(stack.getItemMeta().getClass()), "missing entity tag meta handling for " + item);
+            }
+        }
+    }
+    // Paper end
+
     @Test
     public void testEachExtraData() {
         final List<StackProvider> providers = Arrays.asList(