From 82938fe5cd3dc432c215520fcbd647208cb44ab5 Mon Sep 17 00:00:00 2001 From: "Luis C.M" Date: Tue, 24 May 2022 00:11:34 -0500 Subject: [PATCH] Fixed NBT issue with player overlays. --- src/main/java/noppes/npcs/PacketHandlerServer.java | 2 +- .../java/noppes/npcs/ScriptPlayerEventHandler.java | 10 ---------- .../java/noppes/npcs/client/PacketHandlerClient.java | 4 +++- .../java/noppes/npcs/entity/data/DataSkinOverlays.java | 3 +++ 4 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index aa478c0ed..4c593221d 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -148,7 +148,7 @@ public class PacketHandlerServer{ public void updateSkinOverlays(EntityPlayerMP player) { NBTTagCompound data = new NBTTagCompound(); data.setTag("SkinOverlayData",player.getEntityData().getTagList("SkinOverlayData",10)); - Server.sendData(player, EnumPacketClient.PLAYER_UPDATE_SKIN_OVERLAYS, data); + Server.sendToAll(EnumPacketClient.PLAYER_UPDATE_SKIN_OVERLAYS, player.getEntityId(), data); } private void getScriptsEnabled(EnumPacketServer type, ByteBuf buffer, EntityPlayerMP player) throws IOException { diff --git a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java index cf8a930c7..0af567230 100644 --- a/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java +++ b/src/main/java/noppes/npcs/ScriptPlayerEventHandler.java @@ -432,16 +432,6 @@ public class ScriptPlayerEventHandler { PlayerDataScript handler = ScriptController.Instance.playerScripts; IPlayer scriptPlayer = (IPlayer) NpcAPI.Instance().getIEntity(event.player); EventHooks.onPlayerLogin(handler, scriptPlayer); - - //Loads other players' and own player's skin overlays if they have them - /* - List list = MinecraftServer.getServer().getConfigurationManager().playerEntityList; - for (EntityPlayerMP playerMP : list) { - if (playerMP.getEntityData().hasKey("SkinOverlayData")) { - NBTTagCompound data = new NBTTagCompound(); - data.setTag("SkinOverlayData",playerMP.getEntityData().getTagList("SkinOverlayData",10)); - } - }*/ } } diff --git a/src/main/java/noppes/npcs/client/PacketHandlerClient.java b/src/main/java/noppes/npcs/client/PacketHandlerClient.java index f7baf4fba..607abd189 100644 --- a/src/main/java/noppes/npcs/client/PacketHandlerClient.java +++ b/src/main/java/noppes/npcs/client/PacketHandlerClient.java @@ -274,7 +274,9 @@ public class PacketHandlerClient extends PacketHandlerServer{ Minecraft.getMinecraft().thePlayer.swingItem(); } else if(type == EnumPacketClient.PLAYER_UPDATE_SKIN_OVERLAYS) { - NoppesUtil.updateSkinOverlayData(player, Server.readNBT(buffer)); + EntityPlayer sendingPlayer = (EntityPlayer) Minecraft.getMinecraft().theWorld.getEntityByID(buffer.readInt()); + NBTTagCompound compound = Server.readNBT(buffer); + NoppesUtil.updateSkinOverlayData(sendingPlayer, compound); } } } diff --git a/src/main/java/noppes/npcs/entity/data/DataSkinOverlays.java b/src/main/java/noppes/npcs/entity/data/DataSkinOverlays.java index 9a9e297ea..165aff11e 100644 --- a/src/main/java/noppes/npcs/entity/data/DataSkinOverlays.java +++ b/src/main/java/noppes/npcs/entity/data/DataSkinOverlays.java @@ -2,6 +2,8 @@ package noppes.npcs.entity.data; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; +import noppes.npcs.Server; +import noppes.npcs.constants.EnumPacketClient; import noppes.npcs.controllers.PlayerData; import noppes.npcs.controllers.data.SkinOverlay; import noppes.npcs.entity.EntityNPCInterface; @@ -49,6 +51,7 @@ public class DataSkinOverlays implements IOverlayHandler { if (parent instanceof PlayerData) { NBTTagCompound compound = this.writeToNBT(new NBTTagCompound()); ((PlayerData) parent).player.getEntityData().setTag("SkinOverlayData", compound.getTagList("SkinOverlayData",10)); + Server.sendToAll(EnumPacketClient.PLAYER_UPDATE_SKIN_OVERLAYS, ((PlayerData) parent).player.getEntityId(), compound); } else if (parent instanceof EntityNPCInterface) { ((EntityNPCInterface) parent).updateClient = true; }