diff --git a/src/main/java/noppes/npcs/blocks/tiles/TileWaypoint.java b/src/main/java/noppes/npcs/blocks/tiles/TileWaypoint.java index b3257159d..6927b7eb7 100644 --- a/src/main/java/noppes/npcs/blocks/tiles/TileWaypoint.java +++ b/src/main/java/noppes/npcs/blocks/tiles/TileWaypoint.java @@ -17,34 +17,34 @@ import java.util.List; public class TileWaypoint extends TileEntity { - public String name = ""; + public String name = ""; - private int ticks = 10; - private List recentlyChecked = new ArrayList(); - private List toCheck; - public int range = 10; + private int ticks = 10; + private List recentlyChecked = new ArrayList(); + private List toCheck; + public int range = 10; - @Override - public void updateEntity(){ - if(worldObj.isRemote || name.isEmpty()) - return; - ticks--; - if(ticks > 0) - return; - ticks = 10; + @Override + public void updateEntity(){ + if(worldObj.isRemote || name.isEmpty()) + return; + ticks--; + if(ticks > 0) + return; + ticks = 10; - toCheck = getPlayerList(range, range, range); - toCheck.removeAll(recentlyChecked); + toCheck = getPlayerList(range, range, range); + toCheck.removeAll(recentlyChecked); - List listMax = getPlayerList(range + 10, range + 10, range + 10); - recentlyChecked.retainAll(listMax); - recentlyChecked.addAll(toCheck); + List listMax = getPlayerList(range + 10, range + 10, range + 10); + recentlyChecked.retainAll(listMax); + recentlyChecked.addAll(toCheck); - if(toCheck.isEmpty()) - return; - for(EntityPlayer player : toCheck){ - PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); - PlayerQuestData questData = playerData.questData; + if(toCheck.isEmpty()) + return; + for(EntityPlayer player : toCheck){ + PlayerData playerData = PlayerDataController.Instance.getPlayerData(player); + PlayerQuestData questData = playerData.questData; Party party = playerData.getPlayerParty(); Quest partyQuest = null; if(party != null && party.getQuestData() != null && party.getQuestData().quest != null && party.getQuestData().quest.type == EnumQuestType.Location){ @@ -58,41 +58,44 @@ public class TileWaypoint extends TileEntity { } } - ArrayList activeQuestValues = new ArrayList<>(questData.activeQuests.values()); - for(QuestData data : activeQuestValues){ - if(data.quest.type != EnumQuestType.Location) - continue; + ArrayList activeQuestValues = new ArrayList<>(questData.activeQuests.values()); + for(QuestData data : activeQuestValues){ + if(data.quest.type != EnumQuestType.Location) + continue; if(partyQuest != null && partyQuest.id == data.quest.getId()) continue; - QuestLocation quest = (QuestLocation) data.quest.questInterface; - if(quest.setFound(data, name)){ - player.addChatMessage(new ChatComponentTranslation(name + " " + StatCollector.translateToLocal("quest.found"))); - questData.checkQuestCompletion(playerData, EnumQuestType.Location); - } - } - } - } + if(data.quest.partyOptions.allowParty && data.quest.partyOptions.onlyParty) + continue; - private List getPlayerList(int x, int y, int z){ - return worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).expand(x, y, z)); - } + QuestLocation quest = (QuestLocation) data.quest.questInterface; + if(quest.setFound(data, name)){ + player.addChatMessage(new ChatComponentTranslation(name + " " + StatCollector.translateToLocal("quest.found"))); + questData.checkQuestCompletion(playerData, EnumQuestType.Location); + } + } + } + } - @Override - public void readFromNBT(NBTTagCompound compound) { - super.readFromNBT(compound); - name = compound.getString("LocationName"); - range = compound.getInteger("LocationRange"); - if(range < 2) - range = 2; - } + private List getPlayerList(int x, int y, int z){ + return worldObj.getEntitiesWithinAABB(EntityPlayer.class, AxisAlignedBB.getBoundingBox(xCoord, yCoord, zCoord, xCoord + 1, yCoord + 1, zCoord + 1).expand(x, y, z)); + } - @Override - public void writeToNBT(NBTTagCompound compound) { - super.writeToNBT(compound); - if(!name.isEmpty()) - compound.setString("LocationName", name); - compound.setInteger("LocationRange", range); - } + @Override + public void readFromNBT(NBTTagCompound compound) { + super.readFromNBT(compound); + name = compound.getString("LocationName"); + range = compound.getInteger("LocationRange"); + if(range < 2) + range = 2; + } + + @Override + public void writeToNBT(NBTTagCompound compound) { + super.writeToNBT(compound); + if(!name.isEmpty()) + compound.setString("LocationName", name); + compound.setInteger("LocationRange", range); + } }