From 5055e6adb9d96ad4a954f5eb83696cf72a1295ef Mon Sep 17 00:00:00 2001 From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> Date: Thu, 9 Jan 2025 20:32:24 -0800 Subject: [PATCH] Set name visible when using a Name Tag on an Armor Stand --- ...-when-using-a-Name-Tag-on-an-Armor-S.patch | 34 ------------------- .../world/item/NameTagItem.java.patch | 10 ++++++ .../purpurmc/purpur/PurpurWorldConfig.java | 2 ++ 3 files changed, 12 insertions(+), 34 deletions(-) delete mode 100644 patches/server/0099-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch create mode 100644 purpur-server/minecraft-patches/sources/net/minecraft/world/item/NameTagItem.java.patch diff --git a/patches/server/0099-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch b/patches/server/0099-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch deleted file mode 100644 index dc9698aff..000000000 --- a/patches/server/0099-Set-name-visible-when-using-a-Name-Tag-on-an-Armor-S.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jason Penilla <11360596+jpenilla@users.noreply.github.com> -Date: Tue, 17 Nov 2020 13:12:09 -0800 -Subject: [PATCH] Set name visible when using a Name Tag on an Armor Stand - - -diff --git a/net/minecraft/world/item/NameTagItem.java b/net/minecraft/world/item/NameTagItem.java -index df9cdcb9544a171a5a07c65ba0150933fb70d5fc..793bd6392ca3c3792306a20538233e4d7fb69b86 100644 ---- a/net/minecraft/world/item/NameTagItem.java -+++ b/net/minecraft/world/item/NameTagItem.java -@@ -23,6 +23,7 @@ public class NameTagItem extends Item { - if (!event.callEvent()) return InteractionResult.PASS; - LivingEntity newEntity = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getEntity()).getHandle(); - newEntity.setCustomName(event.getName() != null ? io.papermc.paper.adventure.PaperAdventure.asVanilla(event.getName()) : null); -+ if (user.level().purpurConfig.armorstandFixNametags && entity instanceof net.minecraft.world.entity.decoration.ArmorStand) entity.setCustomNameVisible(true); // Purpur - if (event.isPersistent() && newEntity instanceof Mob mob) { - // Paper end - Add PlayerNameEntityEvent - mob.setPersistenceRequired(); -diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -index 4efb19a627b3735fe2ded2108576d76296b605f3..c6f4b6e14616aed688269c56aa9ddf11f097abaf 100644 ---- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java -@@ -99,9 +99,11 @@ public class PurpurWorldConfig { - - public float armorstandStepHeight = 0.0F; - public boolean armorstandSetNameVisible = false; -+ public boolean armorstandFixNametags = false; - private void armorstandSettings() { - armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); - armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); -+ armorstandFixNametags = getBoolean("gameplay-mechanics.armorstand.fix-nametags", armorstandFixNametags); - } - - public boolean arrowMovementResetsDespawnCounter = true; diff --git a/purpur-server/minecraft-patches/sources/net/minecraft/world/item/NameTagItem.java.patch b/purpur-server/minecraft-patches/sources/net/minecraft/world/item/NameTagItem.java.patch new file mode 100644 index 000000000..2a8639361 --- /dev/null +++ b/purpur-server/minecraft-patches/sources/net/minecraft/world/item/NameTagItem.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/item/NameTagItem.java ++++ b/net/minecraft/world/item/NameTagItem.java +@@ -24,6 +_,7 @@ + + LivingEntity newEntity = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getEntity()).getHandle(); + newEntity.setCustomName(event.getName() != null ? io.papermc.paper.adventure.PaperAdventure.asVanilla(event.getName()) : null); ++ if (player.level().purpurConfig.armorstandFixNametags && target instanceof net.minecraft.world.entity.decoration.ArmorStand) target.setCustomNameVisible(true); // Purpur - Set name visible when using a Name Tag on an Armor Stand + if (event.isPersistent() && newEntity instanceof Mob mob) { + // Paper end - Add PlayerNameEntityEvent + mob.setPersistenceRequired(); diff --git a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index e1a8a61dd..cc0f7d4cb 100644 --- a/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/purpur-server/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -90,9 +90,11 @@ public class PurpurWorldConfig { public float armorstandStepHeight = 0.0F; public boolean armorstandSetNameVisible = false; + public boolean armorstandFixNametags = false; private void armorstandSettings() { armorstandStepHeight = (float) getDouble("gameplay-mechanics.armorstand.step-height", armorstandStepHeight); armorstandSetNameVisible = getBoolean("gameplay-mechanics.armorstand.set-name-visible-when-placing-with-custom-name", armorstandSetNameVisible); + armorstandFixNametags = getBoolean("gameplay-mechanics.armorstand.fix-nametags", armorstandFixNametags); } public boolean arrowMovementResetsDespawnCounter = true;