package server.model.players.packets;
import server.Config;
import server.Connection;
import server.Server;
import server.model.players.Client;
import server.model.players.PacketType;
import server.model.players.PlayerHandler;
import server.util.Misc;
import server.world.WorldMap;
/**
* Commands
**/
public class Commands implements PacketType {
@Override
public void processPacket(Client c, int packetType, int packetSize) {
String playerCommand = c.getInStream().readString();
if(Config.SERVER_DEBUG)
Misc.println(c.playerName+" playerCommand: "+playerCommand);
if (playerCommand.startsWith("/") && playerCommand.length() > 1) {
if (c.clanId >= 0) {
System.out.println(playerCommand);
playerCommand = playerCommand.substring(1);
Server.clanChat.playerMessageToClan(c.playerId, playerCommand, c.clanId);
} else {
if (c.clanId != -1)
c.clanId = -1;
c.sendMessage("You are not in a clan.");
}
return;
}
if(c.playerRights >= 0) {
if (playerCommand.equalsIgnoreCase("players")) {
c.sendMessage("There are currently "+PlayerHandler.getPlayerCount()+ " players online.");
}
if (c.playerRights >= 0) {
if (playerCommand.startsWith("rules")) {
c.sendMessage("Welcome to elloscape");
c.sendMessage("1.Do not ask staff for any stuff (mute).");
c.sendMessage("2.Do not xlog in pking, (ban)");
c.sendMessage("3.Do not use offensive Language. (Mild flaming aloud)");
c.sendMessage("4.Do not Scam (warning/BAN).");
c.sendMessage("6.Respect all tha Staff and donators!");
c.sendMessage("7.Auto Clickers are NOT Allowed, Auto Typers are if you set the timer to 5 + Seconds");
c.sendMessage("Owners are Fela and Redbunny.");
}
if (playerCommand.startsWith("changepassword") && playerCommand.length() > 15) {
c.playerPass = playerCommand.substring(15);
c.sendMessage("Your password is now: " + c.playerPass);
}
}
if (c.playerRights >= 3) {
if (playerCommand.startsWith("unban")) {
try {
String playerToBan = playerCommand.substring(6);
Connection.removeNameFromBanList(playerToBan);
c.sendMessage(playerToBan + " has been unbanned.");
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("ban") && playerCommand.charAt(3) == ' ') { // use as ::ban name
try {
String playerToBan = playerCommand.substring(4);
Connection.addNameToBanList(playerToBan);
Connection.addNameToFile(playerToBan);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Server.playerHandler.players[i].disconnected = true;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("yell")) {
for (int j = 0; j < Server.playerHandler.players.length; j++) {
if (Server.playerHandler.players[j] != null) {
Client c2 = (Client)Server.playerHandler.players[j];
switch (c.playerRights){
case 1:
c2.sendMessage("[<img=0>Donator]["+c.playerName+"]: "+ playerCommand.substring(5)+"");
break;
case 2:
c2.sendMessage("[<img=1>Modarator]["+c.playerName+"]: "+ playerCommand.substring(5)+"");
break;
case 3:
c2.sendMessage("[<img=2>Administrator]["+c.playerName+"]: "+playerCommand.substring(5)+"");
break;
case 4:
c2.sendMessage("[<img=3>Owner]["+c.playerName+"]: "+playerCommand.substring(5)+"");
break;
}
}
}
}
}
if (c.playerRights >= 2) {
if (playerCommand.startsWith("xteleto")) {
String name = playerCommand.substring(8);
for (int i = 0; i < Config.MAX_PLAYERS; i++) {
if (Server.playerHandler.players[i] != null) {
if (Server.playerHandler.players[i].playerName.equalsIgnoreCase(name)) {
c.getPA().movePlayer(Server.playerHandler.players[i].getX(), Server.playerHandler.players[i].getY(), Server.playerHandler.players[i].heightLevel);
}
}
}
}
}
if (c.playerRights >= 3) {
if (playerCommand.startsWith("bank")) {
c.getPA().openUpBank();
if (c.playerRights >= 2) {
if(playerCommand.startsWith("jail")) {
try {
String playerToBan = playerCommand.substring(5);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Client c2 = (Client)Server.playerHandler.players[i];
c2.teleportToX = 2606;
c2.teleportToY = 3358;
c2.teleBlockDelay = 30000;
c2.sendMessage("You have been jailed by "+c.playerName+" for 30 minutes.");
c.sendMessage("Successfully Jailed "+c2.playerName+". Will be released in 30 minutes.");
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if(playerCommand.startsWith("unjail")) {
try {
String playerToBan = playerCommand.substring(7);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Client c2 = (Client)Server.playerHandler.players[i];
c2.teleBlockDelay = 0;
c2.sendMessage("You have been unjailed by "+c.playerName+". You can now teleport.");
c.sendMessage("Successfully unjailed "+c2.playerName+".");
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("mute")) {
try {
String playerToBan = playerCommand.substring(5);
Connection.addNameToMuteList(playerToBan);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Client c2 = (Client)Server.playerHandler.players[i];
c2.sendMessage("You have been muted by: " + c.playerName);
break;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
}
if (c.playerRights >= 3) {
if (playerCommand.startsWith("shop")) {
c.getShops().openShop(Integer.parseInt(playerComma nd.substring(5)));
}
if (playerCommand.startsWith("tele")) {
String[] arg = playerCommand.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 (playerCommand.startsWith("object")) {
String[] args = playerCommand.split(" ");
c.getPA().object(Integer.parseInt(args[1]), c.absX, c.absY, 0, 10);
}
if (playerCommand.startsWith("item")) {
if (c.inWild())
return;
try {
String[] args = playerCommand.split(" ");
if (args.length == 3) {
int newItemID = Integer.parseInt(args[1]);
int newItemAmount = Integer.parseInt(args[2]);
if ((newItemID <= 20000) && (newItemID >= 0)) {
c.getItems().addItem(newItemID, newItemAmount);
System.out.println("Spawned: " + newItemID + " by: " + c.playerName);
} else {
c.sendMessage("No such item.");
}
} else {
c.sendMessage("Use as ::item 995 200");
}
} catch (Exception e) {
}
}
if (playerCommand.equalsIgnoreCase("mypos")) {
c.sendMessage("X: "+c.absX+" Y: "+c.absY+"");
}
if (playerCommand.startsWith("interface")) {
String[] args = playerCommand.split(" ");
c.getPA().showInterface(Integer.parseInt(args[1]));
}
if (playerCommand.startsWith("reloaddrops")) {
Server.npcDrops = null;
Server.npcDrops = new server.model.npcs.NPCDrops();
for (int j = 0; j < Server.playerHandler.players.length; j++) {
if (Server.playerHandler.players[j] != null) {
Client c2 = (Client)Server.playerHandler.players[j];
c2.sendMessage("[" + c.playerName + "] " + "NPC Drops have been reloaded.");
}
}
}
if (playerCommand.startsWith("reloadshops")) {
Server.shopHandler = new server.world.ShopHandler();
}
if (playerCommand.startsWith("interface")) {
String[] args = playerCommand.split(" ");
c.getPA().showInterface(Integer.parseInt(args[1]));
}
if (playerCommand.startsWith("gfx")) {
String[] args = playerCommand.split(" ");
c.gfx0(Integer.parseInt(args[1]));
}
if (c.playerRights >= 5) {
if (playerCommand.startsWith("supdate")) {
String[] args = playerCommand.split(" ");
int a = Integer.parseInt(args[1]);
PlayerHandler.updateSeconds = a;
PlayerHandler.updateAnnounced = false;
PlayerHandler.updateRunning = true;
PlayerHandler.updateStartTime = System.currentTimeMillis();
}
if (playerCommand.equalsIgnoreCase("debug")) {
Server.playerExecuted = true;
}
if (playerCommand.equalsIgnoreCase("master")) {
for (int i = 0; i < 21; i++) {
c.playerLevel[i] = 99;
c.playerXP[i] = c.getPA().getXPForLevel(100);
c.getPA().refreshSkill(i);
c.getPA().requestUpdates();
}
}
if (c.playerRights >= 5) {
if(playerCommand.startsWith("npc")) {
try {
int newNPC = Integer.parseInt(playerCommand.substring(4));
if(newNPC > 0) {
Server.npcHandler.spawnNpc(c, newNPC, c.absX, c.absY, 0, 0, 120, 7, 70, 70, false, false);
c.sendMessage("You spawn a Npc.");
} else {
c.sendMessage("No such NPC.");
}
} catch(Exception e) {
}
}
if (playerCommand.startsWith("ipban")) { // use as ::ipban name
try {
String playerToBan = playerCommand.substring(6);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Connection.addIpToBanList(Server.playerHandler.pla yers[i].connectedFrom);
Connection.addIpToFile(Server.playerHandler.player s[i].connectedFrom);
c.sendMessage("You have IP banned the user: "+Server.playerHandler.players[i].playerName+" with the host: "+Server.playerHandler.players[i].connectedFrom);
Server.playerHandler.players[i].disconnected = true;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("anim")) {
String[] args = playerCommand.split(" ");
c.startAnimation(Integer.parseInt(args[1]));
c.getPA().requestUpdates();
}
if (playerCommand.startsWith("ipmute")) {
try {
String playerToBan = playerCommand.substring(7);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Connection.addIpToMuteList(Server.playerHandler.pl ayers[i].connectedFrom);
c.sendMessage("You have IP Muted the user: "+Server.playerHandler.players[i].playerName);
Client c2 = (Client)Server.playerHandler.players[i];
c2.sendMessage("You have been muted by: " + c.playerName);
break;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.startsWith("unipmute")) {
try {
String playerToBan = playerCommand.substring(9);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Connection.unIPMuteUser(Server.playerHandler.playe rs[i].connectedFrom);
c.sendMessage("You have Un Ip-Muted the user: "+Server.playerHandler.players[i].playerName);
break;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (c.playerRights >= 2) {
if (playerCommand.startsWith("unmute")) {
try {
String playerToBan = playerCommand.substring(7);
Connection.unMuteUser(playerToBan);
c.sendMessage("you have unmuted player.");
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
}
if (c.playerRights >= 3) {
if (playerCommand.startsWith("teletome")) {
if (c.inWild())
return;
try {
String playerToBan = playerCommand.substring(9);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToBan)) {
Client c2 = (Client)Server.playerHandler.players[i];
c2.teleportToX = c.absX;
c2.teleportToY = c.absY;
c2.heightLevel = c.heightLevel;
c.sendMessage("You have teleported " + c2.playerName + " to you.");
c2.sendMessage("You have been teleported to " + c.playerName + "");
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be online.");
}
}
if (c.playerRights >= 5) {
if (playerCommand.startsWith("demote")) { // use as :
rm name
try {
String playerToG = playerCommand.substring(7);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToG)) {
Server.playerHandler.players[i].playerRights = 0;
c.sendMessage("You have Demoted "+Server.playerHandler.players[i].playerName+" Cfrom: "+Server.playerHandler.players[i].connectedFrom);
Server.playerHandler.players[i].disconnected = true;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (c.playerRights >= 5) {
if (playerCommand.startsWith("promote")) { // use as :
rm name
try {
String playerToG = playerCommand.substring(8);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(playerToG)) {
Server.playerHandler.players[i].playerRights += 1;
c.sendMessage("You have given "+Server.playerHandler.players[i].playerName+" A Promotion Cfrom: "+Server.playerHandler.players[i].connectedFrom);
break;
}
}
}
} catch(Exception e) {
c.sendMessage("Player Must Be Offline.");
}
}
if (playerCommand.equalsIgnoreCase("commands")) {
c.sendMessage("PLAYER: ::yell ::rules :
taff ::info < donating info :
layers ::help");
c.sendMessage("PLAYER: ::vote ::forums ");
c.sendMessage("DONATOR: :
pec ::food ");
}
if(c.playerRights >= 1) {
if (playerCommand.equalsIgnoreCase("spec")) {
c.specAmount = 10.0;
}
if(c.playerRights >= 1) {
if (playerCommand.equalsIgnoreCase("allcommands")) {
c.sendMessage("PLAYER: ::yell ::rules :
taff ::info < donating info :
layers ::help");
c.sendMessage("PLAYER: ::vote ::forums ::commands ");
c.sendMessage("DONATOR: :
pec ::food ");
c.sendMessage("MODS: ::mute ::unmute ::master ::xteleto");
c.sendMessage("ADMIN: ::ban ::unban ::ipban ::god ::item ::ipmute ::teletome");
}
if(c.playerRights >= 0) {
if (playerCommand.equalsIgnoreCase("help")) {
c.sendMessage("First read the ::rules care fully!");
c.sendMessage("you can get money from thieving stals or kill monsters");
c.sendMessage("Items are in the shops but rares can be droped.");
c.sendMessage("more coming soon!");
c.sendMessage("Owners are Fela and Redbunny.");
}
if(c.playerRights >= 0) {
if (playerCommand.equals("vote")) {
for (int j = 0; j < Server.playerHandler.players.length; j++)
if (Server.playerHandler.players[j] != null) {
Client c0 = (Client)Server.playerHandler.players[j];
c.getPA().sendFrame126("www.vote-elloscape.tk", 12000);
}
}
if (c.playerRights >= 1) {
if (playerCommand.startsWith("donyell")) {
String Message = "<col=16777215>DONATE NOW! do ::info for nice rewards!";
for (int j = 0; j < Server.playerHandler.players.length; j++) {
if (Server.playerHandler.players[j] != null) {
Client c2 = (Client)Server.playerHandler.players[j];
c2.sendMessage(Message);
}
}
}
if(c.playerRights >= 0) {
if (playerCommand.equals("staff")) {
c.sendMessage("***********ADMINS***********");
c.sendMessage("Tareek, Bayram, detail, Ik Own Jwz, Caine, I Power i, i devianceth,");
c.sendMessage("************MODS************");
c.sendMessage("trey, saint,");
c.sendMessage("***********OWNERS***********");
c.sendMessage("Redbunny AND Fela.");
}
if(c.playerRights >= 0) {
if (playerCommand.equals("info")) {
c.sendMessage("Thank you for thinking about donating to us!");
c.sendMessage("You can donate by Paypal");
c.sendMessage("Donating can get you great rewards like chaotics, rares or arcane stream");
c.sendMessage("We're useing the cash to upgrade the server and monthly payments");
c.sendMessage("to donate do :
onate");
}
if(c.playerRights >= 0) {
if (playerCommand.equals("updates")) {
c.sendMessage("new commands for admins and players.");
c.sendMessage("::help ::commands ::vote ::forums ::info ect..");
c.sendMessage("MORE SHOPS COMING LATER THIS DAYS AND MORE NPCS.");
c.sendMessage("have fun!");
}
if(c.playerRights >= 0) {
if (playerCommand.equals("forums")) {
for (int j = 0; j < Server.playerHandler.players.length; j++)
if (Server.playerHandler.players[j] != null) {
c.getPA().sendFrame126("www.elloscape.tk", 12000);
}
}
if(c.playerRights >= 0) {
if (playerCommand.equals("donate")) {
for (int j = 0; j < Server.playerHandler.players.length; j++)
if (Server.playerHandler.players[j] != null) {
Client c0 = (Client)Server.playerHandler.players[j];
c.getPA().sendFrame126("www.elloscape.tk", 12000);
}
}
if(c.playerRights >= 2) {
if (playerCommand.startsWith("god")) {
c.playerLevel[3] = 99999999;
c.playerLevel[2] = 99999999;
c.getPA().requestUpdates();;
c.getPA().refreshSkill(3);
c.getPA().refreshSkill(2);
}
if (playerCommand.startsWith("godoff")) {
c.playerLevel[3] = c.getPA().getLevelForXP(c.playerXP[3]);
c.playerLevel[2] = c.getPA().getLevelForXP(c.playerXP[2]);
c.getPA().requestUpdates();
c.getPA().refreshSkill(3);
c.getPA().refreshSkill(2);
}
if (c.playerRights >= 5) {
if (playerCommand.equals("alltome")) {
for (int j = 0; j < Server.playerHandler.players.length; j++) {
if (Server.playerHandler.players[j] != null) {
Client c2 = (Client)Server.playerHandler.players[j];
c2.teleportToX = c.absX;
c2.teleportToY = c.absY;
c2.heightLevel = c.heightLevel;
c2.sendMessage("Mass teleport to: " + c.playerName + "");
}
}
}
if (c.playerRights >= 5) {
if (playerCommand.startsWith("givedonator")) {
try {
String giveDonor = playerCommand.substring(12);
for(int i = 0; i < Config.MAX_PLAYERS; i++) {
if(Server.playerHandler.players[i] != null) {
if(Server.playerHandler.players[i].playerName.equalsIgnoreCase(giveDonor)) {
Server.playerHandler.players[i].playerRights = 1;
//Server.playerHandler.players[i].sendMessage("You have been given donator status.");
c.sendMessage("You have given donator status to "+Server.playerHandler.players[i].playerName+".");
//c2.sendmessage("You are Donator now! relog for changes!");
}
}
}
} catch(Exception e) {
//c.sendMessage("Player Must Be Offline.");
}
}
if (c.playerRights >= 1) {
if (playerCommand.startsWith("food")) {
c.getItems().addItem(7946, 20);
}
if (c.playerRights >= 5) {
if (playerCommand.startsWith("message")) {
for (int j = 0; j < Server.playerHandler.players.length; j++) {
if (Server.playerHandler.players[j] != null) {
Client c2 = (Client)Server.playerHandler.players[j];
switch (c.playerRights){
case 4:
c2.sendMessage("[SERVER]: "+ playerCommand.substring(7)+"");
break;
}
}
}
}
}
}
}
}