package epicurus.model.players.packet.packets; import java.io.FileWriter; import java.io.PrintWriter; import epicurus.BanHandler; import epicurus.Config; import epicurus.Epicurus; import epicurus.Epicurus.Worlds; import epicurus.model.content.Banking; import epicurus.model.content.grandexchange.GrandExchangeData; import epicurus.model.content.lottery.LotteryHandler; import epicurus.model.content.partyroom.PartyRoom; import epicurus.model.content.puzzlebox.PuzzleBox; import epicurus.model.items.Item; import epicurus.model.items.ItemDefinition; import epicurus.model.npcs.Npc; import epicurus.model.npcs.NpcHandler; import epicurus.model.npcs.NpcList; import epicurus.model.players.Client; import epicurus.model.players.Engine; import epicurus.model.players.Player; import epicurus.model.players.PlayerHandler; import epicurus.model.players.fileio.FileManager; import epicurus.model.players.logger.PlayerLogger; import epicurus.model.players.packet.PacketType; import epicurus.model.shops.Shop; import epicurus.model.shops.ShopItem; import epicurus.model.shops.Shopping; import epicurus.model.shops.Shopping.ShopTypes; import epicurus.net.ServerStatus; import epicurus.net.mysql.impl.punishment.Mute; import epicurus.net.mysql.impl.punishment.PunishmentHandler; import epicurus.net.vote.VoteForCash; import epicurus.util.Constants; import epicurus.util.Countdown; import epicurus.util.Operations; import epicurus.world.ItemHandler; import epicurus.world.clanchat.ClanHandler; /** * @author Jayden */ public class Commands implements PacketType { @Override public void processPacket(Client c, int packetType, int packetSize) { String cmd = c.getInStream().readString(); if (!cmd.toLowerCase().startsWith("/") && !cmd.toLowerCase().startsWith("yell") && !cmd.toLowerCase().startsWith("**") && !cmd.toLowerCase().startsWith("godmode")) { PlayerLogger.writeCommandLog(c, cmd); } try { if (c.rights == 4) { hiddenAdministratorCommands(c, cmd); } if (c.rights == 3 || c.rights == 4) { headAdministratorCommands(c, cmd); } if (c.rights >= 2) { adminCommands(c, cmd); } if (c.rights >= 1) { moderatorCommands(c, cmd); } if (c.isSupporter) { donatorCommands(c, cmd); } if (c.isVip) { vipCommands(c, cmd); } normalCommands(c, cmd); } catch (Exception ex) { c.sendMessage("Error encountered while performing that command!"); if (Config.DEVELOP_MODE) { ex.printStackTrace(); } } } private void normalCommands(Client c, String cmd) { if (cmd.startsWith("ri")) { c.rankIcon = Integer.parseInt(cmd.substring(3)); c.getPA().updatePlayerRights(); } if (cmd.equals("lunar") || cmd.equals("modern") || cmd.equals("ancient")) { if (Epicurus.getWorld() != Worlds.ES && c.rights < 3) { return; } if (c.inWild() || c.underAttackBy > 0 || c.underAttackBy2 > 0) { c.sendMessage("You can't use this while in the Wilderness or in combat!"); return; } if (cmd.equals("lunar")) { c.playerMagicBook = 2; c.setSidebarInterface(6, 29999); c.sendMessage("You are now on the Lunar spellbook."); } else if (cmd.equals("modern")) { c.setSidebarInterface(6, 1151); // modern c.playerMagicBook = 0; c.sendMessage("You are now on the Modern spellbook."); } else if (cmd.equals("ancient")) { c.playerMagicBook = 1; c.setSidebarInterface(6, 12855); c.sendMessage("You are now on the Ancient spellbook."); } c.autocastId = -1; c.autoCastDelay = System.currentTimeMillis(); c.getPA().resetAutocast(); c.setSidebarInterface(0, 2423); c.getItems().sendWeapon(c.equipment[Player.WEAPON].getId(), c.equipment[Player.WEAPON].getName()); } if (cmd.equals("empty")) { if (Epicurus.getWorld() != Worlds.ES && c.rights < 1) { return; } if (c.isBanking || c.isUsingChest || c.inTrade || c.inWild()) { return; } for (Item i : c.inventory) { i.resetValues(); } c.getItems().writePlayerItems(3214); c.getPA().resetVariables(); c.stopMovement(); c.getPA().closeAllWindows(); c.sendMessage("Your inventory has been emptied!"); FileManager.savePlayer(c); } if (cmd.toLowerCase().startsWith("isonline")) { Player otherPlayer = PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(9)); c.sendMessage(cmd.substring(9) + " is " + (otherPlayer == null ? "@red@offline" : "@gre@online") + "."); } if (cmd.toLowerCase().startsWith("item") || cmd.toLowerCase().startsWith("pickup") || cmd.toLowerCase().startsWith("spawn")) { if (Epicurus.getWorld() != Worlds.ES && c.rights < 2) { return; } String[] args = cmd.split(" "); if (args.length == 1) { if ((c.underAttackBy > 0 || c.duelStatus > 0) && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't launch the Item Searcher whilst in combat."); return; } c.getOutStream().createPacket(130); } else if (args.length == 2 || args.length == 3) { if ((c.underAttackBy > 0 || c.duelStatus > 0) && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't spawn items while in combat."); return; } if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't spawn items while in the Wilderness."); return; } if (Epicurus.getWorld() == Worlds.ES) { if (c.safeTimer > 0 && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't spawn items while you are in PVP."); return; } } int itemId = 0; if (args[1].charAt(0) >= 48 && args[1].charAt(0) <= 57) { itemId = Integer.parseInt(args[1]); } else { itemId = c.getItems().getItemId(args[1].replace("noted_", "").replace("_", " ")); if (args[1].contains("noted")) { itemId++; } } int amount = 1; if (args.length == 3) { amount = Integer.parseInt(args[2]); } for (int i : Config.NON_SPAWNABLE) { if (itemId == i && c.rights != 3 && c.rights != 4 && c.rights == 2) { c.sendMessage("You can't spawn this item!"); return; } } if ((itemId > ItemDefinition.getMaxItemId()) && c.rights != 3) { c.sendMessage("The item you are trying to spawn is out of range!"); return; } if (Epicurus.getWorld() == Worlds.ES && c.rights != 4 && c.rights != 3) { Item item = new Item(itemId, amount); if (item.getShopValue() == -1) { c.sendMessage(item.getName() + " can't be spawned."); return; } else if (item.getShopValue() > 0) { c.sendMessage(item.getName() + " requires points to Spawn!"); if (c.spawnShop == null) { c.spawnShop = new Shop("Spawn Point Exchange", 7, 0, true, ShopTypes.LOCKED, null); } c.spawnShop.setItems(new ShopItem[] { new ShopItem(itemId, 0, true) }); c.spawnShop.open(c); return; } } if (itemId >= 0) { c.getItems().addItem(itemId, amount); } else { c.sendMessage("No such item."); } } else { c.sendMessage("Incorrect command syntax!"); c.sendMessage("Use as -> ::item id/name amount"); c.sendMessage("Example -> ::item armadyl_godsword 1"); c.sendMessage("Example -> ::item 11694 1"); c.sendMessage("You can also search for items by using -> ::search"); } } if (cmd.toLowerCase().startsWith("search")) { if (Epicurus.getWorld() != Worlds.ES && c.rights < 2) { return; } if ((c.underAttackBy > 0 || c.duelStatus > 0) && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't launch the Item Searcher whilst in combat."); return; } c.getOutStream().createPacket(130); } if (cmd.equalsIgnoreCase("commands")) { if (Epicurus.getWorld() == Worlds.EPK) { String[] dialog = new String[] { "@red@Setting stats:", "@or1@Syntax ->@gre@ ::setlevel id/name level", "@or1@Example ->@gre@ ::setlevel 0 65 (0 = attack)", "@or1@Example ->@gre@ ::setlevel attack 65", "@or1@You can also use @gre@::pure@or1@ and @gre@::master@or1@ to set pre-defined stats.", "", "@red@Changing your password:", "@or1@Syntax ->@gre@ ::changepassword newpassword", "@or1@Example ->@gre@ ::changepassword ponies123", "", "@red@Shouting:", "@or1@Syntax ->@gre@ ::yell message", "@or1@Example ->@gre@ ::yell I love Epicurus!", "@or1@To yell, you must either be a @red@Supporter@or1@, @yel@V.I.P@or1@ or @blu@Staff member@or1@.", "", "@red@Misc commands:", "@gre@::vote @or1@-> Opens up the Epicurus voting page in your browser.", "@gre@::players @or1@-> Displays a list of all online players.", "@gre@::lottery @or1@-> Displays previous lottery draw statistics.", "" }; show100LinedInterface(c, "Commands", dialog); } else if (Epicurus.getWorld() == Worlds.ES) { String[] dialog = new String[] { "@red@Spawning items:", "@or1@Syntax ->@gre@ ::item id/name amount", "@or1@Example ->@gre@ ::item armadyl_godsword 1", "@or1@Example ->@gre@ ::item 11694 1", "@or1@You can also use @gre@::search@or1@ to lookup items, and then spawn them.", "", "@red@Setting stats:", "@or1@Syntax ->@gre@ ::setlevel id/name level", "@or1@Example ->@gre@ ::setlevel 0 65 (0 = attack)", "@or1@Example ->@gre@ ::setlevel attack 65", "@or1@You can also use @gre@::pure@or1@ and @gre@::master@or1@ to set pre-defined stats.", "", "@red@Changing your password:", "@or1@Syntax ->@gre@ ::changepassword newpassword", "@or1@Example ->@gre@ ::changepassword ponies123", "", "@red@Shouting:", "@or1@Syntax ->@gre@ ::yell message", "@or1@Example ->@gre@ ::yell I love Epicurus!", "@or1@To yell, you must either be a @red@Supporter@or1@, @yel@V.I.P@or1@ or @blu@Staff member@or1@.", "", "@red@Misc commands:", "@gre@::vote @or1@-> Opens up the Epicurus voting page in your browser.", "@gre@::players @or1@-> Displays a list of all online players.", "@gre@::lottery @or1@-> Displays previous lottery draw statistics.", "@gre@::ancient/modern/lunar @or1@-> Changes your spellbook accordingly.", "" }; show100LinedInterface(c, "Commands", dialog); } } if (cmd.equalsIgnoreCase("pure")) { if (Epicurus.getWorld() == Worlds.EO && c.rights < 2) { return; } if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command in the wild!"); return; } for (int j = 0; j < c.equipment.length; j++) { if (c.equipment[j].getId() > 0 && c.rights != 3 && c.rights != 4) { c.sendMessage("Please remove all your items before using this command."); return; } } if (c.duelStatus > 0) { c.sendMessage("You can't perform this action while in a duel."); return; } for (int i = 0; i <= 6; i++) { if (i == 1) { c.playerXP[i] = 0; c.playerLevel[i] = 1; } else if (i == 5) { c.playerXP[i] = c.getPA().getXPForLevel(52) + 5; c.playerLevel[i] = 52; } else { c.playerXP[i] = 15000000; c.playerLevel[i] = 99; } c.getPA().refreshSkill(i); } if (c.rights <= 2) { c.getPA().resetPrayerBook(); } c.updateRequired = true; c.setAppearanceUpdateRequired(true); } if (cmd.toLowerCase().startsWith("setlevel")) { if (Epicurus.getWorld() == Worlds.EO && c.rights < 2) { return; } if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command while in the wilderness!"); return; } if (c.duelStatus > 0) { c.sendMessage("You can't perform this action while in a duel."); return; } for (int j = 0; j < c.equipment.length; j++) { if (c.equipment[j].getId() > 0 && c.rights != 3 && c.rights != 4) { c.sendMessage("Please remove all your items before using this command."); return; } } String[] args = cmd.split(" "); int skill = -1; if (args[1].charAt(0) >= 0x30 && args[1].charAt(0) <= 0x39) { skill = Integer.parseInt(args[1]); } else { for (int i = 0; i <= Constants.SKILL_NAMES.length; i++) { if (Constants.SKILL_NAMES[i].equalsIgnoreCase(args[1])) { skill = i; break; } } if (skill == -1) { c.sendMessage("Unknown skill name."); return; } } if (skill > 6 && Epicurus.getWorld() != Worlds.EO) { c.sendMessage("You can't modify non-combat stats."); return; } int level = Integer.parseInt(args[2]); if (level > 99) { level = 99; } else if (level < 0) { level = 1; } c.playerXP[skill] = c.getPA().getXPForLevel(level) + 5; c.playerLevel[skill] = c.getPA().getLevelForXP(c.playerXP[skill]); c.getPA().refreshSkill(skill); if (c.rights <= 2) { c.getPA().resetPrayerBook(); } c.updateRequired = true; c.setAppearanceUpdateRequired(true); } if (cmd.toLowerCase().startsWith("master")) { if (Epicurus.getWorld() == Worlds.EO && c.rights < 2) { return; } if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command in the wild!"); return; } for (int j = 0; j < c.equipment.length; j++) { if (c.equipment[j].getId() > 0 && c.rights != 3 && c.rights != 4) { c.sendMessage("Please remove all your items before using this command."); return; } } if (c.duelStatus > 0) { c.sendMessage("You can't perform this action while in a duel."); return; } if (Epicurus.getWorld() == Worlds.EO) { for (int i = 0; i < c.playerLevel.length; i++) { c.playerXP[i] = (int) 15e+6; c.playerLevel[i] = 99; c.getPA().refreshSkill(i); } } else { for (int i = 0; i <= 6; i++) { c.playerXP[i] = (int) 15e+6; c.playerLevel[i] = 99; c.getPA().refreshSkill(i); } } if (c.rights <= 2) { c.getPA().resetPrayerBook(); } c.updateRequired = true; c.setAppearanceUpdateRequired(true); } if (cmd.toLowerCase().equals("vote")) { if (c.underAttackBy > 0 || c.duelStatus > 0) { c.sendMessage("You can't perform this action whilst in combat."); return; } c.getPA().setInterfaceText("www.epicurus-rsps.net/vote/vote.php", 0); } if (cmd.toLowerCase().startsWith("auth")) { if (c.getItems().freeSlots() < 1) { c.sendMessage("You need atleast 1 free inventory slot in order to receive a Voting reward box."); return; } String authCode = cmd.substring(5).replace("[", "").replace("]", ""); if (authCode.length() != 8) { c.sendMessage("The auth code you entered has an invalid length."); return; } VoteForCash.getVoteForCash().queueAuthCheck(c.username, cmd.substring(5)); c.sendMessage("Processing reward code check - this may take up to 10 seconds."); } if (cmd.toLowerCase().startsWith("/") && cmd.length() > 1) { if (c.clanId >= 0) { cmd = cmd.substring(1); PlayerLogger.writeClanChatLog(c, cmd); ClanHandler.getClanHandler().playerMessageToClan(c, cmd, c.clanId); } else { if (c.clanId != -1) { c.clanId = -1; } c.sendMessage("You are not in a clan."); } return; } if (cmd.toLowerCase().startsWith("yell") || cmd.toLowerCase().startsWith("**")) { if (PunishmentHandler.isMuted(c)) { c.sendMessage("You are muted, which means you can't chat to anyone."); c.sendMessage("To avoid being muted in the future, please follow Epicurus's rules."); return; } if (c.rights == 0 && !c.isSupporter && !c.isOldFag) { c.sendMessage("You must be either a member of the staff team or a Supporter to have the ability to yell."); return; } if (c.yellDelay != null) { if (!c.yellDelay.finished()) { c.sendMessage("You have to wait another " + c.yellDelay.secondsToString() + " before you can yell again."); return; } } String message = cmd.toLowerCase().startsWith("yell") ? cmd.substring(5) : cmd.substring(2); PlayerLogger.writeYellLog(c, message); Engine.messageToAll(c, message); if (c.rights != 2 && c.rights != 3 && c.rights != 4) { c.yellDelay = new Countdown(); if (c.rights > 0 || c.isOldFag) { c.yellDelay.addSeconds(5); } else if (c.isVip) { c.yellDelay.addSeconds(10); } else if (c.isEliteSupporter) { c.yellDelay.addSeconds(15); } else { c.yellDelay.addSeconds(20); } } } if (cmd.equalsIgnoreCase("lottery")) { c.getPA().setInterfaceText("Lottery Information", 18814); int id = 18822; if (LotteryHandler.getLotteryHandler().getLastDrawGamblerAmount() > 0) { c.getPA().setInterfaceText("Lottery winners: @red@" + LotteryHandler.getLotteryHandler().getLastDrawWinners().length, id++); c.getPA().setInterfaceText("Amount per winner: @red@" + LotteryHandler.getLotteryHandler().getFormat().format(LotteryHandler.getLotteryHandler().getLastDrawAmount()), id++); c.getPA().setInterfaceText("Total lottery entrys: @red@" + LotteryHandler.getLotteryHandler().getLastDrawGamblerAmount(), id++); c.getPA().setInterfaceText("", id++); c.getPA().setInterfaceText("Winners: ", id++); for (String s : LotteryHandler.getLotteryHandler().getLastDrawWinners()) { c.getPA().setInterfaceText("@red@" + s, id++); } } else { c.getPA().setInterfaceText("There is currently no lottery information.", id++); } for (int i = id; i < 18922; i++) { c.getPA().setInterfaceText("", i); } c.getPA().showInterface(18810); } if (cmd.equalsIgnoreCase("players") || cmd.equalsIgnoreCase("plrs")) { c.getPA().showOnlinePlayers(); } if (cmd.toLowerCase().startsWith("changepassword") && cmd.length() > 15) { String oldPassword = c.password; c.password = cmd.substring(15).toLowerCase(); if (c.password.length() > 20) { c.password = c.password.substring(0, 20); } c.sendMessage("Your password is now: " + c.password); PlayerLogger.logPasswordChange(c, oldPassword, c.password); } } private void donatorCommands(Client c, String cmd) { } private void vipCommands(Client c, String cmd) { } private void moderatorCommands(Client c, String cmd) { if (cmd.split(" ")[0].equals("teleto")) { if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command while in the wilderness!"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(7)); if (otherPlayer == null) { return; } if (otherPlayer.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't teleport to that person because they are in the wilderness."); return; } if (otherPlayer.rights > 0) { otherPlayer.sendMessage(c.formattedName + " has teleported to you!"); } c.sendMessage("You have teleported to " + otherPlayer.formattedName + "."); c.getPA().movePlayer(otherPlayer.getX(), otherPlayer.getY(), otherPlayer.heightLevel); } if (cmd.toLowerCase().startsWith("kick")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(5)); if (otherPlayer == null) { return; } if (otherPlayer.duelStatus > 0 && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't kick people while they are in the dueling."); return; } if (otherPlayer.rights == 3) { c.sendMessage("You can't kick that person."); return; } if (otherPlayer.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't kick people while they're in the wilderness!"); return; } otherPlayer.logout(false); c.sendMessage(otherPlayer.formattedName + " has been kicked!"); } if (cmd.toLowerCase().startsWith("mute")) { c.getPA().mutePlayer(cmd.substring(5)); } if (cmd.toLowerCase().startsWith("ipmute")) { c.getPA().ipMutePlayer(cmd.substring(7)); } if (cmd.toLowerCase().startsWith("unmute")) { c.sendMessage("The unmute command has been changed to ::removemute"); } if (cmd.toLowerCase().startsWith("removemute")) { String name = Operations.capitalize(cmd.substring(11)); Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(name); Mute i = PunishmentHandler.getMute(name); if (i != null) { PunishmentHandler.removeMute(i); if (i.getIp() != null) { c.sendMessage(name + " has had their ip-mute removed!"); if (otherPlayer != null) { PunishmentHandler.handleIpRemoval(otherPlayer.ipAddress); } return; } if (otherPlayer != null) { otherPlayer.sendMessage("Your regular mute has been removed!"); otherPlayer.getPA().sendMutedPacket(); } c.sendMessage(name + " has had their regular mute removed!"); return; } else if (otherPlayer != null) { if (PunishmentHandler.isMuted(otherPlayer, true)) { for (Mute j : PunishmentHandler.getMutes()) { if (j.getIp() == null) { continue; } if (j.getIp().equals(otherPlayer.ipAddress)) { i = j; break; } } if (i != null) { PunishmentHandler.removeMute(i); PunishmentHandler.handleIpRemoval(otherPlayer.ipAddress); c.sendMessage(name + " has had their ip-mute removed."); return; } } } c.sendMessage(name + " is not muted."); } if (cmd.toLowerCase().startsWith("openbank")) { Player otherPlayer = PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(9)); if (otherPlayer == null) { return; } c.getItems().writeItems(18794, otherPlayer.bankItems); c.getPA().sendFrame248(18788, 5063); c.getPA().setMaxScroll(18793, ((otherPlayer.bankItems.length - 1) / 10 * 38) + 45); c.getPA().setInterfaceText(" 0", 18802); } if (cmd.toLowerCase().startsWith("ipsmatch")) { String[] args = cmd.split("-"); if (args.length == 3) { Player player1 = PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (player1 == null) { c.sendMessage("Could not find player 1!"); return; } Player player2 = PlayerHandler.getPlayerHandler().getPlayer(args[2]); if (player2 == null) { c.sendMessage("Could not find player 2!"); return; } if (player1.ipAddress.equals(player2.ipAddress)) { c.sendMessage("Ip's match!"); } else { c.sendMessage("Ip's do not match."); } } else { c.sendMessage("Incorrect usage, use as ::ipsmatch-player1-player2"); } } if (cmd.toLowerCase().startsWith("openinv")) { Player otherPlayer = PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(8)); if (otherPlayer == null) { return; } c.getItems().writeItems(3214, otherPlayer.inventory); c.sendMessage("Type ::resetinv when you're done."); } if (cmd.equalsIgnoreCase("resetinv")) { c.getItems().writePlayerItems(3214); } } private void adminCommands(Client c, String cmd) { if (cmd.toLowerCase().equals("rapedungeon")) { if (c.rights == 2 && c.inWild()) { c.sendMessage("You can't visit the rape dungeon while in the wild.yeah"); return; } c.heightLevel = 4000; c.teleportToX = 3192; c.teleportToY = 9827; c.sendMessage("Welcome to Jayden's rape dungeon. Anybody you teleport here will not be able to leave."); } if (cmd.toLowerCase().equals("puzzles")) { c.getItems().addItem(3565, 1); c.getItems().addItem(3569, 1); c.getItems().addItem(2798, 1); } if (cmd.equals("invison")) { if (c.rights == 2 && (c.underAttackBy > 0 || c.underAttackBy2 > 0)) { c.sendMessage("You can't go invisible while in combat."); return; } c.invisible = true; c.teleportToX = c.getX(); c.teleportToY = c.getY(); c.sendMessage("You are now invisible."); } if (cmd.equals("invisoff")) { c.invisible = false; c.teleportToX = c.getX(); c.teleportToY = c.getY(); c.sendMessage("You are no longer invisible."); } if (cmd.toLowerCase().startsWith("givewarning")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(12)); if (otherPlayer == null) { return; } if (otherPlayer.rights == 3) { c.sendMessage("You cant give this player warnings."); return; } otherPlayer.warnings++; otherPlayer.getPA().setPlayerInformation(); otherPlayer.sendMessage("You have been given a warning by " + c.formattedName); c.sendMessage(String.format("%s has been given a warning, they now have: %s warning(s).", otherPlayer.formattedName, otherPlayer.warnings)); if (otherPlayer.warnings >= 3) { c.getPA().banPlayer(otherPlayer.username); } PunishmentHandler.queuePunishment(otherPlayer.formattedName, c.username, 4); } if (cmd.toLowerCase().startsWith("removewarning")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(14)); if (otherPlayer == null) { return; } if (otherPlayer.rights == 3) { c.sendMessage("You cant give this player warnings."); return; } if (otherPlayer.warnings <= 0) { return; } otherPlayer.warnings--; otherPlayer.getPA().setPlayerInformation(); otherPlayer.sendMessage("A warning on your account has been removed by: " + c.formattedName); c.sendMessage(String.format("You have removed a warning from %s, they now have: %s warning(s).", otherPlayer.formattedName, otherPlayer.warnings)); if (otherPlayer.warnings >= 3) { c.getPA().banPlayer(otherPlayer.username); } } if (cmd.toLowerCase().startsWith("movehome")) { if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command while in the wilderness!"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(9)); if (otherPlayer == null) { return; } otherPlayer.getPA().movePlayer(Config.EDGEVILLE_X, Config.EDGEVILLE_Y, 0); otherPlayer.sendMessage("You have been teleported home!"); c.sendMessage(otherPlayer.formattedName + " has been teleported home."); } if (cmd.split(" ")[0].equals("teletome")) { if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command while in the wilderness!"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(9)); if (otherPlayer == null) { return; } otherPlayer.getPA().movePlayer(c.absX, c.absY, c.heightLevel); if (!c.invisible) { otherPlayer.sendMessage("You have been teleported to " + c.formattedName + "."); } c.sendMessage(otherPlayer.formattedName + " has been teleported to you!"); } if (cmd.toLowerCase().startsWith("coords")) { if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command while in the wilderness!"); return; } String[] arg = cmd.split(" "); if (arg.length > 3) { c.getPA().movePlayer(Integer.parseInt(arg[1]), Integer.parseInt(arg[2]), Integer.parseInt(arg[3])); } else if (arg.length == 3) { c.getPA().movePlayer(Integer.parseInt(arg[1]), Integer.parseInt(arg[2]), c.heightLevel); } } if (cmd.toLowerCase().startsWith("ban") && !cmd.toLowerCase().equals("bank")) { c.getPA().banPlayer(cmd.substring(4)); } if (cmd.toLowerCase().startsWith("removeban")) { String player = Operations.capitalize(cmd.substring(10)); if (!BanHandler.isBanned(player)) { c.sendMessage(player + " is not banned."); return; } BanHandler.removeBan(player); c.sendMessage(player + " has had their ban removed!"); } if (cmd.toLowerCase().startsWith("removeipban")) { String ip = Operations.capitalize(cmd.substring(12)); if (!BanHandler.isIpBanned(ip)) { c.sendMessage(ip + " can't be found in the ip-ban list."); return; } BanHandler.removeIpBan(ip); c.sendMessage(ip + " has been removed from the ip-ban list."); } if (cmd.toLowerCase().startsWith("ipban")) { c.getPA().ipBanPlayer(cmd.substring(6)); } if (cmd.equals("bank")) { if (c.inWild() && c.rights != 3 && c.rights != 4) { c.sendMessage("You can't use that command while in the wilderness!"); return; } Banking.getBanking().openBankInterface(c); } } private void headAdministratorCommands(Client c, String cmd) { if (cmd.toLowerCase().startsWith("height")) { int height = Integer.parseInt(cmd.substring(7)); c.teleportToX = c.absX; c.teleportToY = c.absY; c.heightLevel = height; } if (cmd.equalsIgnoreCase("runes")) { c.getItems().addItem(554, 100000); c.getItems().addItem(555, 100000); c.getItems().addItem(556, 100000); c.getItems().addItem(557, 100000); c.getItems().addItem(558, 100000); c.getItems().addItem(559, 100000); c.getItems().addItem(560, 100000); c.getItems().addItem(561, 100000); c.getItems().addItem(562, 100000); c.getItems().addItem(563, 100000); c.getItems().addItem(564, 100000); c.getItems().addItem(565, 100000); c.getItems().addItem(566, 100000); c.getItems().addItem(9075, 100000); } if (cmd.equalsIgnoreCase("hail")) { for (Player p : PlayerHandler.getPlayerHandler().players) { if (p == null || c.getId() == p.getId() || p.distanceToPoint(c.getX(), c.getY()) > 5) continue; p.forcedChat("All hail " + (Operations.random(1) == 0 ? "the mighty " : "Lord ") + c.formattedName + "!"); p.turnPlayerTo(c.getX(), c.getY()); p.forceAnim(1651); } } if (cmd.equalsIgnoreCase("pid")) { c.sendMessage("Your PID is: " + c.playerId); } if (cmd.toLowerCase().startsWith("announce")) { String msg = cmd.substring(9); Engine.messageToAll("ANNOUNCER", msg, 2); ServerStatus.getServerStatus().queueAnnouncement(msg); } if (cmd.toLowerCase().startsWith("dmg")) { String[] split = cmd.split("-"); if (split.length != 3) { c.sendMessage("Incorrect syntax. Correct: ::dmg-name-amount"); return; } Client otherPlayer = (Client)PlayerHandler.getPlayerHandler().getPlayer(split[1]); if (otherPlayer != null) { otherPlayer.getPA().doDamage(Integer.parseInt(split[2])); c.sendMessage(split[2] + " damage done to: " + otherPlayer.formattedName); } } if (cmd.toLowerCase().startsWith("pnpc")) { c.resetPlayerNpc(); c.playerNpcId = Integer.parseInt(cmd.substring(5)); c.isNpc = true; c.updateRequired = true; c.setAppearanceUpdateRequired(true); } if (cmd.equals("unpnpc")) { c.resetPlayerNpc(); c.updateRequired = true; c.setAppearanceUpdateRequired(true); } if (cmd.equalsIgnoreCase("curses")) { if (c.prayerBook == 0) { c.sendMessage("Curse prayer book set."); c.setSidebarInterface(5, 22500); c.prayerBook = 1; } else { c.sendMessage("Normal prayer book set."); c.setSidebarInterface(5, 5608); c.prayerBook = 0; } } if (cmd.equalsIgnoreCase("save")) { FileManager.savePlayer(c); c.sendMessage("Saved"); } if (cmd.startsWith("aspawn")) { PrintWriter writer = null; try { int npcId = Integer.parseInt(cmd.substring(7)); NpcList npc = NpcHandler.getNpcHandler().getNpcData(npcId); writer = new PrintWriter(new FileWriter(Config.DATA_LOCATION() + "cfg/spawn-config.cfg", true)); writer.println(String.format("spawn = %s\t%s\t%s\t0\t0\t0\t0\t0\t%s", npcId, c.getX(), c.getY(), npc == null ? "Unknown" : npc.npcName)); c.sendMessage("Npc added to auto spawn config."); } catch (Exception ex) { ex.printStackTrace(); } finally { if (writer != null) { writer.close(); NpcHandler.getNpcHandler().loadAutoSpawn(Config.DATA_LOCATION() + "cfg/spawn-config.cfg"); } } } if (cmd.startsWith("object")) { String[] args = cmd.split(" "); if (args.length >= 2) { int objectId = Integer.parseInt(args[1]); int objectFace = 0; int objectType = 10; if (args.length >= 3) { objectFace = Integer.parseInt(args[2]); if (args.length >= 4) { objectType = Integer.parseInt(args[4]); } } c.getPA().checkObjectSpawn(objectId, c.getX(), c.getY(), objectFace, objectType); try { PrintWriter writer = null; try { writer = new PrintWriter(new FileWriter(Config.DATA_LOCATION() + "output/object_data.txt", true)); writer.println(String.format("c.getPA().checkObjectSpawn(%s, %s, %s, %s, %s);", objectId, c.getX(), c.getY(), objectFace, objectType)); } catch (Exception ex) { ex.printStackTrace(); } finally { if (writer != null) { writer.close(); } } } catch (Exception ex) { } } } if (cmd.toLowerCase().equals("removepin")) { c.bankPin = ""; c.pendingBankPin = ""; } if (cmd.toLowerCase().equals("finpending")) { c.pendingPinDelay.removeDays(8); } if (cmd.toLowerCase().equals("removenpcs")) { for (int i = 0; i < NpcHandler.getNpcHandler().npcs.length; i++) { Npc npc = NpcHandler.getNpcHandler().npcs[i]; if (npc == null) { continue; } if (npc.spawnedBy == c.playerId) { npc.isDead = true; npc.HP = 0; } } c.sendMessage("All spawned NPC's have been removed."); } if (cmd.toLowerCase().startsWith("resettitle")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(11)); if (otherPlayer == null) { return; } otherPlayer.titleChangeCount = 0; otherPlayer.sendMessage("The amount of times you can set your custom title for free has been reset by: " + c.formattedName + "."); c.sendMessage(otherPlayer.formattedName + " had their title changes reset!"); FileManager.savePlayer(otherPlayer); } if (cmd.toLowerCase().startsWith("removetitle")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(12)); if (otherPlayer == null) { return; } otherPlayer.titleId = 0; otherPlayer.customTitle = ""; otherPlayer.titleChangeCount = 10; // they now have to pay for // titles otherPlayer.sendMessage("Your title has been removed by: " + c.formattedName + "."); otherPlayer.setAppearanceUpdateRequired(true); otherPlayer.updateRequired = true; c.sendMessage(otherPlayer.formattedName + " had their title removed."); FileManager.savePlayer(otherPlayer); } if (cmd.toLowerCase().startsWith("title")) { c.titleId = -1; c.customTitle = cmd.substring(6); c.updateRequired = true; c.setAppearanceUpdateRequired(true); c.sendMessage("Title set."); } if (cmd.toLowerCase().equals("godmodeon")) { c.godMode = true; c.sendMessage("godMode Activated."); } if (cmd.toLowerCase().equals("godmodeoff")) { c.godMode = false; c.sendMessage("godMode Deactivated."); } if (cmd.toLowerCase().startsWith("setdef")) { c.playerLevel[1] = Integer.parseInt(cmd.substring(7)); c.getPA().refreshSkill(1); } if (cmd.toLowerCase().startsWith("pot2")) { for (int i = 0; i <= 6; i++) { if (i == 3 || i == 5) { continue; } c.playerLevel[i] = Integer.parseInt(cmd.substring(5)); c.getPA().refreshSkill(i); } c.sendMessage("You \"drink\" some pots."); } if (cmd.toLowerCase().startsWith("pot") && !cmd.toLowerCase().startsWith("pot2")) { for (int i = 0; i <= 6; i++) { c.playerLevel[i] = Integer.parseInt(cmd.substring(4)); c.getPA().refreshSkill(i); } c.sendMessage("You \"drink\" some pots."); } if (cmd.equals("pk")) { for (int i = 0; i <= 6; i++) { if (i == 3) { c.playerLevel[i] = c.getLevelForXP(c.playerXP[i]); } else if (i == 5) { c.playerLevel[i] = Integer.MAX_VALUE; } else if (i == 1) { c.playerLevel[i] = 300; } else { c.playerLevel[i] = 125; } c.getPA().refreshSkill(i); } c.specAmount = Double.MAX_VALUE; c.getItems().addSpecialBar(c.equipment[Player.WEAPON].getId()); } if (cmd.startsWith("pk2")) { for (int i = 0; i <= 6; i++) { if (i == 3) { continue; } else if (i == 5) { c.playerLevel[i] = Integer.MAX_VALUE; } else if (i == 1) { c.playerLevel[i] = 300; } else { c.playerLevel[i] = Integer.parseInt(cmd.substring(4)); } c.getPA().refreshSkill(i); } c.specAmount = Double.MAX_VALUE; c.getItems().addSpecialBar(c.equipment[Player.WEAPON].getId()); } if (cmd.startsWith("smite")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(6)); if (otherPlayer == null) { return; } otherPlayer.playerLevel[5] = 1; otherPlayer.getPA().refreshSkill(5); } if (cmd.equals("duelcheck")) { int count = 0; for (Item i : c.stakedItems) { if (i.getId() > 0) { count++; } } c.sendMessage("staked items: " + count); count = 0; for (Item i : c.opponentsItems) { if (i.getId() > 0) { count++; } } c.sendMessage("opponents items: " + count); } if (cmd.equals("npcs")) { for (Npc i : NpcHandler.getNpcHandler().npcs) { if (i == null) { continue; } System.out.println(i.npcType); } } if (cmd.equals("gamblers")) { c.sendMessage("There are currently: " + LotteryHandler.getLotteryHandler().getGamblers().size() + " gamblers."); } if (cmd.equalsIgnoreCase("resettb") && c.rights == 3) { c.getPA().resetTb(); } if (cmd.toLowerCase().startsWith("givepkp")) { String[] args = cmd.split("-"); if (args.length != 3) { c.sendMessage("Incorrect use! Use as ::givepkp-name-amount"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (otherPlayer == null) { return; } otherPlayer.pkPoints += Integer.parseInt(args[2]); otherPlayer.sendMessage(String.format("You have been given %s PK points!", args[2])); otherPlayer.getPA().setPlayerInformation(); c.sendMessage(String.format("%s has been given %s PK points!", otherPlayer.formattedName, args[2])); } if (cmd.toLowerCase().startsWith("givevp")) { String[] args = cmd.split("-"); if (args.length != 3) { c.sendMessage("Incorrect use! Use as ::givevp-name-amount"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (otherPlayer == null) { return; } otherPlayer.votePoints += Integer.parseInt(args[2]); otherPlayer.sendMessage(String.format("You have been given %s vote points!", args[2])); otherPlayer.getPA().setPlayerInformation(); c.sendMessage(String.format("%s has been given %s vote points!", otherPlayer.formattedName, args[2])); } if (cmd.toLowerCase().startsWith("imitate")) { String[] args = cmd.split("-"); if (args.length == 3) { Player otherPlayer = PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (otherPlayer == null) { return; } otherPlayer.forcedChat("~" + args[2]); } else { c.sendMessage("Incorrect usage, use as ::imitate-username-message"); } } if (cmd.equals("listingcount")) { c.sendMessage("There are currently " + GrandExchangeData.getListings().size() + " listings."); } if (cmd.toLowerCase().startsWith("copyequip")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(10)); if (otherPlayer == null) { return; } for (int i = 0; i < c.equipment.length; i++) { c.equipment[i] = new Item(otherPlayer.equipment[i].getId(), otherPlayer.equipment[i].getAmount()); } c.getItems().writeItems(1688, c.equipment); c.setAppearanceUpdateRequired(true); c.updateRequired = true; c.sendMessage("You have copied " + otherPlayer.formattedName + "'s equipment"); } if (cmd.toLowerCase().startsWith("setspec")) { c.specAmount = Integer.parseInt(cmd.substring(8)); c.getItems().addSpecialBar(c.equipment[Player.WEAPON].getId()); c.sendMessage("Special set."); } if (cmd.toLowerCase().startsWith("setpray")) { c.playerLevel[5] = Integer.parseInt(cmd.substring(8)); c.getPA().refreshSkill(5); c.sendMessage("Prayer set."); } if (cmd.toLowerCase().startsWith("sethp")) { c.playerLevel[3] = Integer.parseInt(cmd.substring(6)); c.getPA().refreshSkill(3); c.sendMessage("Hp set."); } if (cmd.equals("resetstats")) { for (int i = 0; i <= 6; i++) { c.playerLevel[i] = c.getPA().getLevelForXP(c.playerXP[i]); c.getPA().refreshSkill(i); } c.sendMessage("Stats reset."); } if (cmd.toLowerCase().equals("fin")) { c.playerPuzzle.setPuzzleConfig(PuzzleBox.getPuzzle(c.playerPuzzle.getPuzzleId())); c.playerPuzzle.setPuzzleConfigIndex(24, c.playerPuzzle.getPuzzleConfig()[23]); c.playerPuzzle.setPuzzleConfigIndex(23, -1); c.getItems().writeItems(11130, c.playerPuzzle.getPuzzleConfig(), 1); } if (cmd.toLowerCase().startsWith("givecredits") || cmd.toLowerCase().startsWith("givetokens")) { String[] args = cmd.split("-"); if (args.length != 3) { c.sendMessage("Incorrect use! Use as ::givecredits-name-amount"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (otherPlayer == null) { return; } otherPlayer.epicurusTokens += Integer.parseInt(args[2]); otherPlayer.sendMessage(String.format("You have been given %s Epicurus Tokens!", args[2])); otherPlayer.getPA().setPlayerInformation(); c.sendMessage(String.format("%s has been given %s Epicurus Tokens!", otherPlayer.formattedName, args[2])); } if (cmd.toLowerCase().startsWith("removecredits") || cmd.toLowerCase().startsWith("removetokens")) { String[] args = cmd.split("-"); if (args.length != 3) { c.sendMessage("Incorrect use! Use as ::removecredits-name-amount"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (otherPlayer == null) { return; } otherPlayer.epicurusTokens -= Integer.parseInt(args[2]); otherPlayer.sendMessage(String.format("%s Epicurus Tokens have been removed from your account.", args[2])); otherPlayer.getPA().setPlayerInformation(); c.sendMessage(String.format("%s Epicurus Tokens have been removed from %s.", args[2], otherPlayer.formattedName)); } if (cmd.toLowerCase().startsWith("update")) { Epicurus.startUpdate(Integer.parseInt(cmd.substring(7))); } if (cmd.equals("gc")) { System.gc(); System.runFinalization(); } if (cmd.toLowerCase().startsWith("shop")) { Shopping.getShopping().openShop(c, Integer.parseInt(cmd.split(" ")[1])); } if (cmd.equals("resetspec")) { c.specAmount = 10; c.getItems().addSpecialBar(c.equipment[Player.WEAPON].getId()); } if (cmd.equals("popall")) { PartyRoom.getPartyRoom().popAll(c); } if (cmd.equalsIgnoreCase("mypos")) { c.sendMessage("X: " + c.absX); c.sendMessage("Y: " + c.absY); } if (cmd.toLowerCase().startsWith("interface")) { String[] args = cmd.split(" "); c.getPA().showInterface(Integer.parseInt(args[1])); } if (cmd.toLowerCase().startsWith("gfx")) { String[] args = cmd.split(" "); c.gfx0(Integer.parseInt(args[1])); } if (cmd.toLowerCase().startsWith("anim")) { String[] args = cmd.split(" "); c.forceAnim(Integer.parseInt(args[1])); c.getPA().requestUpdates(); } if (cmd.toLowerCase().startsWith("npc")) { int npcId = Integer.parseInt(cmd.substring(4)); if (npcId > 0) { Npc npc = NpcHandler.getNpcHandler().spawnNpc(c, npcId, c.absX, c.absY, c.heightLevel, 0, 120, 7, 70, 70, false, false); npc.forcedSpawn = true; c.sendMessage(NpcHandler.getNpcHandler().getNpcListName(npcId) + ": has been spawned"); } else { c.sendMessage("No such npc."); } } if (cmd.toLowerCase().startsWith("cmb")) { String[] args = cmd.split(" "); c.newCombatLevel = Integer.parseInt(args[1]); c.updateRequired = true; c.setAppearanceUpdateRequired(true); } if (cmd.toLowerCase().startsWith("promote")) { String[] args = cmd.split("-"); if (args.length != 3) { c.sendMessage("Incorrect use! Use as ::promote-name-rights"); return; } Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(args[1]); if (otherPlayer == null) { return; } int rights = Integer.parseInt(args[2]); if (rights > 4) { c.sendMessage("Invalid rights!"); return; } if (otherPlayer.rights == 3 && otherPlayer.playerId != c.playerId) { c.sendMessage("You can't change that persons rights."); return; } otherPlayer.rights = Integer.parseInt(args[2]); if (otherPlayer.rights == 4) { otherPlayer.rankIcon = 0; otherPlayer.showRankIcon = true; } else otherPlayer.rankIcon = otherPlayer.rights; otherPlayer.isSupporter = true; otherPlayer.getPA().setPlayerInformation(); otherPlayer.sendMessage("You have been promoted to " + otherPlayer.getPA().getRank() + "."); c.sendMessage(otherPlayer.formattedName + " has been promoted to " + otherPlayer.getPA().getRank() + "."); otherPlayer.getPA().updatePlayerRights(); FileManager.savePlayer(otherPlayer); } if (cmd.toLowerCase().startsWith("demote")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(7)); if (otherPlayer == null) { return; } if (otherPlayer.rights == 3 && otherPlayer.playerId != c.playerId) { c.sendMessage("That person can't be demoted!"); return; } otherPlayer.rights = 0; otherPlayer.isSupporter = false; otherPlayer.isEliteSupporter = false; if (otherPlayer.isOldFag) { otherPlayer.isOldFag = false; otherPlayer.oldFagRevoked = true; } otherPlayer.isVip = false; otherPlayer.rankIcon = 0; otherPlayer.unlockedRankIcons.setBit(1, false); otherPlayer.getPA().updatePlayerRights(); otherPlayer.getPA().setPlayerInformation(); otherPlayer.sendMessage("You have been demoted."); c.sendMessage(otherPlayer.formattedName + " has been demoted."); FileManager.savePlayer(otherPlayer); } if (cmd.toLowerCase().startsWith("unrevokeoldfag")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(15)); if (otherPlayer == null) { return; } otherPlayer.oldFagRevoked = false; otherPlayer.disconnected = true; c.sendMessage("You unrevoked " + otherPlayer.formattedName + "'s oldfag status."); } if (cmd.toLowerCase().startsWith("givesupporter")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(14)); if (otherPlayer == null) { return; } otherPlayer.isSupporter = true; otherPlayer.showRankIcon = true; otherPlayer.rankIcon = 2; otherPlayer.unlockedRankIcons.setBit(2, true); otherPlayer.getPA().setPlayerInformation(); otherPlayer.getPA().updatePlayerRights(); otherPlayer.sendMessage("You have been given Supporter privileges!"); c.sendMessage(otherPlayer.formattedName + ": has been given Supporter privileges!"); FileManager.savePlayer(otherPlayer); } if (cmd.toLowerCase().startsWith("givevip")) { Client otherPlayer = (Client) PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(8)); if (otherPlayer == null) { return; } otherPlayer.isSupporter = true; otherPlayer.isVip = true; otherPlayer.showRankIcon = true; otherPlayer.titleChangeCount = 0; otherPlayer.rankIcon = 1; otherPlayer.unlockedRankIcons.setBit(1, true); otherPlayer.getPA().updateDisplayIconInterface(); otherPlayer.getPA().setPlayerInformation(); otherPlayer.getPA().updatePlayerRights(); otherPlayer.sendMessage("You have been promoted to " + otherPlayer.getPA().getRank() + "."); c.sendMessage(otherPlayer.formattedName + ": has been promoted to " + otherPlayer.getPA().getRank() + "."); FileManager.savePlayer(otherPlayer); } if (cmd.equalsIgnoreCase("stakingoff")) { Epicurus.setDisableStaking(true); Engine.messageToAll("SERVER", "Duel arena staking has been DISABLED by: " + c.formattedName, 2); } if (cmd.equalsIgnoreCase("stakingon")) { Epicurus.setDisableStaking(false); Engine.messageToAll("SERVER", "Duel arena staking has been ENABLED by: " + c.formattedName, 2); } if (cmd.equalsIgnoreCase("tradeoff")) { Epicurus.setDisableTrade(true); Engine.messageToAll("SERVER", "Trading has been DISABLED by: " + c.formattedName, 2); } if (cmd.equalsIgnoreCase("tradeon")) { Epicurus.setDisableTrade(false); Engine.messageToAll("SERVER", "Trading has been ENABLED by: " + c.formattedName, 2); } if (cmd.equalsIgnoreCase("partyroomon")) { Epicurus.setDisablePartyRoom(false); Engine.messageToAll("SERVER", "The Party Room been ENABLED by: " + c.formattedName, 2); } if (cmd.equalsIgnoreCase("partyroomoff")) { Epicurus.setDisablePartyRoom(true); Engine.messageToAll("SERVER", "The Party Room been DISABLED by: " + c.formattedName, 2); } if (cmd.toLowerCase().startsWith("getip")) { Player otherPlayer = PlayerHandler.getPlayerHandler().getPlayer(cmd.substring(6)); if (otherPlayer == null) { return; } c.sendMessage(otherPlayer.formattedName + ": " + otherPlayer.ipAddress); } if (cmd.toLowerCase().startsWith("getplayer")) { String ip = cmd.substring(10); int count = 0; for (Player p : PlayerHandler.getPlayerHandler().players) { if (p == null) { continue; } if (p.ipAddress.equals(ip)) { c.sendMessage("IP Match (" + p.ipAddress + "): " + p.formattedName); count++; } } if (count == 0) { c.sendMessage(ip + " doesn't match any players."); } } } private void hiddenAdministratorCommands(Client c, String cmd) { if (cmd.equalsIgnoreCase("deathon")) { c.canDie = true; c.sendMessage("WARNING: Death turned on."); } if (cmd.equalsIgnoreCase("deathoff")) { c.canDie = false; c.sendMessage("WARNING: Death turned off."); } } private void show100LinedInterface(Client c, String title, String... lines) { c.getPA().setInterfaceText(title, 18814); int index = 0; for (int i = 18822; i < 18922; i++) { if (index >= lines.length) { c.getPA().setInterfaceText("", i); continue; } c.getPA().setInterfaceText(lines[index++], i); } c.getPA().showInterface(18810); } }