mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 20:50:41 +01:00
4bc15f13aa
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: e2160a18 Make MapCursor#type not depends on deprecated values CraftBukkit Changes: 6ce172642 SPIGOT-7761: Ender pearl does not damage or spawn endermites f5a63f734 SPIGOT-7759: Chunk not there when requested in ChunkUnloadEvent 28287259c Remove unused import eb9a7dde0 SPIGOT-7757: Cannot set item in Stonecutter Inventory f8be9d752 Move deserialized removed unhandled tags to dedicated removedTags a7e576186 Fix potential mutability issue with CraftMetaItem copy constructor 995885452 SPIGOT-7741: Vanilla ItemComponent in commands can't remove components 9ef69aa0b PR-1284: Move ItemType <-> ItemMeta linking to a centralized place 3e82eafbe PR-1420: Fix DirectEntity and CausingEntity Damager for Creepers ignited by Player c23daa71f SPIGOT-7751: Fix crash caused by arrows from trial spawners Make MapCursor#type not depends on deprecated values SPIGOT-7761: Ender pearl does not damage or spawn endermites
63 lines
3.7 KiB
Diff
63 lines
3.7 KiB
Diff
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/CraftItemMetas.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
|
|
index 4ae9930c2d74e5b1e3ad0c2ecf6556dc59cbf23c..a6c78854c10362864c2297de903ab9594cdb1eb6 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftItemMetas.java
|
|
@@ -286,7 +286,7 @@ public final class CraftItemMetas {
|
|
if (itemType == ItemType.SUSPICIOUS_STEW) {
|
|
return CraftItemMetas.asType(CraftItemMetas.SUSPICIOUS_STEW_META_DATA);
|
|
}
|
|
- if (itemType == ItemType.COD_BUCKET || itemType == ItemType.PUFFERFISH_BUCKET
|
|
+ if (itemType == ItemType.COD_BUCKET || itemType == ItemType.PUFFERFISH_BUCKET || itemType == ItemType.TADPOLE_BUCKET // Paper
|
|
|| itemType == ItemType.SALMON_BUCKET || itemType == ItemType.ITEM_FRAME
|
|
|| itemType == ItemType.GLOW_ITEM_FRAME || itemType == ItemType.PAINTING) {
|
|
return CraftItemMetas.asType(CraftItemMetas.ENTITY_TAG_META_DATA);
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java
|
|
index 27af7ca9d62bdb4a24be5af139c181d7bc271ba5..3ff0340c40e9dc9a6e690de15ccade7a0c4e8f02 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaEntityTag.java
|
|
@@ -19,6 +19,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 a1d8da4e0de3f84194f28d7d18fa795d53714590..d6018439015583fa0344c7c01b2e60a13de29795 100644
|
|
--- a/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
|
|
+++ b/src/test/java/org/bukkit/craftbukkit/inventory/ItemMetaTest.java
|
|
@@ -208,6 +208,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(CraftItemType.minecraftToBukkit(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(CraftItemType.minecraftToBukkit(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(
|