diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/AdminCommands.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/AdminCommands.java index aba3e668b4..bb3ba5d0cf 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/AdminCommands.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/AdminCommands.java @@ -20,6 +20,7 @@ package org.l2jmobius.gameserver; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.util.Collection; import java.util.StringTokenizer; import java.util.logging.Logger; @@ -110,8 +111,7 @@ public class AdminCommands extends Thread } else if (command.equals("admin_announce_announcements")) { - PlayerInstance[] players = World.getInstance().getAllPlayers(); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { Announcements.getInstance().showAnnouncements(player); } @@ -460,12 +460,11 @@ public class AdminCommands extends Thread public void showMainPage(ClientThread client) { PlayerInstance activeChar = client.getActiveChar(); - PlayerInstance[] players = World.getInstance().getAllPlayers(); NpcHtmlMessage adminReply = new NpcHtmlMessage(5); StringBuffer replyMSG = new StringBuffer("Server Status"); replyMSG.append(""); replyMSG.append(""); - replyMSG.append(""); + replyMSG.append(""); replyMSG.append(""); replyMSG.append("
Players Online: " + players.length + "
Players Online: " + World.getInstance().getAllPlayers().size() + "
Used Memory: " + (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory())); replyMSG.append(" bytes
"); @@ -532,7 +531,8 @@ public class AdminCommands extends Thread private void listCharacters(ClientThread client, int page) { PlayerInstance activeChar = client.getActiveChar(); - PlayerInstance[] players = World.getInstance().getAllPlayers(); + Collection allWorldPlayers = World.getInstance().getAllPlayers(); + PlayerInstance[] players = allWorldPlayers.toArray(new PlayerInstance[allWorldPlayers.size()]); int MaxCharactersPerPage = 20; int MaxPages = players.length / MaxCharactersPerPage; int modulus = players.length % MaxCharactersPerPage; @@ -823,7 +823,6 @@ public class AdminCommands extends Thread private void findCharacter(ClientThread client, String CharacterToFind) { PlayerInstance activeChar = client.getActiveChar(); - PlayerInstance[] players = World.getInstance().getAllPlayers(); NpcHtmlMessage adminReply = new NpcHtmlMessage(5); int CharactersFound = 0; StringBuffer replyMSG = new StringBuffer("Character Search"); @@ -831,7 +830,7 @@ public class AdminCommands extends Thread replyMSG.append("
"); replyMSG.append(""); replyMSG.append(""); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { if (!player.getName().startsWith(CharacterToFind)) { @@ -1002,8 +1001,7 @@ public class AdminCommands extends Thread private int disconnectAllCharacters() { - PlayerInstance[] players = World.getInstance().getAllPlayers(); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { LeaveWorld ql = new LeaveWorld(); player.sendPacket(ql); @@ -1163,9 +1161,8 @@ public class AdminCommands extends Thread public void broadcastToAll(String message) { - PlayerInstance[] players = World.getInstance().getAllPlayers(); CreatureSay cs = new CreatureSay(0, 9, "[Announcement]", message); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { player.sendPacket(cs); } diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/CommunityBoard.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/CommunityBoard.java index c331c4e6cd..9580fe6ab7 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/CommunityBoard.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/CommunityBoard.java @@ -19,6 +19,7 @@ package org.l2jmobius.gameserver; import java.text.SimpleDateFormat; import java.util.Calendar; +import java.util.Collection; import java.util.StringTokenizer; import org.l2jmobius.Config; @@ -52,7 +53,7 @@ public class CommunityBoard StringBuffer htmlCode = new StringBuffer("
NameClassLevel
L2J Community Board
"); if (command.equals("bbs_default")) { - PlayerInstance[] players = World.getInstance().getAllPlayers(); + Collection players = World.getInstance().getAllPlayers(); htmlCode.append(""); int t = GameTimeController.getInstance().getGameTime(); int h = t / 60; @@ -67,7 +68,7 @@ public class CommunityBoard htmlCode.append(""); htmlCode.append(""); htmlCode.append(""); - htmlCode.append("
Adena Rate: " + Config.RATE_ADENA + "
Drop Rate: " + Config.RATE_DROP + "

" + players.length + " Player(s) Online:
"); + htmlCode.append("
" + players.size() + " Player(s) Online:
"); int n = 1; for (PlayerInstance player : players) { diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/GameTimeController.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/GameTimeController.java index fd30cbbe9c..ac7869596d 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/GameTimeController.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/GameTimeController.java @@ -77,8 +77,7 @@ public class GameTimeController extends Thread private void broadcastToPlayers(ServerBasePacket packet) { - PlayerInstance[] players = World.getInstance().getAllPlayers(); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { player.sendPacket(packet); } diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/model/World.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/model/World.java index 48683b22c8..89b66e162c 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/model/World.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/model/World.java @@ -18,11 +18,11 @@ package org.l2jmobius.gameserver.model; import java.util.ArrayList; +import java.util.Collection; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; -import java.util.logging.Logger; import org.l2jmobius.gameserver.PlayerCountManager; import org.l2jmobius.gameserver.model.actor.instance.ItemInstance; @@ -31,8 +31,7 @@ import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; public class World { - private static Logger _log = Logger.getLogger(World.class.getName()); - private final Map _allPlayers = new ConcurrentHashMap<>(); + private final Map _allPlayers = new ConcurrentHashMap<>(); private final Map _allObjects = new ConcurrentHashMap<>(); private final Map _visibleObjects = new ConcurrentHashMap<>(); private static World _instance; @@ -69,10 +68,9 @@ public class World { if (object instanceof PlayerInstance) { - _allPlayers.put(((PlayerInstance) object).getName().toLowerCase(), object); - WorldObject[] visible = getVisibleObjects(object, 2000); - _log.finest("Objects in range:" + visible.length); - for (WorldObject element : visible) + final PlayerInstance player = (PlayerInstance) object; + _allPlayers.put(player.getName().toLowerCase(), player); + for (WorldObject element : getVisibleObjects(object, 2000)) { object.addKnownObject(element); if ((object instanceof ItemInstance) && element.getKnownObjects().contains(object)) @@ -88,11 +86,11 @@ public class World int x = object.getX(); int y = object.getY(); int sqRadius = 4000000; - Iterator iter = _allPlayers.values().iterator(); + Iterator iter = _allPlayers.values().iterator(); while (iter.hasNext()) { long dy; - PlayerInstance player = (PlayerInstance) iter.next(); + PlayerInstance player = iter.next(); int x1 = player.getX(); long dx = x1 - x; long sqDist = (dx * dx) + ((dy = player.getY() - y) * dy); @@ -110,7 +108,6 @@ public class World public void removeVisibleObject(WorldObject object) { _visibleObjects.remove(object.getObjectId()); - // _log.fine("World has now " + this._visibleObjects.size() + " visible objects"); Object[] temp = object.getKnownObjects().toArray(); for (Object element : temp) { @@ -128,40 +125,29 @@ public class World } } - public WorldObject[] getVisibleObjects(WorldObject object, int radius) + public Collection getVisibleObjects(WorldObject object, int radius) { int x = object.getX(); int y = object.getY(); - int sqRadius = radius * radius; List result = new ArrayList<>(); - Iterator iter = _visibleObjects.values().iterator(); - while (iter.hasNext()) + for (WorldObject worldObject : _visibleObjects.values()) { - @SuppressWarnings("unused") - int x1; - @SuppressWarnings("unused") - int y1; - long dx; - long dy; - @SuppressWarnings("unused") - long sqDist; - WorldObject element = iter.next(); - if (element.equals(object) || ((sqDist = ((dx = (x1 = element.getX()) - x) * dx) + ((dy = (y1 = element.getY()) - y) * dy)) >= sqRadius)) + if ((worldObject == null) || worldObject.equals(object) || (Math.sqrt(Math.pow(x - worldObject.getX(), 2) + Math.pow(y - worldObject.getY(), 2)) > radius)) { continue; } - result.add(element); + result.add(worldObject); } - return result.toArray(new WorldObject[result.size()]); + return result; } - public PlayerInstance[] getAllPlayers() + public Collection getAllPlayers() { - return _allPlayers.values().toArray(new PlayerInstance[_allPlayers.size()]); + return _allPlayers.values(); } public PlayerInstance getPlayer(String name) { - return (PlayerInstance) _allPlayers.get(name.toLowerCase()); + return _allPlayers.get(name.toLowerCase()); } } diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Appearing.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Appearing.java index 9e3fa33f0f..7b289e7abd 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Appearing.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Appearing.java @@ -45,40 +45,38 @@ public class Appearing extends ClientBasePacket Connection con = client.getConnection(); UserInfo ui = new UserInfo(activeChar); con.sendPacket(ui); - WorldObject[] visible = World.getInstance().getVisibleObjects(activeChar, 2000); - _log.fine("npc in range:" + visible.length); - for (int i = 0; i < visible.length; ++i) + for (WorldObject worldObject : World.getInstance().getVisibleObjects(activeChar, 2000)) { NpcInfo ni; Creature npc; - activeChar.addKnownObject(visible[i]); - if (visible[i] instanceof ItemInstance) + activeChar.addKnownObject(worldObject); + if (worldObject instanceof ItemInstance) { - SpawnItem si = new SpawnItem((ItemInstance) visible[i]); + SpawnItem si = new SpawnItem((ItemInstance) worldObject); con.sendPacket(si); continue; } - if (visible[i] instanceof NpcInstance) + if (worldObject instanceof NpcInstance) { - ni = new NpcInfo((NpcInstance) visible[i]); + ni = new NpcInfo((NpcInstance) worldObject); con.sendPacket(ni); - npc = (NpcInstance) visible[i]; + npc = (NpcInstance) worldObject; npc.addKnownObject(activeChar); continue; } - if (visible[i] instanceof PetInstance) + if (worldObject instanceof PetInstance) { - ni = new NpcInfo((PetInstance) visible[i]); + ni = new NpcInfo((PetInstance) worldObject); con.sendPacket(ni); - npc = (PetInstance) visible[i]; + npc = (PetInstance) worldObject; npc.addKnownObject(activeChar); continue; } - if (!(visible[i] instanceof PlayerInstance)) + if (!(worldObject instanceof PlayerInstance)) { continue; } - PlayerInstance player = (PlayerInstance) visible[i]; + PlayerInstance player = (PlayerInstance) worldObject; con.sendPacket(new CharInfo(player)); player.addKnownObject(activeChar); player.getNetConnection().sendPacket(new CharInfo(activeChar)); diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPartyMatchList.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPartyMatchList.java index f257f2d28f..fa8a1a0a0a 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPartyMatchList.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/RequestPartyMatchList.java @@ -21,7 +21,6 @@ import java.io.IOException; import org.l2jmobius.gameserver.ClientThread; import org.l2jmobius.gameserver.model.World; -import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.network.serverpackets.PartyMatchList; public class RequestPartyMatchList extends ClientBasePacket @@ -34,8 +33,7 @@ public class RequestPartyMatchList extends ClientBasePacket int status = readD(); if (status == 1) { - PlayerInstance[] allPlayers = World.getInstance().getAllPlayers(); - PartyMatchList matchList = new PartyMatchList(allPlayers); + PartyMatchList matchList = new PartyMatchList(World.getInstance().getAllPlayers()); client.getConnection().sendPacket(matchList); } else if (status == 3) diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Say2.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Say2.java index 2d9dc45bc5..b3e50383cf 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Say2.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/Say2.java @@ -72,8 +72,7 @@ public class Say2 extends ClientBasePacket } else if ((type == 1) || (type == 8)) { - PlayerInstance[] players = World.getInstance().getAllPlayers(); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { player.sendPacket(cs); } diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/SendBypassBuildCmd.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/SendBypassBuildCmd.java index ac4725c7b3..6dc383f222 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/SendBypassBuildCmd.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/SendBypassBuildCmd.java @@ -48,8 +48,7 @@ public class SendBypassBuildCmd extends ClientBasePacket { String text = command.substring(9); CreatureSay cs = new CreatureSay(0, 10, activeChar.getName(), text); - PlayerInstance[] players = World.getInstance().getAllPlayers(); - for (PlayerInstance player : players) + for (PlayerInstance player : World.getInstance().getAllPlayers()) { player.sendPacket(cs); } diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ValidatePosition.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ValidatePosition.java index c197606d97..edbd009ebb 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ValidatePosition.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/clientpackets/ValidatePosition.java @@ -83,15 +83,14 @@ public class ValidatePosition extends ClientBasePacket _log.fine("deleted " + delete + " objects"); } int newObjects = 0; - WorldObject[] visible = World.getInstance().getVisibleObjects(activeChar, 3000); - for (WorldObject element : visible) + for (WorldObject worldObject : World.getInstance().getVisibleObjects(activeChar, 3000)) { - if (activeChar.knownsObject(element)) + if (activeChar.knownsObject(worldObject)) { continue; } - activeChar.addKnownObject(element); - element.addKnownObject(activeChar); + activeChar.addKnownObject(worldObject); + worldObject.addKnownObject(activeChar); ++newObjects; } if (newObjects > 0) diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PartyMatchList.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PartyMatchList.java index 114dbd64e4..6a400b5ab8 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PartyMatchList.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/network/serverpackets/PartyMatchList.java @@ -17,14 +17,16 @@ */ package org.l2jmobius.gameserver.network.serverpackets; +import java.util.Collection; + import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; public class PartyMatchList extends ServerBasePacket { private static final String _S__AF_PARTYMATCHLIST = "[S] AF PartyMatchList"; - private final PlayerInstance[] _matchingPlayers; + private final Collection _matchingPlayers; - public PartyMatchList(PlayerInstance[] allPlayers) + public PartyMatchList(Collection allPlayers) { _matchingPlayers = allPlayers; } @@ -33,24 +35,24 @@ public class PartyMatchList extends ServerBasePacket public byte[] getContent() { writeC(175); - int size = _matchingPlayers.length; + int size = _matchingPlayers.size(); if (size > 40) { size = 40; } writeD(size); - for (int i = 0; i < size; ++i) + for (PlayerInstance player : _matchingPlayers) { - writeD(_matchingPlayers[i].getObjectId()); - writeS(_matchingPlayers[i].getName()); - writeD(_matchingPlayers[i].getLevel()); - writeD(_matchingPlayers[i].getClassId()); + writeD(player.getObjectId()); + writeS(player.getName()); + writeD(player.getLevel()); + writeD(player.getClassId()); writeD(0); - writeD(_matchingPlayers[i].getClanId()); + writeD(player.getClanId()); writeD(0); - writeD(_matchingPlayers[i].getX()); - writeD(_matchingPlayers[i].getY()); - writeD(_matchingPlayers[i].getZ()); + writeD(player.getX()); + writeD(player.getY()); + writeD(player.getZ()); } return getBytes(); } diff --git a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/ui/SystemPanel.java b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/ui/SystemPanel.java index ce63aa9cf4..112dd67b04 100644 --- a/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/ui/SystemPanel.java +++ b/L2J_Mobius_C1_HarbingersOfWar/java/org/l2jmobius/gameserver/ui/SystemPanel.java @@ -116,7 +116,7 @@ public class SystemPanel extends JPanel @Override public void run() { - lblConnected.setText("Connected: " + World.getInstance().getAllPlayers().length); + lblConnected.setText("Connected: " + World.getInstance().getAllPlayers().size()); lblMaxConnected.setText("Max connected: " + PlayerCountManager.getInstance().getMaxConnectedCount()); lblElapsedTime.setText("Elapsed: " + getDurationBreakdown(System.currentTimeMillis() - startTime)); }