From ac54c26f5e9f239d53a467f14007ae9fbd814a98 Mon Sep 17 00:00:00 2001 From: Noah van der Aa Date: Sun, 2 Jan 2022 00:26:53 +0100 Subject: [PATCH] Fix soul speed particles with hide-itemmeta enabled (#7239) --- .../Hide-unnecessary-itemmeta-from-clients.patch | 10 ++++++++-- ...-sending-oversized-item-data-in-equipment-and.patch | 2 +- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/patches/server/Hide-unnecessary-itemmeta-from-clients.patch b/patches/server/Hide-unnecessary-itemmeta-from-clients.patch index 6d8bb93ff9..70cc16f07d 100644 --- a/patches/server/Hide-unnecessary-itemmeta-from-clients.patch +++ b/patches/server/Hide-unnecessary-itemmeta-from-clients.patch @@ -81,7 +81,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + if (tag.get("Enchantments") instanceof ListTag enchantmentsTag && !enchantmentsTag.isEmpty()) { + // The client still renders items with the enchantment glow if the enchantments tag contains at least one (empty) child. + ListTag enchantments = new ListTag(); -+ enchantments.add(new CompoundTag()); ++ CompoundTag fakeEnchantment = new CompoundTag(); ++ // Soul speed boots generate client side particles. ++ if (EnchantmentHelper.getItemEnchantmentLevel(Enchantments.SOUL_SPEED, itemStack) > 0) { ++ fakeEnchantment.putString("id", org.bukkit.enchantments.Enchantment.SOUL_SPEED.getKey().asString()); ++ fakeEnchantment.putInt("lvl", 1); ++ } ++ enchantments.add(fakeEnchantment); + tag.put("Enchantments", enchantments); + } + tag.remove("AttributeModifiers"); @@ -91,6 +97,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 + } + // Paper end + - // Paper end - prevent oversized data + // Paper start - prevent oversized data public static ItemStack sanitizeItemStack(final ItemStack itemStack, final boolean copyItemStack) { if (itemStack.isEmpty() || !itemStack.hasTag()) { diff --git a/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch b/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch index d73ac30f37..140e2c0be2 100644 --- a/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch +++ b/patches/server/Prevent-sending-oversized-item-data-in-equipment-and.patch @@ -53,7 +53,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000 ((ServerLevel) this.level).getChunkSource().broadcast(this, new ClientboundSetEquipmentPacket(this.getId(), list)); } -+ // Paper end - prevent oversized data ++ // Paper start - prevent oversized data + public static ItemStack sanitizeItemStack(final ItemStack itemStack, final boolean copyItemStack) { + if (itemStack.isEmpty() || !itemStack.hasTag()) { + return itemStack;