diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RenameCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RenameCommand.java index e997fae5ff..a03f4e08d0 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RenameCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/entity/RenameCommand.java @@ -137,7 +137,7 @@ public void execute(final ScriptEntry scriptEntry) { continue; } if (name.asString().equals("cancel")) { - customNames.remove(bukkitEntity.getEntityId()); + customNames.remove(bukkitEntity.getUniqueId()); if (bukkitEntity.isCustomNameVisible()) { if (players == null) { for (Player player : NMSHandler.getEntityHelper().getPlayersThatSee(bukkitEntity)) { @@ -157,10 +157,10 @@ public void execute(final ScriptEntry scriptEntry) { } else { final BukkitTagContext originalContext = (BukkitTagContext) scriptEntry.context.clone(); - HashMap> playerToFuncMap = customNames.get(bukkitEntity.getEntityId()); + HashMap> playerToFuncMap = customNames.get(bukkitEntity.getUniqueId()); if (playerToFuncMap == null) { playerToFuncMap = new HashMap<>(); - customNames.put(bukkitEntity.getEntityId(), playerToFuncMap); + customNames.put(bukkitEntity.getUniqueId(), playerToFuncMap); } Function nameGetter = p -> { originalContext.player = new PlayerTag(p); @@ -227,21 +227,21 @@ else if (entity instanceof PlayerTag) { } else { Entity bukkitEntity = entity.getDenizenEntity().getBukkitEntity(); - customNames.remove(bukkitEntity.getEntityId()); + customNames.remove(bukkitEntity.getUniqueId()); bukkitEntity.setCustomName(nameString); bukkitEntity.setCustomNameVisible(true); } } } - public static HashMap>> customNames = new HashMap<>(); + public static HashMap>> customNames = new HashMap<>(); public static boolean hasAnyDynamicRenames() { return !customNames.isEmpty(); } - public static String getCustomNameFor(int eid, Player player) { - HashMap> map = customNames.get(eid); + public static String getCustomNameFor(UUID entityId, Player player) { + HashMap> map = customNames.get(entityId); if (map == null) { return null; } diff --git a/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java b/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java index a80578594e..92dcabdec0 100644 --- a/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java +++ b/v1_14/src/main/java/com/denizenscript/denizen/nms/v1_14/impl/network/handlers/DenizenNetworkManagerImpl.java @@ -169,7 +169,11 @@ public void processCustomNameForPacket(Packet packet) { PacketPlayOutEntityMetadata metadataPacket = (PacketPlayOutEntityMetadata) packet; try { int eid = ENTITY_METADATA_EID.getInt(metadataPacket); - String nameToApply = RenameCommand.getCustomNameFor(eid, player.getBukkitEntity()); + Entity ent = player.world.getEntity(eid); + if (ent == null) { + return; // If it doesn't exist on-server, it's definitely not relevant, so move on + } + String nameToApply = RenameCommand.getCustomNameFor(ent.getUniqueID(), player.getBukkitEntity()); if (nameToApply == null) { return; } diff --git a/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java b/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java index 931a09012a..30a0a67ab2 100644 --- a/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java +++ b/v1_15/src/main/java/com/denizenscript/denizen/nms/v1_15/impl/network/handlers/DenizenNetworkManagerImpl.java @@ -169,7 +169,11 @@ public void processCustomNameForPacket(Packet packet) { PacketPlayOutEntityMetadata metadataPacket = (PacketPlayOutEntityMetadata) packet; try { int eid = ENTITY_METADATA_EID.getInt(metadataPacket); - String nameToApply = RenameCommand.getCustomNameFor(eid, player.getBukkitEntity()); + Entity ent = player.world.getEntity(eid); + if (ent == null) { + return; // If it doesn't exist on-server, it's definitely not relevant, so move on + } + String nameToApply = RenameCommand.getCustomNameFor(ent.getUniqueID(), player.getBukkitEntity()); if (nameToApply == null) { return; } diff --git a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java index 6162d92c64..74f7cf5278 100644 --- a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java +++ b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/impl/network/handlers/DenizenNetworkManagerImpl.java @@ -190,7 +190,11 @@ public void processCustomNameForPacket(Packet packet) { PacketPlayOutEntityMetadata metadataPacket = (PacketPlayOutEntityMetadata) packet; try { int eid = ENTITY_METADATA_EID.getInt(metadataPacket); - String nameToApply = RenameCommand.getCustomNameFor(eid, player.getBukkitEntity()); + Entity ent = player.world.getEntity(eid); + if (ent == null) { + return; // If it doesn't exist on-server, it's definitely not relevant, so move on + } + String nameToApply = RenameCommand.getCustomNameFor(ent.getUniqueID(), player.getBukkitEntity()); if (nameToApply == null) { return; }