diff --git a/src/api b/src/api index dd3d8c552..3cfe8be05 160000 --- a/src/api +++ b/src/api @@ -1 +1 @@ -Subproject commit dd3d8c552c515b48901f4c8d443b8c7cb85c0a20 +Subproject commit 3cfe8be0562243595015c76cbbcff6fc15a73cfb diff --git a/src/main/java/noppes/npcs/controllers/PartyController.java b/src/main/java/noppes/npcs/controllers/PartyController.java index c38c8647a..2247ce631 100644 --- a/src/main/java/noppes/npcs/controllers/PartyController.java +++ b/src/main/java/noppes/npcs/controllers/PartyController.java @@ -11,6 +11,9 @@ import net.minecraft.nbt.NBTTagString; import noppes.npcs.EventHooks; import noppes.npcs.NoppesUtilPlayer; import noppes.npcs.NoppesUtilServer; +import noppes.npcs.api.entity.IPlayer; +import noppes.npcs.api.handler.IPartyHandler; +import noppes.npcs.api.handler.data.IParty; import noppes.npcs.constants.EnumQuestCompletion; import noppes.npcs.constants.EnumQuestType; import noppes.npcs.controllers.data.Party; @@ -27,7 +30,7 @@ import java.util.Vector; import static kamkeel.npcs.network.packets.request.party.PartyInvitePacket.sendInviteData; -public class PartyController { +public class PartyController implements IPartyHandler { private static PartyController Instance; private HashMap parties = new HashMap<>(); @@ -47,6 +50,42 @@ public class PartyController { return party; } + @Override + public IParty createParty(IPlayer player){ + if(player == null) + return null; + + if(player.getMCEntity() == null) + return null; + + EntityPlayer entityPlayer = (EntityPlayer) player.getMCEntity(); + PlayerData playerData = PlayerDataController.Instance.getPlayerData(entityPlayer); + if(playerData.partyUUID != null) + return getParty(playerData.partyUUID); + + Party party = new Party(); + party.addPlayer(entityPlayer); + party.setLeader(entityPlayer); + this.parties.put(party.getPartyUUID(), party); + return party; + } + + @Override + public void disbandParty(IPlayer player){ + if(player == null) + return; + + if(player.getMCEntity() == null) + return; + + EntityPlayer entityPlayer = (EntityPlayer) player.getMCEntity(); + PlayerData playerData = PlayerDataController.Instance.getPlayerData(entityPlayer); + if(playerData.partyUUID != null) + disbandParty(playerData.partyUUID); + + return; + } + public Party getParty(UUID partyUUID) { return this.parties.get(partyUUID); } diff --git a/src/main/java/noppes/npcs/scripted/NpcAPI.java b/src/main/java/noppes/npcs/scripted/NpcAPI.java index 1b5df256e..747bff40a 100644 --- a/src/main/java/noppes/npcs/scripted/NpcAPI.java +++ b/src/main/java/noppes/npcs/scripted/NpcAPI.java @@ -246,6 +246,8 @@ public class NpcAPI extends AbstractNpcAPI { public ICustomEffectHandler getCustomEffectHandler() { return CustomEffectController.Instance; } + public IPartyHandler getPartyHandler() { return PartyController.Instance(); } + public ITransportHandler getLocations() { return TransportController.getInstance(); }