Add kick command, and force logout function (#154)

* Fix local Parabot instructions

* Add kick command, and force logout function
This commit is contained in:
Danial
2019-11-11 06:17:47 +13:00
committed by Daniel Ginovker
parent afd1da91e1
commit 68013f3498
8 changed files with 32 additions and 6 deletions
@@ -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 {
@@ -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;
}
}