From 1cbd306c50e8fffe90510ad160f29dbd49b24474 Mon Sep 17 00:00:00 2001 From: Kam Date: Fri, 1 Mar 2024 20:56:24 -0500 Subject: [PATCH] Separate GUI Data from PartyData so that overwrites don't consistently occur to GUI Page --- src/main/java/noppes/npcs/PacketHandlerServer.java | 9 ++++----- .../noppes/npcs/client/PacketHandlerClient.java | 14 ++++++++++++++ .../npcs/client/gui/player/inventory/GuiParty.java | 4 ++-- .../noppes/npcs/client/gui/util/IPartyData.java | 7 +++++++ .../noppes/npcs/constants/EnumPacketClient.java | 3 ++- .../noppes/npcs/controllers/PartyController.java | 2 +- 6 files changed, 30 insertions(+), 9 deletions(-) create mode 100644 src/main/java/noppes/npcs/client/gui/util/IPartyData.java diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index b71407580..52a6141b4 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -127,7 +127,7 @@ public class PacketHandlerServer{ NBTTagCompound compound = new NBTTagCompound(); compound.setBoolean("Disband", true); - Server.sendData(player, EnumPacketClient.GUI_DATA, compound); + Server.sendData(player, EnumPacketClient.PARTY_DATA, compound); } else if (type == EnumPacketServer.KickPlayer) { EntityPlayer kickPlayer = NoppesUtilServer.getPlayerByName(Server.readString(buffer)); if (kickPlayer != null) { @@ -171,7 +171,6 @@ public class PacketHandlerServer{ if (!party.getIsLocked()) { party.setLeader(NoppesUtilServer.getPlayerByName(Server.readString(buffer))); PartyController.Instance().pingPartyUpdate(party); - // Server.sendData(player, EnumPacketClient.GUI_DATA, party.writeToNBT()); } } } else if (type == EnumPacketServer.PartyInvite) { @@ -220,7 +219,7 @@ public class PacketHandlerServer{ break; } } - Server.sendData(player, EnumPacketClient.GUI_DATA, party.writeToNBT()); + Server.sendData(player, EnumPacketClient.PARTY_DATA, party.writeToNBT()); } } @@ -288,7 +287,7 @@ public class PacketHandlerServer{ compound.setString("QuestCompleteWith", quest.completerNpc); } } - Server.sendData(player, EnumPacketClient.GUI_DATA, compound); + Server.sendData(player, EnumPacketClient.PARTY_DATA, compound); } else { sendInviteData(player); } @@ -308,7 +307,7 @@ public class PacketHandlerServer{ list.appendTag(partyCompound); } compound.setTag("PartyInvites", list); - Server.sendData(player, EnumPacketClient.GUI_DATA, compound); + Server.sendData(player, EnumPacketClient.PARTY_DATA, compound); } } diff --git a/src/main/java/noppes/npcs/client/PacketHandlerClient.java b/src/main/java/noppes/npcs/client/PacketHandlerClient.java index 609e9d7b4..ee8e8b3a3 100644 --- a/src/main/java/noppes/npcs/client/PacketHandlerClient.java +++ b/src/main/java/noppes/npcs/client/PacketHandlerClient.java @@ -400,5 +400,19 @@ public class PacketHandlerClient extends PacketHandlerServer{ ItemStack stack = ItemStack.loadItemStackFromNBT(Server.readNBT(buffer)); npc.inventory.weapons.put(weaponSlotIndex,stack); } + else if(type == EnumPacketClient.PARTY_DATA){ + GuiScreen gui = Minecraft.getMinecraft().currentScreen; + if(gui == null) + return; + + if(gui instanceof GuiNPCInterface && ((GuiNPCInterface)gui).hasSubGui()){ + gui = (GuiScreen) ((GuiNPCInterface)gui).getSubGui(); + } + else if(gui instanceof GuiContainerNPCInterface && ((GuiContainerNPCInterface)gui).hasSubGui()){ + gui = (GuiScreen) ((GuiContainerNPCInterface)gui).getSubGui(); + } + if(gui instanceof IPartyData) + ((IPartyData)gui).setPartyData(Server.readNBT(buffer)); + } } } diff --git a/src/main/java/noppes/npcs/client/gui/player/inventory/GuiParty.java b/src/main/java/noppes/npcs/client/gui/player/inventory/GuiParty.java index 87821e9dd..3a12dc7d2 100644 --- a/src/main/java/noppes/npcs/client/gui/player/inventory/GuiParty.java +++ b/src/main/java/noppes/npcs/client/gui/player/inventory/GuiParty.java @@ -23,7 +23,7 @@ import tconstruct.client.tabs.TabRegistry; import java.util.*; -public class GuiParty extends GuiCNPCInventory implements ITextfieldListener, ITopButtonListener,ICustomScrollListener, IGuiData, GuiYesNoCallback { +public class GuiParty extends GuiCNPCInventory implements ITextfieldListener, ITopButtonListener,ICustomScrollListener, IPartyData, GuiYesNoCallback { private final ResourceLocation resource = new ResourceLocation("customnpcs","textures/gui/standardbg.png"); private final EntityPlayer player; private final Minecraft mc = Minecraft.getMinecraft(); @@ -370,7 +370,7 @@ public class GuiParty extends GuiCNPCInventory implements ITextfieldListener, IT } @Override - public void setGuiData(NBTTagCompound compound) { + public void setPartyData(NBTTagCompound compound) { this.receivedData = true; ClientCacheHandler.party = null; diff --git a/src/main/java/noppes/npcs/client/gui/util/IPartyData.java b/src/main/java/noppes/npcs/client/gui/util/IPartyData.java new file mode 100644 index 000000000..be4b5e46f --- /dev/null +++ b/src/main/java/noppes/npcs/client/gui/util/IPartyData.java @@ -0,0 +1,7 @@ +package noppes.npcs.client.gui.util; + +import net.minecraft.nbt.NBTTagCompound; + +public interface IPartyData { + public void setPartyData(NBTTagCompound compound); +} diff --git a/src/main/java/noppes/npcs/constants/EnumPacketClient.java b/src/main/java/noppes/npcs/constants/EnumPacketClient.java index ff865baa0..ff13d3821 100644 --- a/src/main/java/noppes/npcs/constants/EnumPacketClient.java +++ b/src/main/java/noppes/npcs/constants/EnumPacketClient.java @@ -54,5 +54,6 @@ public enum EnumPacketClient { CONTINUE_SOUNDS, STOP_SOUNDS, SYNC_WEAPON, - MARK_DATA + MARK_DATA, + PARTY_DATA } diff --git a/src/main/java/noppes/npcs/controllers/PartyController.java b/src/main/java/noppes/npcs/controllers/PartyController.java index 8d1b02783..853fc545f 100644 --- a/src/main/java/noppes/npcs/controllers/PartyController.java +++ b/src/main/java/noppes/npcs/controllers/PartyController.java @@ -121,7 +121,7 @@ public class PartyController { compound.setString("QuestCompleteWith", quest.completerNpc); } } - Server.sendData((EntityPlayerMP) playerMP, EnumPacketClient.GUI_DATA, compound); + Server.sendData((EntityPlayerMP) playerMP, EnumPacketClient.PARTY_DATA, compound); } } }