package admincommands; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE; import com.aionemu.gameserver.utils.PacketSendUtility; import com.aionemu.gameserver.utils.Util; import com.aionemu.gameserver.utils.chathandlers.AdminCommand; import com.aionemu.gameserver.world.World; /** * @author Elusive, Neon */ public class Kick extends AdminCommand { public Kick() { super("kick", "Disconnects players from the server."); // @formatter:off setSyntaxInfo( " - Disconnects the player with the specified name.", " - Disconnects everyone (parameter must be typed in uppercase, for safety)." ); // @formatter:on } @Override public void execute(Player admin, String... params) { if (params.length == 0) { sendInfo(admin); return; } if ("ALL".equals(params[0])) { if (World.getInstance().getAllPlayers().size() == 1) { sendInfo(admin, "There is nobody online to kick."); return; } World.getInstance().forEachPlayer(player -> { if (!player.equals(admin)) { player.getClientConnection().close(SM_SYSTEM_MESSAGE.STR_KICK_CHARACTER()); PacketSendUtility.sendPacket(admin, SM_SYSTEM_MESSAGE.STR_USER_KICKED(player.getName())); } }); } else { Player player = World.getInstance().getPlayer(Util.convertName(params[0])); if (player == null) { PacketSendUtility.sendPacket(admin, SM_SYSTEM_MESSAGE.STR_BUDDYLIST_NO_OFFLINE_CHARACTER()); return; } player.getClientConnection().close(SM_SYSTEM_MESSAGE.STR_KICK_CHARACTER()); PacketSendUtility.sendPacket(admin, SM_SYSTEM_MESSAGE.STR_USER_KICKED(player.getName())); } } }