diff --git a/2006Redone Server/src/redone/game/players/Client.java b/2006Redone Server/src/redone/game/players/Client.java index 7f935ab9..ae99e776 100644 --- a/2006Redone Server/src/redone/game/players/Client.java +++ b/2006Redone Server/src/redone/game/players/Client.java @@ -759,8 +759,12 @@ public class Client extends Player { flushOutStream(); } } - + public void logout() { + logout(false); + } + + public void logout(boolean forceLogout) { synchronized (this) { if(Server.trawler.players.contains(this)) { Server.trawler.players.remove(this); @@ -795,7 +799,7 @@ public class Client extends Player { PestControl.leaveWaitingBoat(this); getPlayerAssistant().movePlayer(2657, 2639, 0); } - if(underAttackBy > 0 || underAttackBy2 > 0) { + if(!forceLogout && (underAttackBy > 0 || underAttackBy2 > 0)) { getActionSender().sendMessage("You can't logout during combat!"); return; } @@ -807,7 +811,7 @@ public class Client extends Player { if (hasNpc == true) { getSummon().pickUpClean(this, summonId); } - if (System.currentTimeMillis() - logoutDelay > 2500) { + if (forceLogout || System.currentTimeMillis() - logoutDelay > 2500) { outStream.createFrame(109); properLogout = true; } else { diff --git a/2006Redone Server/src/redone/net/packets/impl/Commands.java b/2006Redone Server/src/redone/net/packets/impl/Commands.java index a3ba0817..debbe88f 100644 --- a/2006Redone Server/src/redone/net/packets/impl/Commands.java +++ b/2006Redone Server/src/redone/net/packets/impl/Commands.java @@ -196,6 +196,28 @@ public class Commands implements PacketType { public static void moderatorCommands(Client player, String playerCommand, String[] arguments) { switch (playerCommand.toLowerCase()) { + case "kick": + try { + if (arguments.length == 0) { + player.getActionSender().sendMessage("You must specify a player name: ::kick playername"); + return; + } + String playerToKick = String.join(" ", arguments); + for(Player player2 : PlayerHandler.players) { + if(player2 != null) { + if(player2.playerName.equalsIgnoreCase(playerToKick)) { + Client c2 = (Client)player2; + player.getActionSender().sendMessage("You have kicked " + playerToKick + "."); + c2.disconnected = true; + c2.logout(true); + break; + } + } + } + } catch(Exception e) { + player.getActionSender().sendMessage("Player Must Be Online."); + } + break; case "yell": for (int j = 0; j < PlayerHandler.players.length; j++) { if (PlayerHandler.players[j] != null) { @@ -539,7 +561,7 @@ public class Commands implements PacketType { Client c2 = (Client)PlayerHandler.players[i]; player.getActionSender().sendMessage("You have given " + playerToAdmin + " admin."); c2.playerRights = 2; - c2.logout(); + c2.logout(true); break; } } @@ -561,7 +583,7 @@ public class Commands implements PacketType { Client c2 = (Client)PlayerHandler.players[i]; player.getActionSender().sendMessage("You have demoted " + playerToAdmin + "."); c2.playerRights = 0; - c2.logout(); + c2.logout(true); break; } } @@ -583,7 +605,7 @@ public class Commands implements PacketType { Client c2 = (Client)PlayerHandler.players[i]; player.getActionSender().sendMessage("You have given " + playerToMod + " mod."); c2.playerRights = 1; - c2.logout(); + c2.logout(true); break; } } diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client$1.class b/CompiledServer/production/2006rebotted/redone/game/players/Client$1.class index 981af45f..c30bad36 100644 Binary files a/CompiledServer/production/2006rebotted/redone/game/players/Client$1.class and b/CompiledServer/production/2006rebotted/redone/game/players/Client$1.class differ diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client$2.class b/CompiledServer/production/2006rebotted/redone/game/players/Client$2.class index 1ade79cc..2bdf4c78 100644 Binary files a/CompiledServer/production/2006rebotted/redone/game/players/Client$2.class and b/CompiledServer/production/2006rebotted/redone/game/players/Client$2.class differ diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client$3.class b/CompiledServer/production/2006rebotted/redone/game/players/Client$3.class index 8d50ddc2..853ce63b 100644 Binary files a/CompiledServer/production/2006rebotted/redone/game/players/Client$3.class and b/CompiledServer/production/2006rebotted/redone/game/players/Client$3.class differ diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client$4.class b/CompiledServer/production/2006rebotted/redone/game/players/Client$4.class index 068b6e9d..d65b15ae 100644 Binary files a/CompiledServer/production/2006rebotted/redone/game/players/Client$4.class and b/CompiledServer/production/2006rebotted/redone/game/players/Client$4.class differ diff --git a/CompiledServer/production/2006rebotted/redone/game/players/Client.class b/CompiledServer/production/2006rebotted/redone/game/players/Client.class index a18c822c..26893cb8 100644 Binary files a/CompiledServer/production/2006rebotted/redone/game/players/Client.class and b/CompiledServer/production/2006rebotted/redone/game/players/Client.class differ diff --git a/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class b/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class index da47602b..08019abd 100644 Binary files a/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class and b/CompiledServer/production/2006rebotted/redone/net/packets/impl/Commands.class differ