geforkt von Mirrors/Paper
bffb08c2f9
The Paper method was chosen for deprecation because it was more restrictive in that it has an isGliding check.
29 Zeilen
1.9 KiB
Diff
29 Zeilen
1.9 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
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 af072de68435d1678651bdf2fa13b314ca9c9d58..2941c16ef486345b57ab2dfcd26f0272285d3b5a 100644
|
|
--- a/src/main/java/net/minecraft/world/item/NameTagItem.java
|
|
+++ b/src/main/java/net/minecraft/world/item/NameTagItem.java
|
|
@@ -15,9 +15,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
|
|
+ io.papermc.paper.event.player.PlayerNameEntityEvent event = new io.papermc.paper.event.player.PlayerNameEntityEvent(((net.minecraft.server.level.ServerPlayer) user).getBukkitEntity(), entity.getBukkitLivingEntity(), io.papermc.paper.adventure.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 ? io.papermc.paper.adventure.PaperAdventure.asVanilla(event.getName()) : null);
|
|
+ if (event.isPersistent() && newEntityLiving instanceof Mob) {
|
|
+ ((Mob) newEntityLiving).setPersistenceRequired();
|
|
+ // Paper end
|
|
}
|
|
|
|
stack.shrink(1);
|