diff --git a/src/main/java/noppes/npcs/PacketHandlerServer.java b/src/main/java/noppes/npcs/PacketHandlerServer.java index ede6f768e..25eb74d6e 100644 --- a/src/main/java/noppes/npcs/PacketHandlerServer.java +++ b/src/main/java/noppes/npcs/PacketHandlerServer.java @@ -135,12 +135,14 @@ public class PacketHandlerServer{ PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); if (playerData.partyUUID != null) { Party party = PartyController.Instance().getParty(playerData.partyUUID); - party.removePlayer(kickPlayer); - if (kickPlayer != player) { - sendPartyData(player); - } else { - sendInviteData((EntityPlayerMP) kickPlayer); - } + if (!party.getIsLocked()) { + party.removePlayer(kickPlayer); + if (kickPlayer != player) { + sendPartyData(player); + } else { + sendInviteData((EntityPlayerMP) kickPlayer); + } + } } } } else if (type == EnumPacketServer.SavePartyData) { @@ -153,8 +155,10 @@ public class PacketHandlerServer{ PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); if (playerData.partyUUID != null) { Party party = PartyController.Instance().getParty(playerData.partyUUID); - party.setLeader(NoppesUtilServer.getPlayerByName(Server.readString(buffer))); - Server.sendData(player, EnumPacketClient.GUI_DATA, party.writeToNBT()); + if (!party.getIsLocked()) { + party.setLeader(NoppesUtilServer.getPlayerByName(Server.readString(buffer))); + Server.sendData(player, EnumPacketClient.GUI_DATA, party.writeToNBT()); + } } } else if (type == EnumPacketServer.PartyInvite) { EntityPlayer invitedPlayer = NoppesUtilServer.getPlayerByName(Server.readString(buffer)); @@ -162,7 +166,10 @@ public class PacketHandlerServer{ PlayerData senderData = PlayerDataController.Instance.getPlayerData(player); PlayerData invitedData = PlayerDataController.Instance.getPlayerData(invitedPlayer); if (senderData.partyUUID != null && invitedData.partyUUID == null) {//only send invite if player is not in a party - invitedData.inviteToParty(PartyController.Instance().getParty(senderData.partyUUID)); + Party party = PartyController.Instance().getParty(senderData.partyUUID); + if (!party.getIsLocked()) { + invitedData.inviteToParty(party); + } } } } else if (type == EnumPacketServer.GetPartyInviteList) { @@ -1271,4 +1278,4 @@ public class PacketHandlerServer{ private void warn(EntityPlayer player, String warning){ MinecraftServer.getServer().logWarning(player.getCommandSenderName() + ": " + warning); } -} \ No newline at end of file +} 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 6cf6aec7e..7091dfb02 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 @@ -109,40 +109,44 @@ public class GuiParty extends GuiCNPCInventory implements ITextfieldListener, IT this.addScroll(playerScroll); if (this.isLeader) { - //set leader button - // - GuiNpcButton leaderButton = new GuiNpcButton(305, guiLeft + 5, guiTop + ySize - 12, "party.makeLeader"); - leaderButton.width = 70; - this.addButton(leaderButton); + if (!party.getIsLocked()) { + //set leader button + // + GuiNpcButton leaderButton = new GuiNpcButton(305, guiLeft + 5, guiTop + ySize - 12, "party.makeLeader"); + leaderButton.width = 70; + this.addButton(leaderButton); - //kick player button - // - GuiNpcButton kickButton = new GuiNpcButton(310, guiLeft + 85, guiTop + ySize - 12, "party.kick"); - kickButton.width = 70; - this.addButton(kickButton); + //kick player button + // + GuiNpcButton kickButton = new GuiNpcButton(310, guiLeft + 85, guiTop + ySize - 12, "party.kick"); + kickButton.width = 70; + this.addButton(kickButton); + + //send invite button (opens subgui) + // + GuiNpcTextField playerTextField = new GuiNpcTextField(325, this, guiLeft + xSize / 2 + 20, guiTop + ySize / 2 + 40, 100, 20, ""); + this.addTextField(playerTextField); + GuiNpcButton inviteButton = new GuiNpcButton(330, guiLeft + xSize / 2 + 125, guiTop + ySize / 2 + 40, "party.invite"); + inviteButton.width = 50; + this.addButton(inviteButton); + } //toggle friendly fire // GuiNpcButton friendlyFireButton = new GuiNpcButton(320, guiLeft + xSize / 2 + 95, guiTop + ySize / 2, new String[]{"gui.on", "gui.off"}, party.friendlyFire() ? 0 : 1); friendlyFireButton.width = 40; this.addButton(friendlyFireButton); - GuiNpcLabel friendlyFireLabel = new GuiNpcLabel(321, StatCollector.translateToLocal("party.friendlyFire") + ":", guiLeft + xSize / 2 + 20, guiTop + ySize / 2 + 5); this.addLabel(friendlyFireLabel); - //send invite button (opens subgui) - // - GuiNpcTextField playerTextField = new GuiNpcTextField(325, this, guiLeft + xSize / 2 + 20, guiTop + ySize / 2 + 40, 100, 20, ""); - this.addTextField(playerTextField); - - GuiNpcButton inviteButton = new GuiNpcButton(330, guiLeft + xSize / 2 + 125, guiTop + ySize / 2 + 40, "party.invite"); - inviteButton.width = 50; - this.addButton(inviteButton); - //disband party // GuiNpcButton disbandButton = new GuiNpcButton(335, guiLeft + xSize/2 + 45, guiTop + ySize/2 + 70, "party.disbandParty"); - disbandButton.width = 100; + disbandButton.width = party.getIsLocked() ? 150 : 100; + if (party.getIsLocked()) { + disbandButton.xPosition = guiLeft + 5; + disbandButton.yPosition = guiTop + ySize - 12; + } this.addButton(disbandButton); } else { //leave party diff --git a/src/main/java/noppes/npcs/controllers/data/PlayerData.java b/src/main/java/noppes/npcs/controllers/data/PlayerData.java index 35078c5c3..593bd89be 100644 --- a/src/main/java/noppes/npcs/controllers/data/PlayerData.java +++ b/src/main/java/noppes/npcs/controllers/data/PlayerData.java @@ -50,7 +50,7 @@ public class PlayerData implements IExtendedEntityProperties, IPlayerData { public UUID partyUUID = null; private final HashSet partyInvites = new HashSet<>(); - + public EntityPlayer player; public String playername = ""; @@ -134,7 +134,7 @@ public class PlayerData implements IExtendedEntityProperties, IPlayerData { compound.setString("UUID", uuid); compound.setInteger("PlayerCompanionId", companionID); compound.setBoolean("isGUIOpen",isGUIOpen); - + if(hasCompanion()){ NBTTagCompound nbt = new NBTTagCompound(); if(activeCompanion.writeToNBTOptional(nbt)) @@ -216,8 +216,10 @@ public class PlayerData implements IExtendedEntityProperties, IPlayerData { if (uuid != null) { this.partyInvites.remove(uuid); Party party = PartyController.Instance().getParty(uuid); - party.addPlayer(player); - PacketHandlerServer.sendPartyData((EntityPlayerMP) player); + if (!party.getIsLocked()) { + party.addPlayer(player); + PacketHandlerServer.sendPartyData((EntityPlayerMP) player); + } } }