diff --git a/2006Redone Server/src/com/rebotted/game/players/Player.java b/2006Redone Server/src/com/rebotted/game/players/Player.java index 8a12e296..a8f74b4e 100644 --- a/2006Redone Server/src/com/rebotted/game/players/Player.java +++ b/2006Redone Server/src/com/rebotted/game/players/Player.java @@ -511,7 +511,7 @@ public abstract class Player { PestControl.leaveWaitingBoat(this); getPlayerAssistant().movePlayer(2657, 2639, 0); } - if (hasNpc) { + if (hasNpc == true) { getSummon().pickUpClean(this, summonId); } @@ -599,7 +599,7 @@ public abstract class Player { lastY = absY; lastH = heightLevel; CycleEventHandler.getSingleton().stopEvents(this); - if (hasNpc) { + if (hasNpc == true) { getSummon().pickUpClean(this, summonId); } if (forceLogout || System.currentTimeMillis() - logoutDelay > 2500) { @@ -725,6 +725,10 @@ public abstract class Player { return validClient(getClient(id)); } + public boolean validClient(String name) { + return validClient(getClient(name)); + } + public boolean validClient(Client client) { return client != null && !client.disconnected; } diff --git a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java index 96aeca1d..f65ea8b2 100644 --- a/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java +++ b/2006Redone Server/src/com/rebotted/game/players/PlayerAssistant.java @@ -1858,8 +1858,6 @@ public class PlayerAssistant { } public void walkTo(int i, int j) { - PathFinder.getPathFinder().findRoute(player, i, j, false, 1, 1); - /* player.newWalkCmdSteps = 0; if (++player.newWalkCmdSteps > 50) { player.newWalkCmdSteps = 0; @@ -1873,15 +1871,13 @@ public class PlayerAssistant { for (int n = 0; n < player.newWalkCmdSteps; n++) { player.getNewWalkCmdX()[n] += k; player.getNewWalkCmdY()[n] += l; - }*/ + } } public void walkTo2(int i, int j) { if (player.freezeDelay > 0) { return; } - PathFinder.getPathFinder().findRoute(player, i, j, false, 1, 1); - /* player.newWalkCmdSteps = 0; if (++player.newWalkCmdSteps > 50) { player.newWalkCmdSteps = 0; @@ -1895,7 +1891,7 @@ public class PlayerAssistant { for (int n = 0; n < player.newWalkCmdSteps; n++) { player.getNewWalkCmdX()[n] += k; player.getNewWalkCmdY()[n] += l; - }*/ + } } public void stopDiagonal(int otherX, int otherY) { diff --git a/2006Redone Server/src/com/rebotted/game/players/PlayerHandler.java b/2006Redone Server/src/com/rebotted/game/players/PlayerHandler.java index 1c12e2b3..701c18a3 100644 --- a/2006Redone Server/src/com/rebotted/game/players/PlayerHandler.java +++ b/2006Redone Server/src/com/rebotted/game/players/PlayerHandler.java @@ -12,9 +12,9 @@ import com.rebotted.world.GlobalDropsHandler; public class PlayerHandler { - public static Player[] players = new Player[GameConstants.MAX_PLAYERS]; + public static Player players[] = new Player[GameConstants.MAX_PLAYERS]; public static int playerCount = 0, playerShopCount = 0; - public static String[] playersCurrentlyOn = new String[GameConstants.MAX_PLAYERS]; + public static String playersCurrentlyOn[] = new String[GameConstants.MAX_PLAYERS]; public static boolean updateAnnounced; public static boolean updateRunning; public static int updateSeconds; @@ -74,7 +74,19 @@ public class PlayerHandler { } } + public static int getPlayerID(String playerName) { + for (int i = 0; i < PlayerHandler.players.length; i++) { + if (playersCurrentlyOn[i] != null) { + if (playersCurrentlyOn[i].equalsIgnoreCase(playerName)) { + return i; + } + } + } + return -1; + } + public static boolean isPlayerOn(String playerName) { + // synchronized (PlayerHandler.players) { for (int i = 0; i < PlayerHandler.players.length; i++) { if (playersCurrentlyOn[i] != null) { if (playersCurrentlyOn[i].equalsIgnoreCase(playerName)) { @@ -86,11 +98,12 @@ public class PlayerHandler { } public void process() { + // synchronized (PlayerHandler.players) { updatePlayerNames(); if (kickAllPlayers) { - for (Player player : PlayerHandler.players) { - if (player != null) { - player.disconnected = true; + for (int i = 0; i < PlayerHandler.players.length; i++) { + if (players[i] != null) { + players[i].disconnected = true; } } if (updateRunning) //If there's an update intended, and that's why we kicked everyone: @@ -122,11 +135,13 @@ public class PlayerHandler { o.getTrading().declineTrade(); } } - GameEngine.trawler.players.remove(players[i]); + if(GameEngine.trawler.players.contains(players[i])) { + GameEngine.trawler.players.remove(players[i]); + } players[i].lastX = players[i].absX; players[i].lastY = players[i].absY; players[i].lastH = players[i].heightLevel; - if (players[i].hasNpc) { + if (players[i].hasNpc == true) { t.getSummon().pickUpClean(t, players[i].summonId); } if (players[i].duelStatus == 5) { @@ -191,11 +206,13 @@ public class PlayerHandler { o.getTrading().declineTrade(); } } - GameEngine.trawler.players.remove(players[i]); + if(GameEngine.trawler.players.contains(players[i])) { + GameEngine.trawler.players.remove(players[i]); + } players[i].lastX = players[i].absX; players[i].lastY = players[i].absY; players[i].lastH = players[i].heightLevel; - if (players[i].hasNpc) { + if (players[i].hasNpc == true) { t.getSummon().pickUpClean(t, players[i].summonId); } if (players[i].duelStatus == 5) { @@ -241,12 +258,12 @@ public class PlayerHandler { kickAllPlayers = true; } - for (Player player : PlayerHandler.players) { - if (player == null || !player.isActive) { + for (int i = 0; i < PlayerHandler.players.length; i++) { + if (players[i] == null || !players[i].isActive) { continue; } try { - player.clearUpdateFlags(); + players[i].clearUpdateFlags(); } catch (Exception e) { e.printStackTrace(); } @@ -265,7 +282,7 @@ public class PlayerHandler { int size = plr.npcListSize; plr.npcListSize = 0; for (int i = 0; i < size; i++) { - if (!plr.rebuildNPCList && plr.withinDistance(plr.npcList[i])) { + if (plr.rebuildNPCList == false && plr.withinDistance(plr.npcList[i]) == true) { plr.npcList[i].updateNPCMovement(str); plr.npcList[i].appendNPCUpdateBlock(updateBlock); plr.npcList[plr.npcListSize++] = plr.npcList[i]; @@ -281,9 +298,9 @@ public class PlayerHandler { for (Npc i : NpcHandler.npcs) { if (i != null) { int id = i.npcId; - if (!plr.rebuildNPCList + if (plr.rebuildNPCList == false && (plr.npcInListBitmap[id >> 3] & 1 << (id & 7)) != 0) { - } else if (!plr.withinDistance(i)) { + } else if (plr.withinDistance(i) == false) { } else { plr.addNewNPC(i, str, updateBlock); } @@ -343,18 +360,18 @@ public class PlayerHandler { } } } - for (Player player : PlayerHandler.players) { - if (player == null || !player.isActive || player == plr) { + for (int i = 0; i < PlayerHandler.players.length; i++) { + if (players[i] == null || !players[i].isActive || players[i] == plr) { continue; } - int id = player.playerId; + int id = players[i].playerId; if ((plr.playerInListBitmap[id >> 3] & 1 << (id & 7)) != 0) { continue; } - if (!plr.withinDistance(player)) { + if (!plr.withinDistance(players[i])) { continue; } - plr.addNewPlayer(player, outStr, updateBlock); + plr.addNewPlayer(players[i], outStr, updateBlock); } if (outStr != null) { if (updateBlock.currentOffset > 0) { @@ -369,7 +386,7 @@ public class PlayerHandler { } if (plr.refresh) { - GlobalDropsHandler.reset(plr); + GlobalDropsHandler.reset((Client)plr); plr.refresh = false; } } @@ -377,7 +394,7 @@ public class PlayerHandler { private void removePlayer(Player plr) { if (plr.privateChat != 2) { for (int i = 1; i < PlayerHandler.players.length; i++) { - if (players[i] == null || !players[i].isActive) { + if (players[i] == null || players[i].isActive == false) { continue; } Client o = (Client) PlayerHandler.players[i]; diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/items/ItemAssistant.class b/CompiledServer/production/2006rebotted/com/rebotted/game/items/ItemAssistant.class index 58a2a13e..70f706fd 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/items/ItemAssistant.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/items/ItemAssistant.class differ diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$2.class b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$2.class index 59303c86..a801b8d9 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$2.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$2.class differ diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$3.class b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$3.class index 201b29d2..12db5998 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$3.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$3.class differ diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$4.class b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$4.class index 9d4fcb14..b65b3eb3 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$4.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player$4.class differ diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player.class b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player.class index 507fbd57..c0b5ea02 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/players/Player.class differ diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerAssistant.class b/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerAssistant.class index f4d1b6d3..7cb6c2f6 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerAssistant.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerAssistant.class differ diff --git a/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerHandler.class b/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerHandler.class index 3da6bfaa..f583e4dc 100644 Binary files a/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerHandler.class and b/CompiledServer/production/2006rebotted/com/rebotted/game/players/PlayerHandler.class differ