Mines calculate local players by guild

This commit is contained in:
2024-02-11 23:18:09 -06:00
parent 7f5df22a14
commit 8f2847a527
2 changed files with 93 additions and 6 deletions
+65 -1
View File
@@ -24,7 +24,7 @@ import java.net.UnknownHostException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ThreadLocalRandom;
@@ -54,6 +54,9 @@ public class Mine extends AbstractGameObject {
public int capSize;
public HashMap<Guild,ArrayList<PlayerCharacter>> presentPlayers = new HashMap<>();
public Integer totalPLayers;
/**
* ResultSet Constructor
*/
@@ -587,5 +590,66 @@ public class Mine extends AbstractGameObject {
}
return (int) totalModded;
}
public void onEnter() {
HashSet<AbstractWorldObject> currentPlayers;
HashSet<Integer> currentMemory;
PlayerCharacter player;
// Gather current list of players within the zone bounds
Building building = BuildingManager.getBuilding(this.buildingID);
currentPlayers = WorldGrid.getObjectsInRangePartial(building.loc, Enum.CityBoundsType.ZONE.extents, MBServerStatics.MASK_PLAYER);
this.totalPLayers = currentPlayers.size();
for (AbstractWorldObject playerObject : currentPlayers) {
if (playerObject == null)
continue;
player = (PlayerCharacter) playerObject;
Guild nation = player.getGuild().getNation();
if(this.presentPlayers.containsKey(nation)) {
if (this.presentPlayers.get(nation).contains(player) == false)
{
this.presentPlayers.get(nation).add(player);
}
} else {
ArrayList<PlayerCharacter> present = new ArrayList<>();
present.add(player);
this.presentPlayers.put(nation, present);
}
for(Guild guild : this.presentPlayers.keySet()) {
ChatManager.chatSystemInfo(player, "Guild: " + guild.getName() + " COUNT: " + presentPlayers.get(guild).size());
}
}
try {
onExit();
} catch (Exception e) {
Logger.error(e.getMessage());
}
}
private void onExit() {
HashSet<AbstractWorldObject> currentPlayers;
PlayerCharacter player;
Building building = BuildingManager.getBuilding(this.buildingID);
currentPlayers = WorldGrid.getObjectsInRangePartial(building.loc, Enum.CityBoundsType.ZONE.extents, MBServerStatics.MASK_PLAYER);
this.totalPLayers = currentPlayers.size();
for (AbstractWorldObject playerObject : currentPlayers) {
if (playerObject == null)
continue;
player = (PlayerCharacter) playerObject;
Guild nation = player.getGuild().getNation();
if(this.presentPlayers.containsKey(nation)) {
if (this.presentPlayers.get(nation).contains(player) == false)
{
this.presentPlayers.get(nation).remove(player);
}
}
for(Guild guild : this.presentPlayers.keySet()) {
ChatManager.chatSystemInfo(player, "Guild: " + guild.getName() + " COUNT: " + presentPlayers.get(guild).size());
}
}
}
}