aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0586-added-PlayerNameEntityEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0586-added-PlayerNameEntityEvent.patch')
-rw-r--r--patches/server/0586-added-PlayerNameEntityEvent.patch38
1 files changed, 38 insertions, 0 deletions
diff --git a/patches/server/0586-added-PlayerNameEntityEvent.patch b/patches/server/0586-added-PlayerNameEntityEvent.patch
new file mode 100644
index 0000000000..c1df33b717
--- /dev/null
+++ b/patches/server/0586-added-PlayerNameEntityEvent.patch
@@ -0,0 +1,38 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+Date: Sun, 5 Jul 2020 00:33:54 -0700
+Subject: [PATCH] added PlayerNameEntityEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/item/NameTagItem.java b/src/main/java/net/minecraft/world/item/NameTagItem.java
+index 13080fb2350d4ee2107063948dd2ef359dff8306..623f78c078fb3aa2665d7e8a37672438227bce6b 100644
+--- a/src/main/java/net/minecraft/world/item/NameTagItem.java
++++ b/src/main/java/net/minecraft/world/item/NameTagItem.java
+@@ -1,5 +1,9 @@
+ package net.minecraft.world.item;
+
++// Paper start
++import io.papermc.paper.adventure.PaperAdventure;
++import io.papermc.paper.event.player.PlayerNameEntityEvent;
++// Paper end
+ import net.minecraft.world.InteractionHand;
+ import net.minecraft.world.InteractionResult;
+ import net.minecraft.world.entity.LivingEntity;
+@@ -15,9 +19,14 @@ public class NameTagItem extends Item {
+ public InteractionResult interactLivingEntity(ItemStack stack, Player user, LivingEntity entity, InteractionHand hand) {
+ if (stack.hasCustomHoverName() && !(entity instanceof Player)) {
+ if (!user.level.isClientSide && entity.isAlive()) {
+- entity.setCustomName(stack.getHoverName());
+- if (entity instanceof Mob) {
+- ((Mob)entity).setPersistenceRequired();
++ // Paper start
++ PlayerNameEntityEvent event = new PlayerNameEntityEvent(((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity(), entity.getBukkitLivingEntity(), PaperAdventure.asAdventure(stack.getHoverName()), true);
++ if (!event.callEvent()) return InteractionResult.PASS;
++ LivingEntity newEntityLiving = ((org.bukkit.craftbukkit.entity.CraftLivingEntity) event.getEntity()).getHandle();
++ newEntityLiving.setCustomName(event.getName() != null ? PaperAdventure.asVanilla(event.getName()) : null);
++ if (event.isPersistent() && newEntityLiving instanceof Mob) {
++ ((Mob) newEntityLiving).setPersistenceRequired();
++ // Paper end
+ }
+
+ stack.shrink(1);