Advertisement
Guest User

Commands.java

a guest
Jul 24th, 2014
301
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 15.35 KB | None | 0 0
  1. package server.game.entities.player.packets.processors.commands;
  2.  
  3. import server.Server;
  4. import server.configurations.Config;
  5. import server.game.entities.player.Rank;
  6. import server.game.entities.player.packets.PacketProcessor;
  7. import server.model.mobile.players.Player;
  8. import server.model.mobile.players.PlayerHandler;
  9. import server.model.mobile.players.skills.Fishing;
  10. import server.net.packets.Packet;
  11. import server.util.Misc;
  12.  
  13. import java.util.HashMap;
  14.  
  15. /**
  16.  * Ivandis
  17.  *
  18.  * @author Naqash Tanzeel
  19.  * @version 1.0
  20.  */
  21. public class Commands implements server.model.mobile.players.IncomingPacket, PacketProcessor {
  22.  
  23.     private HashMap<String, Command> commands = this.getCommands();
  24.  
  25.     public void process(Player player, Packet packet) {
  26.         processPacket(player, packet.getId(), packet.getLength());
  27.     }
  28.  
  29.     /**
  30.      * @param player
  31.      * @param packetType
  32.      * @param packetSize
  33.      */
  34.     @Override
  35.     public void processPacket(Player player, int packetType, int packetSize) {
  36.         String inStream = player.getInStream().readString();
  37.         if (inStream.startsWith("/")) processClanChat(player, inStream.substring(1));
  38.         else {
  39.             String playerCommand = inStream.split(" ")[0].toLowerCase();
  40.             String playerInput = inStream.substring(playerCommand.length()).trim();
  41.             ProcessCommand(player, playerCommand, playerInput);
  42.         }
  43.     }
  44.  
  45.     /**
  46.      * @param player
  47.      * @param playerCommand
  48.      * @param playerInput
  49.      */
  50.     private void ProcessCommand(Player player, String playerCommand, String playerInput) {
  51.         Command command = this.commands.get(playerCommand);
  52.         if (command != null && player.getRank().isSuperiorTo(command.getRank()))
  53.             command.execute(player, playerInput);
  54.         else player.sendMessage("The command you have entered does not exist, please try again.");
  55.  
  56.         if (command != null && command.getRank().isSuperiorTo(Rank.MODERATOR))
  57.             player.getPA().writeCommandLog(playerCommand);
  58.     }
  59.  
  60.     /**
  61.      * @param player
  62.      * @param playerInput
  63.      */
  64.     private void processClanChat(Player player, String playerInput) {
  65.         if (player.clan != null && player.clan.isInClan(player))
  66.             Server.clanManager.getClan(player.clan.getFounder()).sendChat(player, playerInput); //player.clan.sendChat(player, playerInput);
  67.         else player.sendMessage("You are not in a clan.");
  68.     }
  69.  
  70.     private HashMap<String, Command> getCommands() {
  71.  
  72.         /** Create a HashMap to store the commands where the command name is the key. **/
  73.         HashMap<String, Command> commands = new HashMap<String, Command>();
  74.  
  75.         /** Player Commands **/
  76.  
  77.         commands.put("empty", new Command() {
  78.             @Override
  79.             public void execute(Player player, String input) {
  80.                 if (player.stopPlayerSkill) {
  81.                     player.stopPlayerSkill = false;
  82.                     Fishing.resetFishing(player);
  83.                 }
  84.                 player.mining[0] = -1;
  85.                 player.miningTimer = -1;
  86.                 player.getPA().removeAllItems();
  87.             }
  88.         });
  89.  
  90.         commands.put("skull", new Command() {
  91.             @Override
  92.             public void execute(Player player, String input) {
  93.                 if (player.inWild() && player.duelStatus == 0) {
  94.                     if (!player.isSkulled) {
  95.                         player.isSkulled = true;
  96.                         player.skullTimer = Config.SKULL_TIMER;
  97.                         player.headIconPk = 0;
  98.                         player.getPA().requestUpdates();
  99.                     }
  100.                 } else player.sendMessage("You must be in the wilderness to skull.");
  101.             }
  102.         });
  103.  
  104.         commands.put("stats", new Command() {
  105.             @Override
  106.             public void execute(Player player, String input) {
  107.                 player.sendMessage("Pk: " + player.killPoints + " - Slayer: " + player.getSkills().getSlayer().getPoints() +
  108.                         " - Quest: " + player.questPoints);
  109.                 player.sendMessage("Barbarian Assault: " + player.assaultPoints + " - Pest Control: " + player.pcPoints +
  110.                         " - Mage Bank: " + player.magePoints + " - Fishing Trawler: " + player.trawlerPoints);
  111.             }
  112.         });
  113.  
  114.         /** Donator Commands **/
  115.  
  116.         /** Moderator Commands **/
  117.  
  118.         /**
  119.          * Command: StaffZone
  120.          * Rank: Moderator +
  121.          *
  122.          * Teleports the memeber of staff to the staff zone.
  123.          */
  124.         commands.put("staffzone", new Command(Rank.MODERATOR) {
  125.             @Override
  126.             public void execute(Player player, String input) {
  127.                 player.getPA().movePlayer(2847, 5216, 0);
  128.             }
  129.         });
  130.  
  131.         /**
  132.          * Command: Interrogate
  133.          * Rank: Moderator +
  134.          *
  135.          * Teleports the member of staff and the player with the specified name to the interrogation room.
  136.          */
  137.         commands.put("interrogate", new Command(Rank.ADMINISTRATOR) {
  138.             @Override
  139.             public void execute(Player player, String username) {
  140.                 Player targetPlayer = PlayerHandler.getPlayerByName(username);
  141.                 if (targetPlayer != null) {
  142.                     player.getPA().movePlayer(0, 0, 0);
  143.                     targetPlayer.getPA().movePlayer(0, 0, 0);
  144.                 }
  145.             }
  146.         });
  147.  
  148.         /**
  149.          * Command: Mute
  150.          * Rank: Moderator +
  151.          *
  152.          * Mutes the player with the specified name. If the player is online, they are notified about their mute.
  153.          */
  154.         commands.put("mute", new Command(Rank.MODERATOR) {
  155.             @Override
  156.             public void execute(Player player, String username) {
  157.                 Player targetPlayer = PlayerHandler.getPlayerByName(username);
  158.                 Server.getConnection().mutePlayer(username);
  159.                 player.sendMessage(username + " has been muted. Please log this infraction in the infraction center.");
  160.                 if (targetPlayer != null)
  161.                     targetPlayer.sendMessage("You have been muted. You can appeal this on the forums.");
  162.             }
  163.         });
  164.  
  165.         /**
  166.          * Command: UnMute
  167.          * Rank: Moderator +
  168.          *
  169.          * Un-Mutes the player with the specified name.
  170.          */
  171.         commands.put("unmute", new Command(Rank.MODERATOR) {
  172.             @Override
  173.             public void execute(Player player, String username) {
  174.                 Server.getConnection().unmutePlayer(username);
  175.                 player.sendMessage("Player '" + username + "' has been un-muted. Please archive the infraction in infraction center.");
  176.             }
  177.         });
  178.  
  179.         /**
  180.          *
  181.          */
  182.         commands.put("ban", new Command(Rank.MODERATOR) {
  183.             @Override
  184.             public void execute(Player player, String username) {
  185.                 Server.getConnection().banPlayer(username);
  186.                 player.sendMessage("Player '" + username + "' has been banned. Please log this infraction in the infraction center.");
  187.             }
  188.         });
  189.  
  190.         commands.put("unban", new Command(Rank.MODERATOR) {
  191.             @Override
  192.             public void execute(Player player, String username) {
  193.                 Server.getConnection().unBanPlayer(username);
  194.                 player.sendMessage("Player '" + username + "' has been un-banned. Please archive the infraction in infraction center.");
  195.             }
  196.         });
  197.  
  198.         commands.put("ipmute", new Command(Rank.MODERATOR) {
  199.             @Override
  200.             public void execute(Player player, String username) {
  201.                 Player targetPlayer = PlayerHandler.getPlayerByName(username);
  202.                 if (targetPlayer != null && player.getRank().isSuperiorTo(targetPlayer.getRank())) {
  203.                     Server.getConnection().ipMutePlayer(targetPlayer);
  204.                     player.sendMessage("Player '" + username + "; has been ip-muted. Please log this infraction in the infraction center.");
  205.                     targetPlayer.sendMessage("You have been ip-muted. You can appeal this on the forums.");
  206.                 } else player.sendMessage("Player '" + username + "' is either offline or superior to you.");
  207.             }
  208.         });
  209.  
  210.         commands.put("alias", new Command(Rank.MODERATOR) {
  211.             @Override
  212.             public void execute(Player player, String username) {
  213.                 Player targetPlayer = PlayerHandler.getPlayerByName(username);
  214.                 if (targetPlayer != null && player.getRank().isSuperiorTo(targetPlayer.getRank())) {
  215.                     String aliases = "Aliases: " + targetPlayer.getUsername();
  216.                     for (Player instance : PlayerHandler.players) {
  217.                         if (instance.connectedFrom.equalsIgnoreCase(targetPlayer.connectedFrom)
  218.                                 || instance.macAddress.equalsIgnoreCase(targetPlayer.macAddress))
  219.                             aliases += ", " + instance.getUsername();
  220.                     }
  221.                     player.sendMessage(aliases);
  222.                 } else player.sendMessage("Player '" + username + "' is either offline or superior to you.");
  223.             }
  224.         });
  225.  
  226.         commands.put("goto", new Command(Rank.MODERATOR) {
  227.             @Override
  228.             public void execute(Player player, String username) {
  229.                 if (!player.inWild() && player.duelStatus != 5 && !player.inCw()) {
  230.                     Player targetPlayer = PlayerHandler.getPlayerByName(username);
  231.                     if (targetPlayer != null && player.getRank().isSuperiorTo(targetPlayer.getRank())) {
  232.                         if (!targetPlayer.inWild() && targetPlayer.duelStatus != 5 && !targetPlayer.inCw())
  233.                             player.getPA().movePlayer(targetPlayer.getX(), targetPlayer.getY(), targetPlayer.getHeight());
  234.                     }
  235.                     player.sendMessage("Player '" + username + "' is either offline or superior to you.");
  236.                 }
  237.                 player.sendMessage("You cannot teleport to this player whilst you are at this location.");
  238.             }
  239.         });
  240.  
  241.         commands.put("bringhere", new Command(Rank.MODERATOR) {
  242.             @Override
  243.             public void execute(Player player, String username) {
  244.                 if (!player.inWild() && player.duelStatus != 5 && !player.inCw()) {
  245.                     Player targetPlayer = PlayerHandler.getPlayerByName(username);
  246.                     if (targetPlayer != null && player.getRank().isSuperiorTo(targetPlayer.getRank())) {
  247.                         if (!targetPlayer.inWild() && targetPlayer.duelStatus != 5 && !targetPlayer.inCw())
  248.                             player.getPA().movePlayer(targetPlayer.getX(), targetPlayer.getY(), targetPlayer.getHeight());
  249.                         else
  250.                             player.sendMessage("You cannot teleport this player to you whilst he is at his current location.");
  251.                     }
  252.                     player.sendMessage("Player '" + username + "' is either offline or superior to you.");
  253.                 }
  254.                 player.sendMessage("You cannot teleport this player to you whilst you are at this location.");
  255.             }
  256.         });
  257.  
  258.         commands.put("yell", new Command(Rank.MODERATOR) {
  259.             @Override
  260.             public void execute(Player player, String input) {
  261.                 player.getPA().sendYell(Misc.optimizeText(input));
  262.             }
  263.         });
  264.  
  265.         /** Administrator Commands **/
  266.  
  267.         commands.put("unipmute", new Command(Rank.ADMINISTRATOR) {
  268.             @Override
  269.             public void execute(Player player, String input) {
  270.                 Server.getConnection().unIPMutePlayer(input);
  271.             }
  272.         });
  273.  
  274.         commands.put("ipban", new Command(Rank.ADMINISTRATOR) {
  275.             @Override
  276.             public void execute(Player player, String username) {
  277.                 Player targetPlayer = PlayerHandler.getPlayerByName(username);
  278.                 if (targetPlayer != null && player.getRank().isSuperiorTo(targetPlayer.getRank())) {
  279.                     Server.getConnection().ipMutePlayer(targetPlayer);
  280.                     player.sendMessage("Player '" + username + "; has been ip-banned. Please log this infraction in the infraction center.");
  281.                 } else player.sendMessage("Player '" + username + "' is either offline or superior to you.");
  282.             }
  283.         });
  284.  
  285.         commands.put("unipban", new Command(Rank.ADMINISTRATOR) {
  286.             @Override
  287.             public void execute(Player player, String username) {
  288.                 Server.getConnection().unIPBanPlayer(username);
  289.             }
  290.         });
  291.  
  292.         /** Owner Commands **/
  293.  
  294.         commands.put("rank", new Command(Rank.OWNER) {
  295.             @Override
  296.             public void execute(Player player, String input) {
  297.                 int newRank = Integer.parseInt("" + input.charAt(0));
  298.                 Player playerToPromote = PlayerHandler.getPlayerByName(input.substring(2));
  299.                 if (playerToPromote != null) {
  300.                     playerToPromote.setRank(Rank.valueOf(newRank));
  301.                     playerToPromote.disconnected = true;
  302.                     player.sendMessage(playerToPromote.getUsername() + " has been promoted to " + playerToPromote.getRank().getTitle());
  303.                 } else player.sendMessage("Player '" + input.substring(2) + "' is offline.");
  304.             }
  305.         });
  306.  
  307.         commands.put("update", new Command() {
  308.             @Override
  309.             public void execute(Player player, String input) {
  310.                 int countdownSeconds = Integer.parseInt(input);
  311.                 if (countdownSeconds > 0) {
  312.                     PlayerHandler.updateSeconds = countdownSeconds;
  313.                     PlayerHandler.updateAnnounced = false;
  314.                     PlayerHandler.updateRunning = true;
  315.                     PlayerHandler.updateStartTime = System.currentTimeMillis();
  316.                 }
  317.             }
  318.         });
  319.  
  320.         commands.put("coordinates", new Command(Rank.OWNER) {
  321.             @Override
  322.             public void execute(Player player, String input) {
  323.                 String[] coordinates = input.split(" ");
  324.                 if (coordinates.length == 3)
  325.                     player.getPA().movePlayer(Integer.parseInt(coordinates[0]), Integer.parseInt(coordinates[1]), Integer.parseInt(coordinates[2]));
  326.                 else
  327.                     player.sendMessage("Current Location - X: " + player.getX() + ", Y: " + player.getY() + ", Z: " + player.getHeight());
  328.             }
  329.         });
  330.  
  331.         commands.put("item", new Command(Rank.OWNER) {
  332.             @Override
  333.             public void execute(Player player, String input) {
  334.                 String[] spawnInfo = input.split(" ", 2);
  335.                 if (spawnInfo.length == 2)
  336.                     player.getItems().addItem(Integer.parseInt(spawnInfo[0]), Integer.parseInt(spawnInfo[1]));
  337.                 else player.sendMessage("Please use ::item id amount.");
  338.             }
  339.         });
  340.  
  341.         commands.put("master", new Command(Rank.OWNER) {
  342.             @Override
  343.             public void execute(Player player, String input) {
  344.                 for (int i = 0; i < player.playerLevel.length; i++)
  345.                     player.getPA().addSkillXP(14000000, -i);
  346.             }
  347.         });
  348.  
  349.         return commands;
  350.     }
  351. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement