refactor commands, add click to tele command

This commit is contained in:
RedSparr0w
2019-10-26 14:15:59 +13:00
parent aa68571818
commit 607178155a
3 changed files with 546 additions and 491 deletions
@@ -82,7 +82,7 @@ public abstract class Player {
treeSpiritSpawned = false, chickenSpawned = false, clickedTree = false, filter = true,
stopPlayer = false, npcCanAttack = true, gliderOpen = false, hasSandwhichLady = false,
isHarvesting, openDuel = false, killedJad = false, canHealersRespawn = true, playerIsBusy = false, miningRock,
randomEventsEnabled = false, debugMode = false;
randomEventsEnabled = false, debugMode = false, clickToTele = false;
public int votePoints, thankedForDonation, saveDelay, playerKilled, gertCat, restGhost,
romeojuliet, runeMist, vampSlayer, cookAss, doricQuest, blackKnight,
@@ -11,6 +11,8 @@ import redone.util.GameLogger;
import redone.util.Misc;
import redone.world.clip.Region;
import java.util.Arrays;
import static redone.game.content.combat.magic.MagicTeleports.LUMBRIDGE_X;
import static redone.game.content.combat.magic.MagicTeleports.LUMBRIDGE_Y;
@@ -18,33 +20,36 @@ public class Commands implements PacketType {
@Override
public void processPacket(Client player, int packetType, int packetSize) {
String playerCommand = player.getInStream().readString();
String[] messageArr = player.getInStream().readString().split(" ");
String playerCommand = messageArr[0];
String[] commandArguments = Arrays.copyOfRange(messageArr, 1, messageArr.length);
if ((playerCommand.startsWith("ban") || playerCommand.startsWith("ip") || playerCommand.startsWith("mute") || playerCommand.startsWith("un")) && player.playerRights > 0 && player.playerRights < 4) {
GameLogger.writeLog(player.playerName, "commands", player.playerName + " used command: " + playerCommand + "");
GameLogger.writeLog(player.playerName, "commands", player.playerName + " used command: " + playerCommand);
}
if (player.playerRights >= 0) {
playerCommands(player, playerCommand);
playerCommands(player, playerCommand, commandArguments);
}
if (player.membership || player.playerRights > 1) {
donatorCommands(player, playerCommand);
donatorCommands(player, playerCommand, commandArguments);
}
if (player.playerRights >= 1) {
moderatorCommands(player, playerCommand);
moderatorCommands(player, playerCommand, commandArguments);
}
if (player.playerRights >= 2 && player.playerRights < 4) {
adminCommands(player, playerCommand);
adminCommands(player, playerCommand, commandArguments);
}
if (player.playerRights == 3) {
developerCommands(player, playerCommand);
developerCommands(player, playerCommand, commandArguments);
}
}
public static void playerCommands(Client player, String playerCommand) {
if (playerCommand.equalsIgnoreCase("bank")) {
public static void playerCommands(Client player, String playerCommand, String[] arguments) {
switch (playerCommand.toLowerCase())
{
case "bank":
player.getPlayerAssistant().openUpBank();
}
if (playerCommand.startsWith("claimvote")) {
break;
case "claimvote":
if(!Server.ersSecret.equals("")) {
final String playerName = player.playerName;
@@ -72,53 +77,55 @@ public class Commands implements PacketType {
} else {
player.getActionSender().sendMessage("Voting Is Not Enabled");
}
}
if (playerCommand.equalsIgnoreCase("coords") || playerCommand.equalsIgnoreCase("coord") || playerCommand.equalsIgnoreCase("pos")){
break;
case "coords":
case "coord":
case "pos":
player.getActionSender().sendMessage("Your coords are [" + player.absX + "," + player.absY + "]");
}
if (playerCommand.equalsIgnoreCase("players")) {
if (PlayerHandler.getPlayerCount() > 1) {
break;
case "null":
break;
case "players":
if (PlayerHandler.getPlayerCount() != 1) {
player.getActionSender().sendMessage("There are currently " + PlayerHandler.getPlayerCount() + " players online.");
} else {
player.getActionSender().sendMessage("There is currently " + PlayerHandler.getPlayerCount() + " player online.");
}
}
if (playerCommand.equalsIgnoreCase("wealth")) {
break;
case "wealth":
int totalWealth = player.getPlayerAssistant().totalGold();
player.getActionSender().sendMessage("You currently have " + totalWealth + "gp.");
}
if (playerCommand.contains("clip") && player.playerRights < 2) {
break;
case "gfx100":
if (arguments.length == 0)
player.getActionSender().sendMessage("Must have 1 argument: ::gfx100 80");
else
player.gfx100(Integer.parseInt(arguments[0]));
break;
case "gfx0":
if (arguments.length == 0)
player.getActionSender().sendMessage("Must have 1 argument: ::gfx0 80");
else
player.gfx0(Integer.parseInt(arguments[0]));
break;
case "tele":
if (player.connectedFrom.equals("127.0.0.1")) {
try {
if (arguments.length < 2) {
player.getActionSender().sendMessage("Must specify x, y and optionally z coordinates: ::tele 3222 3218 0");
return;
}
if (playerCommand.startsWith("gfx100"))
{
player.gfx100(Integer.parseInt(playerCommand.split(" ")[1]));
if (arguments.length == 3)
player.getPlayerAssistant().movePlayer(Integer.parseInt(arguments[0]), Integer.parseInt(arguments[1]), Integer.parseInt(arguments[2]));
else
player.getPlayerAssistant().movePlayer(Integer.parseInt(arguments[0]), Integer.parseInt(arguments[1]), player.heightLevel);
} catch (Exception e) {
player.getActionSender().sendMessage("Invalid coordinates");
}
if (playerCommand.startsWith("gfx0"))
{
player.gfx0(Integer.parseInt(playerCommand.split(" ")[1]));
}
String message = null;
System.out.println(player.playerName + " is running " + playerCommand);
if (playerCommand.contains("tele")) {
if (player.connectedFrom.equals("127.0.0.1"))
{
player.getPlayerAssistant().startTeleport(Integer.parseInt(playerCommand.split(" ")[1]), Integer.parseInt(playerCommand.split(" ")[2]), 0, "modern");
} else {
player.getActionSender().sendMessage("Can't tele with ip " + player.connectedFrom);
}
}
switch (playerCommand)
{
break;
case "close_interface":
player.getPlayerAssistant().closeAllWindows();
break;
@@ -137,14 +144,12 @@ public class Commands implements PacketType {
case "randomtoggle":
case "togglerandom":
player.randomEventsEnabled = !player.randomEventsEnabled;
message = player.randomEventsEnabled ? "You will now receive random events." : "You will no longer receieve random events.";
player.getActionSender().sendMessage(message);
player.getActionSender().sendMessage("You will " + (player.debugMode ? "now" : "no longer") + " receieve random events.");
break;
case "debug":
case "debugmode":
player.debugMode = !player.debugMode;
message = player.debugMode ? "You will now receieve additional debug information when doing things" : "You will no longer receive additional info when doing things";
player.getActionSender().sendMessage(message);
player.getActionSender().sendMessage("You will " + (player.debugMode ? "now" : "no longer") + " receieve additional debug information when doing things.");
break;
case "highscores":
for (Player p : PlayerHandler.players) {
@@ -185,99 +190,124 @@ public class Commands implements PacketType {
}
public static void donatorCommands(Client player, String playerCommand) {
public static void donatorCommands(Client player, String playerCommand, String[] arguments) {
}
public static void moderatorCommands(Client player, String playerCommand) {
if (playerCommand.startsWith("yell")) {
public static void moderatorCommands(Client player, String playerCommand, String[] arguments) {
switch (playerCommand.toLowerCase()) {
case "yell":
for (int j = 0; j < PlayerHandler.players.length; j++) {
if (PlayerHandler.players[j] != null) {
Client c2 = (Client)PlayerHandler.players[j];
Client c2 = (Client) PlayerHandler.players[j];
if (player.playerRights == 1) {
c2.getActionSender().sendMessage("@blu@[Moderator] @bla@"+ Misc.optimizeText(player.playerName) +": " + Misc.optimizeText(playerCommand.substring(5)) +"");
c2.getActionSender().sendMessage("@blu@[Moderator] @bla@" + Misc.optimizeText(player.playerName) + ": " + Misc.optimizeText(String.join(" ", arguments)) + "");
} else if (player.playerRights == 2) {
c2.getActionSender().sendMessage("@gre@[Administator] @bla@"+ Misc.optimizeText(player.playerName) +": " + Misc.optimizeText(playerCommand.substring(5)) +"");
c2.getActionSender().sendMessage("@gre@[Administator] @bla@" + Misc.optimizeText(player.playerName) + ": " + Misc.optimizeText(String.join(" ", arguments)) + "");
} else if (player.playerRights == 3) {
c2.getActionSender().sendMessage("@red@[Developer] @bla@"+ Misc.optimizeText(player.playerName) +": " + Misc.optimizeText(playerCommand.substring(5)) +"");
}
c2.getActionSender().sendMessage("@red@[Developer] @bla@" + Misc.optimizeText(player.playerName) + ": " + Misc.optimizeText(String.join(" ", arguments)) + "");
}
}
}
break;
if (playerCommand.startsWith("mute")) {
case "mute":
try {
String playerToBan = playerCommand.substring(5);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::mute playername");
return;
}
String playerToBan = String.join(" ", arguments);
Connection.addNameToMuteList(playerToBan);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Client c2 = (Client)PlayerHandler.players[i];
for (int i = 0; i < Constants.MAX_PLAYERS; i++) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Client c2 = (Client) PlayerHandler.players[i];
c2.getActionSender().sendMessage("You have been muted by: " + player.playerName);
break;
}
}
}
} catch(Exception e) {
} catch (Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
break;
if (playerCommand.startsWith("ipmute")) {
case "ipmute":
try {
String playerToBan = playerCommand.substring(7);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::ipmute playername");
return;
}
String playerToBan = String.join(" ", arguments);
for (int i = 0; i < Constants.MAX_PLAYERS; i++) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Connection.addIpToMuteList(PlayerHandler.players[i].connectedFrom);
player.getActionSender().sendMessage("You have IP Muted the user: "+PlayerHandler.players[i].playerName);
Client c2 = (Client)PlayerHandler.players[i];
player.getActionSender().sendMessage("You have IP Muted the user: " + PlayerHandler.players[i].playerName);
Client c2 = (Client) PlayerHandler.players[i];
c2.getActionSender().sendMessage("You have been muted by: " + player.playerName);
break;
}
}
}
} catch(Exception e) {
} catch (Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
break;
if (playerCommand.startsWith("unipmute")) {
case "unipmute":
try {
String playerToBan = playerCommand.substring(9);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::unipmute playername");
return;
}
String playerToBan = String.join(" ", arguments);
for (int i = 0; i < Constants.MAX_PLAYERS; i++) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Connection.unIPMuteUser(PlayerHandler.players[i].connectedFrom);
player.getActionSender().sendMessage("You have Un Ip-Muted the user: "+PlayerHandler.players[i].playerName);
player.getActionSender().sendMessage("You have Un Ip-Muted the user: " + PlayerHandler.players[i].playerName);
break;
}
}
}
} catch(Exception e) {
} catch (Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
break;
if (playerCommand.startsWith("unmute")) {
case "unmute":
try {
String playerToBan = playerCommand.substring(7);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::unmute playername");
return;
}
String playerToBan = String.join(" ", arguments);
Connection.unMuteUser(playerToBan);
} catch(Exception e) {
} catch (Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
break;
}
}
public static void adminCommands(Client player, String playerCommand) {
if (playerCommand.equalsIgnoreCase("clearbank")) {
public static void adminCommands(Client player, String playerCommand, String[] arguments) {
switch (playerCommand.toLowerCase()) {
case "clearbank":
player.getItemAssistant().clearBank();
}
if (playerCommand.startsWith("ipban")) { // use as ::ipban name
break;
case "clicktotele":
player.clickToTele = !player.clickToTele;
player.getActionSender().sendMessage("Click to teleport: " + (player.clickToTele ? "Enabled" : "Disabled"));
break;
case "ipban":
try {
String playerToBan = playerCommand.substring(6);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::ipban playername");
return;
}
String playerToBan = String.join(" ", arguments);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
@@ -291,11 +321,14 @@ public class Commands implements PacketType {
} catch(Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("ban") && playerCommand.charAt(3) == ' ') { // use as ::ban name
break;
case "ban":
try {
String playerToBan = playerCommand.substring(4);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::ban playername");
return;
}
String playerToBan = String.join(" ", arguments);
Connection.addNameToBanList(playerToBan);
Connection.addNameToFile(playerToBan);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
@@ -308,61 +341,76 @@ public class Commands implements PacketType {
} catch(Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("unban")) {
break;
case "unban":
try {
String playerToBan = playerCommand.substring(6);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::unban playername");
return;
}
String playerToBan = String.join(" ", arguments);
Connection.removeNameFromBanList(playerToBan);
player.getActionSender().sendMessage(playerToBan + " has been unbanned.");
} catch(Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.equalsIgnoreCase("empty")) {
break;
case "empty":
player.getPlayerAssistant().handleEmpty();
break;
case "dialogue":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an id: ::dialogue id");
return;
}
if (playerCommand.startsWith("dialogue")) {
int npcType = 1552;
int id = Integer.parseInt(playerCommand.split(" ")[1]);
player.getDialogueHandler().sendDialogues(id, npcType);
int dialogueID = Integer.parseInt(arguments[0]);
player.getDialogueHandler().sendDialogues(dialogueID, npcType);
break;
case "interface":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an id: ::interface id");
return;
}
if (playerCommand.startsWith("interface")) {
String[] args = playerCommand.split(" ");
player.getPlayerAssistant().showInterface(Integer.parseInt(args[1]));
int interfaceID = Integer.parseInt(arguments[0]);
player.getPlayerAssistant().showInterface(interfaceID);
break;
case "gfx":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an id: ::gfx id");
return;
}
if (playerCommand.startsWith("gfx")) {
String[] args = playerCommand.split(" ");
player.gfx0(Integer.parseInt(args[1]));
int gfxID = Integer.parseInt(arguments[0]);
player.gfx0(gfxID);
break;
case "anim":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an id: ::anim id");
return;
}
if (playerCommand.startsWith("anim")) {
String[] args = playerCommand.split(" ");
player.startAnimation(Integer.parseInt(args[1]));
int animationID = Integer.parseInt(arguments[0]);
player.startAnimation(animationID);
player.getPlayerAssistant().requestUpdates();
}
if (playerCommand.equalsIgnoreCase("mypos")) {
break;
case "mypos":
player.getActionSender().sendMessage("X: " + player.absX);
player.getActionSender().sendMessage("Y: " + player.absY);
player.getActionSender().sendMessage("H: " + player.heightLevel);
}
if (playerCommand.startsWith("bank")) {
break;
case "bank":
player.getPlayerAssistant().openUpBank();
}
if (playerCommand.startsWith("xteletome")) {
break;
case "xteletome":
case "teletome":
try {
String teleTo = playerCommand.substring(10);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::teletome playername");
return;
}
String teleToMe = String.join(" ", arguments);
for (int i = 0; i < PlayerHandler.players.length; i++) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(teleTo)) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(teleToMe)) {
Client p = (Client) PlayerHandler.players[i];
player.getActionSender().sendMessage(p.playerName + " has been teleported to you.");
p.getPlayerAssistant().movePlayer(player.absX, player.absY, player.heightLevel);
@@ -372,54 +420,51 @@ public class Commands implements PacketType {
} catch (Exception e) {
player.getActionSender().sendMessage("Player is not online.");
}
break;
case "xteleto":
case "teleto":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::teleto playername");
return;
}
if (playerCommand.startsWith("xteleto")) {
String name = playerCommand.substring(8);
String teleTo = String.join(" ", arguments);
for (int i = 0; i < PlayerHandler.players.length; i++) {
if (PlayerHandler.players[i] != null) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(name)) {
if (PlayerHandler.players[i].playerName.equalsIgnoreCase(teleTo)) {
player.getPlayerAssistant().movePlayer(PlayerHandler.players[i].getX(), PlayerHandler.players[i].getY(), PlayerHandler.players[i].heightLevel);
return;
}
}
}
}
if (playerCommand.startsWith("tele")) {
String[] arg = playerCommand.split(" ");
if (arg.length > 3) {
player.getPlayerAssistant().movePlayer(Integer.parseInt(arg[1]), Integer.parseInt(arg[2]), Integer.parseInt(arg[3]));
} else if (arg.length == 3) {
player.getPlayerAssistant().movePlayer(Integer.parseInt(arg[1]), Integer.parseInt(arg[2]), player.heightLevel);
}
}
if (playerCommand.equalsIgnoreCase("up")) {
player.getActionSender().sendMessage("Could not find " + teleTo + " they must be online!");
break;
case "up":
player.getPlayerAssistant().movePlayer(player.absX, player.absY, player.heightLevel + 1);
player.getActionSender().sendMessage("You are now on height level " + player.heightLevel + ".");
}
if (playerCommand.equalsIgnoreCase("down2")) {
player.getPlayerAssistant().movePlayer(player.absX, player.absY + 6400, player.heightLevel);
}
if (playerCommand.equalsIgnoreCase("down")) {
break;
case "up2":
player.getPlayerAssistant().movePlayer(player.absX, player.absY - 6400, player.heightLevel);
player.getActionSender().sendMessage("You are now on height level " + player.heightLevel + ".");
break;
case "down":
player.getPlayerAssistant().movePlayer(player.absX, player.absY, player.heightLevel - 1);
player.getActionSender().sendMessage("You are now on height level " + player.heightLevel + ".");
}
if (playerCommand.equalsIgnoreCase("up2")) {
player.getPlayerAssistant().movePlayer(player.absX, player.absY - 6400, player.heightLevel);
}
if (playerCommand.equals("spec")) {
break;
case "down2":
player.getPlayerAssistant().movePlayer(player.absX, player.absY + 6400, player.heightLevel);
player.getActionSender().sendMessage("You are now on height level " + player.heightLevel + ".");
break;
case "spec":
player.specAmount = 100.0;
}
if (playerCommand.startsWith("setlevel")) {
break;
case "setlevel":
try {
String[] args = playerCommand.split(" ");
int skill = Integer.parseInt(args[1]);
int level = Integer.parseInt(args[2]);
if (arguments.length < 2) {
player.getActionSender().sendMessage("Must specify a skill and level: ::setlevel 1 99");
return;
}
int skill = Integer.parseInt(arguments[0]);
int level = Integer.parseInt(arguments[1]);
if (level > 99) {
level = 99;
} else if (level < 0) {
@@ -429,12 +474,9 @@ public class Commands implements PacketType {
player.playerLevel[skill] = player.getPlayerAssistant().getLevelForXP(player.playerXP[skill]);
player.getPlayerAssistant().refreshSkill(skill);
player.getPlayerAssistant().levelUp(skill);
} catch (Exception e) {
}
}
if (playerCommand.equalsIgnoreCase("spellbook")) {
} catch (Exception ಠ_ಠ) {}
break;
case "spellbook":
if (player.inWild()) {
return;
}
@@ -446,51 +488,50 @@ public class Commands implements PacketType {
} else if (player.playerMagicBook == 1) {
player.getActionSender().setSidebarInterface(6, 1151); // modern
player.playerMagicBook = 0;
player.getActionSender().sendMessage( "You feel a drain on your memory.");
player.getActionSender().sendMessage("You feel a drain on your memory.");
player.autocastId = -1;
player.getPlayerAssistant().resetAutocast();
}
}
if (playerCommand.startsWith("item")) {
break;
case "item":
try {
String[] args = playerCommand.split(" ");
if (args.length == 3) {
int newItemID = Integer.parseInt(args[1]);
int newItemAmount = Integer.parseInt(args[2]);
if (arguments.length == 0) {
player.getActionSender().sendMessage("Must specify an item id: ::item 995 1000");
return;
}
int newItemID = Integer.parseInt(arguments[0]);
int newItemAmount = arguments[1] != null ? Integer.parseInt(arguments[1]) : 1;
if (newItemID <= 10000 && newItemID >= 0) {
player.getItemAssistant().addItem(newItemID, newItemAmount);
if (player.isBusy()) {
player.getPlayerAssistant().closeAllWindows();
}
player.getActionSender().sendMessage("You spawn (" + newItemAmount + ") "+ ItemAssistant.getItemName(newItemID) + ".");
player.getActionSender().sendMessage("You spawn " + newItemAmount + " × "+ ItemAssistant.getItemName(newItemID) + ".");
} else {
player.getActionSender().sendMessage("No such item.");
}
} else {
player.getActionSender().sendMessage("Use as ::item 995 200");
}
} catch (Exception e) {
}
}
if (playerCommand.equalsIgnoreCase("master")) {
} catch (Exception ಠ_ಠ) {}
break;
case "master":
for (int i = 0; i < 25; i++) {
player.playerLevel[i] = 99;
player.playerXP[i] = player.getPlayerAssistant().getXPForLevel(100);
player.getPlayerAssistant().refreshSkill(i);
}
player.getPlayerAssistant().requestUpdates();
break;
}
}
}
public static void developerCommands(Client player, String playerCommand) {
if (playerCommand.startsWith("giveadmin")) {
public static void developerCommands(Client player, String playerCommand, String[] arguments) {
switch (playerCommand.toLowerCase()) {
case "giveadmin":
try {
String playerToAdmin = playerCommand.substring(10);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::giveadmin playername");
return;
}
String playerToAdmin = String.join(" ", arguments);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToAdmin)) {
@@ -505,11 +546,14 @@ public class Commands implements PacketType {
} catch(Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("demote")) {
break;
case "demote":
try {
String playerToAdmin = playerCommand.substring(7);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::demote playername");
return;
}
String playerToAdmin = String.join(" ", arguments);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToAdmin)) {
@@ -524,11 +568,14 @@ public class Commands implements PacketType {
} catch(Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("givemod")) {
break;
case "givemod":
try {
String playerToMod = playerCommand.substring(8);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify a player name: ::givemod playername");
return;
}
String playerToMod = String.join(" ", arguments);
for(int i = 0; i < Constants.MAX_PLAYERS; i++) {
if(PlayerHandler.players[i] != null) {
if(PlayerHandler.players[i].playerName.equalsIgnoreCase(playerToMod)) {
@@ -543,24 +590,33 @@ public class Commands implements PacketType {
} catch(Exception e) {
player.getActionSender().sendMessage("Player Must Be Offline.");
}
break;
case "object":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an ID: ::object 1000");
return;
}
if (playerCommand.startsWith("object")) {
String[] args = playerCommand.split(" ");
player.getActionSender().object(Integer.parseInt(args[1]), player.absX, player.absY, player.heightLevel, 0, 10);
Region.addObject(Integer.parseInt(args[1]), player.absX, player.absY, player.heightLevel, 10, 0, false);
player.getActionSender().object(Integer.parseInt(arguments[0]), player.absX, player.absY, player.heightLevel, 0, 10);
Region.addObject(Integer.parseInt(arguments[0]), player.absX, player.absY, player.heightLevel, 10, 0, false);
break;
case "object2":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an ID: ::object2 1000");
return;
}
if (playerCommand.startsWith("object2")) {
String[] args = playerCommand.split(" ");
player.getActionSender().object(Integer.parseInt(args[1]), player.absX, player.absY, player.heightLevel, 0, 0);
Region.addObject(Integer.parseInt(args[1]), player.absX, player.absY, player.heightLevel, 0, 0, false);
}
if (playerCommand.startsWith("npc")) {
player.getActionSender().object(Integer.parseInt(arguments[0]), player.absX, player.absY, player.heightLevel, 0, 0);
Region.addObject(Integer.parseInt(arguments[0]), player.absX, player.absY, player.heightLevel, 0, 0, false);
break;
case "npc":
try {
int newNPC = Integer.parseInt(playerCommand.substring(4)), maxHit = NpcHandler.getNpcListCombat(newNPC) / 10,
attack = NpcHandler.getNpcListCombat(newNPC), defence = NpcHandler.getNpcListCombat(newNPC);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an ID: ::npc 1000");
return;
}
int newNPC = Integer.parseInt(arguments[0]),
maxHit = NpcHandler.getNpcListCombat(newNPC) / 10,
attack = NpcHandler.getNpcListCombat(newNPC),
defence = NpcHandler.getNpcListCombat(newNPC);
boolean attackPlayer = NpcHandler.getNpcListCombat(newNPC) > 0;
if (newNPC > 0) {
NpcHandler.spawnNpc(player, newNPC, player.absX, player.absY, player.heightLevel, 0, NpcHandler.getNpcListHP(newNPC), maxHit, attack, defence, attackPlayer, false);
@@ -569,44 +625,39 @@ public class Commands implements PacketType {
} else {
player.getActionSender().sendMessage("Npc " + newNPC + " does not exist.");
}
} catch (Exception e) {
} catch (Exception ಠ_ಠ) {}
break;
case "cantAttack":
player.npcCanAttack = !player.npcCanAttack;
player.getActionSender().sendMessage("Npcs " + (player.npcCanAttack ? "can" : "can no longer") + " attack you.");
break;
case "sound":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an ID: ::sound 10");
return;
}
player.getActionSender().sendSound(Integer.parseInt(arguments[0]), 100, 0);
break;
case "tutprog":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an ID: ::tutprog 10");
return;
}
if (playerCommand.equalsIgnoreCase("cantAttack")) {
if (player.npcCanAttack == true) {
player.getActionSender().sendMessage("Npcs can no longer attack you.");
player.npcCanAttack = false;
} else if (player.npcCanAttack == false) {
player.getActionSender().sendMessage("Npcs can attack you again.");
player.npcCanAttack = true;
player.tutorialProgress = Integer.parseInt(arguments[0]);;
break;
case "song":
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify an ID: ::song 10");
return;
}
}
if (playerCommand.startsWith("sound")) {
String[] args = playerCommand.split(" ");
player.getActionSender().sendSound(Integer.parseInt(args[1]), 100, 0);
}
if (playerCommand.startsWith("tutprog")) {
String[] args = playerCommand.split(" ");
int id = Integer.parseInt(args[1]);
player.tutorialProgress = id;
}
if (playerCommand.startsWith("song")) {
String[] args = playerCommand.split(" ");
int id = Integer.parseInt(args[1]);
player.getActionSender().sendSong(id);
}
if (playerCommand.equalsIgnoreCase("run")) {
int songID = Integer.parseInt(arguments[0]);
player.getActionSender().sendSong(songID);
break;
case "run":
player.getActionSender().sendMessage("You have refilled your run-energy!");
player.playerEnergy = 100;
}
if (playerCommand.equalsIgnoreCase("runes")) {
break;
case "runes":
final int amount = 10000;
final int[][] RUNES = { { 554, amount }, { 555, amount },
{ 556, amount }, { 557, amount }, { 558, amount },
@@ -618,28 +669,24 @@ public class Commands implements PacketType {
int amountToRecieve = element[1];
player.getItemAssistant().addItem(item, amountToRecieve);
}
}
if (playerCommand.startsWith("sidebars")) {
break;
case "sidebars":
player.getPlayerAssistant().sendSidebars();
}
if (playerCommand.startsWith("update")) {
break;
case "update":
try {
String[] args = playerCommand.split(" ");
if (args.length == 2) {
int seconds = Integer.parseInt(args[1]);
if (arguments.length == 0) {
player.getActionSender().sendMessage("You must specify the amount of time in seconds: ::update 300");
return;
}
int seconds = Integer.parseInt(arguments[0]);
PlayerHandler.updateSeconds = seconds;
PlayerHandler.updateAnnounced = false;
PlayerHandler.updateRunning = true;
PlayerHandler.updateStartTime = System.currentTimeMillis();
} else {
player.getActionSender().sendMessage("Use as ::update (seconds)");
} catch (Exception ಠ_ಠ) {}
break;
}
} catch (Exception e) {
}
}
}
@@ -165,17 +165,25 @@ public class Walking implements PacketType {
}
player.getNewWalkCmdX()[0] = player.getNewWalkCmdY()[0] = 0;
int firstStepX, firstStepY;
int firstStepX = player.getInStream().readSignedWordBigEndianA()
- player.getMapRegionX() * 8;
if (player.clickToTele)
firstStepX = player.getInStream().readSignedWordBigEndianA();
else
firstStepX = player.getInStream().readSignedWordBigEndianA()-player.getMapRegionX()*8;
for (int i = 1; i < player.newWalkCmdSteps; i++) {
player.getNewWalkCmdX()[i] = player.getInStream().readSignedByte();
player.getNewWalkCmdY()[i] = player.getInStream().readSignedByte();
}
int firstStepY = player.getInStream().readSignedWordBigEndian() - player.getMapRegionY() * 8;
if (player.clickToTele)
firstStepY = player.getInStream().readSignedWordBigEndian();
else
firstStepY = player.getInStream().readSignedWordBigEndian()-player.getMapRegionY()*8;
player.setNewWalkCmdIsRunning(player.getInStream().readSignedByteC() == 1 && player.playerEnergy > 0);
for (int i1 = 0; i1 < player.newWalkCmdSteps; i1++) {
if (player.clickToTele)
player.getPlayerAssistant().movePlayer(player.getNewWalkCmdX()[i1] + firstStepX, player.getNewWalkCmdY()[i1] + firstStepY, player.heightLevel);
player.getNewWalkCmdX()[i1] += firstStepX;
player.getNewWalkCmdY()[i1] += firstStepY;
}