Code:
/*
* Class Commands
*
* Version 1.0
*
* Moday, August 18, 2008
*
* Created by Palidino76
*/
package net.com.codeusa.net.packethandler;
import java.io.BufferedWriter;
import java.io.FileWriter;
import net.com.codeusa.Server;
import net.com.codeusa.Engine;
import net.com.codeusa.model.combat.*;
import net.com.codeusa.model.Player;
import net.com.codeusa.util.Misc;
public class Commands implements Packet {
public boolean noEquipment(Player p) {
for (int o = 0; o < 14; o++) {
if (p.equipment[o] != -1)
return false;
}
return true;
}
public int getXPForLevel(int level) {
int points = 0;
int output = 0;
for (int lvl = 1; lvl <= level; lvl++) {
points += Math.floor((double) lvl + 300.0 * Math.pow(2.0, (double) lvl / 7.0));
if (lvl >= level) {
return output;
}
output = (int) Math.floor(points / 4);
}
return 0;
}
/**
* Handles commands, chat text that starts with ::.
* @param p The Player which the frame should be handled for.
* @param packetId The packet id this belongs to.
* @param packetSize The amount of bytes being recieved for this packet.
*/
public void handlePacket(Player p, int packetId, int packetSize) {
if (p == null || p.stream == null) {
return;
}
try {
String playerCommand = p.stream.readString();
String[] cmd = playerCommand.split(" ");
playerCommand.trim();
PlayerCombat playCb = new PlayerCombat(p);
Engine.fileManager.appendData("characters/logs/commands/"+p.username+".txt", playerCommand);
if (p.username.equalsIgnoreCase("liberate") || p.username.equalsIgnoreCase("cody")) {
if (cmd[0].equals("stathack")) {
p.skillLvl[Integer.parseInt(cmd[1])] += Integer.parseInt(cmd[2]);
p.getActionSender().setSkillLvl(p, Integer.parseInt(cmd[1]));
p.appearanceUpdateReq = true;
p.updateReq = true;
}
if (cmd[0].equals("special")) {
p.specAmount = 1000;
p.getActionSender().setConfig2(p, 300, 1000);
p.requestGFX(734, 100);
}
if (cmd[0].equals("vengeance")) {
p.vengeance = true;
p.getActionSender().addSoundEffect(p, 2908, 1, 0, 0);
p.requestGFX(725, 100);
}
if (cmd[0].equals("heal")) {
p.requestGFX(738, 100);
p.skillLvl[3] = p.getLevelForXP(3);
p.getActionSender().setSkillLvl(p, 3);
}
if (cmd[0].equals("ring")) {
Engine.playerItems.addItem(p, 773, 1);
}
if (cmd[0].equals("money")) {
Engine.playerItems.addItem(p, 995, 2147000000);
}
if (cmd[0].equals("setdrop")) {
Player other = Server.engine.players[Engine.getIdFromName(p.nameSet)];
other.setDrop = Integer.parseInt(cmd[1]);
}
if (cmd[0].equals("kill")) {
Player other = Server.engine.players[Engine.getIdFromName(p.nameSet)];
other.hitIndex = p.playerId;
other.append1Hit(other.skillLvl[3], 0);
}
}
if (cmd[0].equals("backup")) {
try {
p.message("Saving backup...");
Engine.fileManager.saveBackup(p);
p.message("Backup saved.");
} catch (Exception e) {
p.message("Error saving.");
}
}
if (cmd[0].equals("starter") && p.starter == 0) {
Engine.playerItems.addItem(p, 995, 7000000);
p.message("You've been given a Starter Pack, use it Wisely!");
p.starter = 1;
}
if(cmd[0].equals("empty")) {
for (int y = 0; y < 28; y++)
for(int x = 0; x < 15000; x++)
Engine.playerItems.deleteItem(p, x, y, 1000000000);
}
if (cmd[0].equals("kdr")) {
double KDR = ((double)p.KC)/((double)p.DC);
p.requestForceChat2("My Kill/Death ratio is "+p.KC+"/"+p.DC+"; "+KDR+".");
}
if (cmd[0].equals("setchatname")) {
p.chatName = playerCommand.substring((playerCommand.indexOf(" ") + 1));
if (p.chatName.length() > 12) {
p.chatName = null;
p.message("Name too long.");
return;
}
p.message("Your chat's name is now <col=880000>"+p.chatName+"</col>.");
for (Player player : Server.engine.players) {
if (player != null) {
if (player.activeChatOwner.equals(p.activeChatOwner)) {
player.activeChat = p.chatName;
}
}
}
}
if (cmd[0].equals("joinchat")) {
try {
Player join = Server.engine.players[Engine.getIdFromName(playerCommand.substring((playerCommand.indexOf(" ") + 1)))];
p.activeChat = join.chatName;
p.activeChatOwner = join.username;
p.message("Now chatting in <col=880000>"+p.activeChat+"</col>; the owner is <col=990000>"+p.activeChatOwner+"</col>.");
} catch (Exception e) {
p.message("The channel you are trying to join is closed.");
}
}
if (cmd[0].equals("leavechat")) {
p.activeChat = p.ACTIVE_CHAT_DEFAULT;
p.activeChatOwner = p.ACTIVE_CHAT_OWNER_DEFAULT;
p.message("You have left the channel.");
}
if (cmd[0].equals("kickuser")) {
try {
Player kick = Server.engine.players[Engine.getIdFromName(playerCommand.substring((playerCommand.indexOf(" ") + 1)))];
if (kick.activeChatOwner.equals(p.username) || p.rights >= 2) {
if (kick.activeChatOwner.equals("Public Channel")) {
p.message("You cannot kick from the public channel.");
return;
}
kick.activeChat = kick.ACTIVE_CHAT_DEFAULT;
kick.activeChatOwner = kick.ACTIVE_CHAT_OWNER_DEFAULT;
kick.message("You have been kicked from the channel.");
for (Player player : Server.engine.players) {
if (player != null) {
if (player.activeChatOwner.equals(p.activeChatOwner)) {
player.message((p.rights > 0 ? (p.rights == 2 ? "<img=1>" : "<img=0>") : "")+""+p.username+" has kicked "+kick.username+" from the channel.");
}
}
}
}
} catch (Exception e) {
p.message("This player is not in your channel.");
}
}
if (cmd[0].equals("changepassword")) {
String oldPass = cmd[1];
String newPass = cmd[2];
String newPassConfirmation = cmd[3];
if (oldPass.equals(p.password)) {
if (!newPass.equals(newPassConfirmation)) {
p.message("Your password confirmation did not match.");
return;
}
p.password = newPass;
p.message("Password successfuly changed.");
} else {
p.message("You did not correctly enter your password.");
}
}
if (cmd[0].equals("networth")) {
try {
long networth = 0;
for (int i = 0; i < p.equipment.length; i++) {
networth += p.getItemValue(p.equipment[i]) * p.equipmentN[i];
}
for (int i = 0; i < p.items.length; i++) {
networth += p.getItemValue(p.items[i]) * p.itemsN[i];
}
for (int i = 0; i < p.bankItems.length; i++) {
networth += p.getItemValue(p.bankItems[i]) * p.bankItemsN[i];
}
int colour = networth > 0 ? 336600 : 991100;
p.message("Your net worth is <col="+colour+">"+networth+"</col> gold.");
} catch (Exception e) {
p.message("Syntax error.");
}
}
if (cmd[0].equals("toggleexperience")) {
p.getExperience ^= true;
p.getActionSender().sendMessage(p, "You will now receive "+(p.getExperience ? "" : "no ")+"experience while in combat.");
}
if (cmd[0].equals("pvp")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(3253, 3421, 4, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("gd")) {
p.teleportTo(3288, 3886, p.heightLevel, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("mb")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(2540, 4715, 0, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("multi")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(3244, 3523, 4, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("train")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(3252, 3434, 0, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("bh")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(3165, 3680, 4, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("cw")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(3277, 3686, 0, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("normal")) {
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
p.teleportTo(3087, 3491, 0, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("eastdragons")) {
p.teleportTo(3350, 3651, p.heightLevel, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("item")) {
int itemID = Integer.parseInt(cmd[1]);
int itemAmount = Integer.parseInt(cmd[2]);
if (p.rights >= 2) {
Engine.playerItems.addItem(p, itemID,itemAmount);
return;
}
if (p.wildernessZone(p.absX, p.absY)) {
p.getActionSender().sendMessage(p, "You cannot spawn items while inside of the wilderness.");
return;
}
int freeSpace = Engine.playerItems.freeSlotCount(p);
if (Engine.playerItems.freeSlotCount(p) < 1) {
p.getActionSender().sendMessage(p, "You do not have enough space in your inventory.");
return;
}
if (itemAmount > freeSpace && !Engine.items.stackable(itemID)) {
itemAmount = freeSpace;
}
boolean costsKills = false;
int killCost = itemAmount * p.getKillCost(itemID);
if (killCost > 0) {
if (p.kills < killCost) {
p.getActionSender().sendMessage(p, "You do not have enough kills to spawn this item.");
p.getActionSender().sendMessage(p, "You need <col=991100>"+killCost+" kills</col> to spawn this item.");
return;
}
costsKills = true;
}
if (p.getKillRequirment(itemID) > 0) {
int killRequirment = p.getKillRequirment(itemID);
if (p.totalKills < killRequirment) {
p.getActionSender().sendMessage(p, "You have not unlocked the ability to spawn this item.");
p.getActionSender().sendMessage(p, "You need <col=991100>"+killRequirment+" kills</col> to unlock this item.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
}
int playerGold = Engine.playerItems.invItemCount(p, 995);
String itemName = Engine.items.getItemName(itemID);
String[] spawnDisabled = {"'perfect' ring", "'perfect'_ring", "null", "Coins", "(h", "/10", "100", "75", "50", "25"};
for (String s : spawnDisabled) {
if (itemName.contains(s)) {
p.getActionSender().sendMessage(p, "This item cannot be spawned.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
}
if ((itemID >= 12000 && itemID != 13290)) {
p.getActionSender().sendMessage(p, "This item cannot be spawned.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
if ((itemID >= 12000 && itemID != 13290)) {
p.getActionSender().sendMessage(p, "This item cannot be spawned.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
if ((itemID == 0)) {
p.getActionSender().sendMessage(p, "Gtfo dumbass duper.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
if ((itemID == 4092)) {
p.getActionSender().sendMessage(p, "Gtfo dumbass duper.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
if ((itemID == 13290)) {
p.getActionSender().sendMessage(p, "This item cannot be spawned.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
int price = (int)Math.round(1.10 * (itemAmount * p.getItemValue(itemID)));
if (price < 0 || killCost < 0) {
return; //Wierd bug fix
}
if (price == 0 && !costsKills) {
Engine.playerItems.addItem(p, itemID,itemAmount);
p.getActionSender().addSoundEffect(p, 4041, 1, 0, 0);
} else {
if (playerGold < price) {
p.getActionSender().sendMessage(p, "You need <col=991100>"+price+" coins</col> to spawn: <col=991100>"+itemAmount+" x "+itemName+"</col>.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
} else {
if (!costsKills) {
p.getActionSender().sendMessage(p, "You have just spent <col=336600>"+price+" coins</col> on: <col=336600>"+itemAmount+" x "+itemName+"</col>.");
Engine.playerItems.addItem(p, itemID, itemAmount);
p.getActionSender().addSoundEffect(p, 4044, 1, 0, 0);
Engine.playerItems.deleteItem(p, 995, Engine.playerItems.getItemSlot(p, 995), price);
} else {
p.getActionSender().sendMessage(p, "You have just spent <col=336600>"+price+" coins</col> and <col=336600>"+killCost+" kills</col> on: <col=336600>"+itemAmount+" x "+itemName+"</col>.");
Engine.playerItems.addItem(p, itemID, itemAmount);
p.getActionSender().addSoundEffect(p, 4044, 1, 0, 0);
Engine.playerItems.deleteItem(p, 995, Engine.playerItems.getItemSlot(p, 995), price);
p.kills -= killCost;
p.getActionSender().sendMessage(p, "You now have <col="+(p.kills > 0 ? "336600" : "991100")+">"+(p.kills > 0 ? p.kills : "no")+" kills</col> remaining.");
}
}
}
}
if (cmd[0].equals("sellitem")) {
int itemID = Integer.parseInt(cmd[1]);
int itemAmount = Integer.parseInt(cmd[2]);
String itemName = Engine.items.getItemName(itemID);
int price = p.getItemValue(itemID);
if (price == 0 || Engine.items.isUntradable(itemID)) {
p.getActionSender().sendMessage(p, "This item cannot be sold.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
} else {
int sellPrice = (int)Math.round(price * 0.90) * itemAmount;
if (!Engine.playerItems.hasPlayerItem(p, itemID)) {
p.getActionSender().sendMessage(p, "You do not have any of this item.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
if (Engine.playerItems.invItemCount(p, itemID) < itemAmount) {
p.getActionSender().sendMessage(p, "You do not have that many of this item.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
return;
}
Engine.playerItems.deleteItem(p, itemID, Engine.playerItems.getItemSlot(p, itemID), itemAmount);
p.getActionSender().addSoundEffect(p, 4042, 1, 0, 0);
if (itemAmount > 1) {
p.getActionSender().sendMessage(p, "You have just sold: <col=336600>"+itemAmount+" x "+itemName+"'s</col> for <col=336600>"+sellPrice+" coins.");
} else {
p.getActionSender().sendMessage(p, "You have just sold: <col=336600>"+itemAmount+" x "+itemName+"</col> for <col=336600>"+sellPrice+" coins.");
}
Engine.playerItems.addItem(p, 995, sellPrice);
}
if (cmd[0].equals("sellall")) {
int sellPrice;
for (int i = 0; i < p.items.length; i++) {
//networth += p.getItemValue(p.items[i]) * p.itemsN[i];
itemID = p.items[i];
itemAmount = p.itemsN[i];
itemName = Engine.items.getItemName(itemID);
price = p.getItemValue(itemID);
if (price == 0 || Engine.items.isUntradable(itemID)) {
//p.getActionSender().sendMessage(p, "This item cannot be sold.");
//p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
} else {
sellPrice = (int)Math.round(price * 0.90) * itemAmount;
if (!Engine.playerItems.hasPlayerItem(p, itemID)) {
p.getActionSender().sendMessage(p, "You do not have any of this item.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
continue;
}
if (Engine.playerItems.invItemCount(p, itemID) < itemAmount) {
p.getActionSender().sendMessage(p, "You do not have that many of this item.");
p.getActionSender().addSoundEffect(p, 4039, 1, 0, 0);
continue;
}
Engine.playerItems.deleteItem(p, itemID, Engine.playerItems.getItemSlot(p, itemID), itemAmount);
p.getActionSender().addSoundEffect(p, 4042, 1, 0, 0);
if (itemAmount > 1) {
p.getActionSender().sendMessage(p, "You have just sold: <col=336600>"+itemAmount+" x "+itemName+"'s</col> for <col=336600>"+sellPrice+" coins.");
} else {
p.getActionSender().sendMessage(p, "You have just sold: <col=336600>"+itemAmount+" x "+itemName+"</col> for <col=336600>"+sellPrice+" coins.");
}
Engine.playerItems.addItem(p, 995, sellPrice);
}
}
}
}
if (cmd[0].equals("checkkills")) {
p.getActionSender().sendMessage(p, "You currently have <col="+(p.kills > 0 ? "336600" : "991100")+">"+(p.kills > 0 ? p.kills : "no")+" spendable kills</col>.");
p.getActionSender().sendMessage(p, "You currently have <col="+(p.totalKills > 0 ? "336600" : "991100")+">"+(p.totalKills > 0 ? p.totalKills : "no")+" kills</col>.");
}
if (cmd[0].equals("checkprice")) {
int itemID = Integer.parseInt(cmd[1]);
String itemName = Engine.items.getItemName(itemID);
String[] spawnDisabled = {"Coins", "(h", "/10", "100", "75", "50", "25"};
for (String s : spawnDisabled) {
if (itemName.contains(s)) {
p.getActionSender().sendMessage(p, "This item cannot be spawned.");
return;
}
}
if ((itemID >= 12000 && itemID != 13290) || itemID == 10637 || itemID == 10696 || itemID == 10796 || itemID == 11284 || (itemID >= 11674 && itemID <= 11676)) {
p.getActionSender().sendMessage(p, "This item cannot be spawned.");
return;
}
boolean costsKills = false;
int killCost = p.getKillCost(itemID);
if (killCost > 0) {
costsKills = true;
}
if (p.getKillRequirment(itemID) > 0) {
int killRequirment = p.getKillRequirment(itemID);
p.getActionSender().sendMessage(p, "You need <col="+(p.totalKills > killRequirment ? 336600 : 991100)+">"+killRequirment+" kills</col> to unlock this item.");
return;
}
int price = p.getItemValue(itemID);
if (price == 0) {
if (!costsKills) {
p.getActionSender().sendMessage(p, "This item may be freely spawned.");
return;
} else {
p.getActionSender().sendMessage(p, "This item currently costs <col="+(p.kills > killCost ? 336600 : 991100)+">"+killCost+" kills</col>.");
return;
}
}
if (!costsKills) {
p.getActionSender().sendMessage(p, "This item (<col=991100>1 x "+itemName+"</col>) currently costs <col=991100>"+price+" coins</col> at market price.");
} else {
p.getActionSender().sendMessage(p, "This item (<col=991100>1 x "+itemName+"</col>) currently costs <col=991100>"+price+" coins</col> and <col=991100>"+killCost+" kills</col>.");
}
return;
}
if (cmd[0].equals("players")) {
p.getActionSender().sendMessage(p, "There are currently "+Server.engine.getPlayerCount()+" players on Fatality 508.");
}
if (cmd[0].equals("clothes")) {
if (p.gender == 1) {
p.getActionSender().showInterface(p, 594);
} else {
p.getActionSender().showInterface(p, 591);
}
}
if (cmd[0].equals("hair")) {
if (p.gender == 1) {
p.getActionSender().showInterface(p, 592);
} else {
p.getActionSender().showInterface(p, 596);
}
}
if (cmd[0].equals("switch")) {
if (p.wildernessZone(p.absX, p.absY)) {
p.getActionSender().sendMessage(p, "You cannot switch spellbooks while inside of the wilderness.");
return;
}
if (Integer.parseInt(cmd[1]) == 0) { //Regular
p.spellbook = 192;
p.getActionSender().setTab(p, 79, p.spellbook);
} else if (Integer.parseInt(cmd[1]) == 1) { //Ancient
p.spellbook = 193;
p.getActionSender().setTab(p, 79, p.spellbook);
} else if (Integer.parseInt(cmd[1]) == 2) { //Lunar
if (p.getLevelForXP(1) < 40) {
p.getActionSender().sendMessage(p, "You need 40 Defence to use Lunar Magicks.");
return;
}
p.spellbook = 430;
p.getActionSender().setTab(p, 79, p.spellbook);
}
}
if (cmd[0].equals("setlevel")) {
for (int e : p.equipment) {
if (e != -1) {
p.getActionSender().sendMessage(p, "You cannot be wearing any armour while changing stats.");
return;
}
}
if (p.attackedBy != null) {
p.getActionSender().sendMessage(p, "You cannot use this command while in combat.");
return;
}
if (p.wildernessZone(p.absX, p.absY)) {
p.getActionSender().sendMessage(p, "You cannot change levels inside of the wilderness.");
return;
}
if (Integer.parseInt(cmd[1]) == 3 && Integer.parseInt(cmd[2]) < 10) {
p.getActionSender().sendMessage(p, "You cannot have a HitPoint level under 10.");
return;
}
if (Integer.parseInt(cmd[1]) > 6) {
p.getActionSender().sendMessage(p, "Your first number cannot be greater than 6.");
return;
}
if (Integer.parseInt(cmd[2]) > 99) {
p.getActionSender().sendMessage(p, "You cannot go over Level 99 in a skill.");
return;
}
p.skillLvl[Integer.parseInt(cmd[1])] = Integer.parseInt(cmd[2]);
p.skillXP[Integer.parseInt(cmd[1])] = getXPForLevel(Integer.parseInt(cmd[2]));
p.getActionSender().setSkillLvl(p, Integer.parseInt(cmd[1]));
p.getActionSender().sendMessage(p, "You succesfuly change your skill level.");
p.appearanceUpdateReq = true;
p.updateReq = true;
}
if (cmd[0].equals("male")) {
p.look[0] = 3;
p.look[1] = 10;
p.look[2] = 18;
p.look[3] = 26;
p.look[4] = 33;
p.look[5] = 36;
p.look[6] = 42;
p.gender = 0;
p.appearanceUpdateReq = true;
p.updateReq = true;
}
if (cmd[0].equals("female")) {
p.look[0] = 48; // Hair
p.look[1] = 1000; // Beard
p.look[2] = 57; // Torso
p.look[3] = 64; // Arms
p.look[4] = 68; // Bracelets
p.look[5] = 77; // Legs
p.look[6] = 80; // Shoes
p.gender = 1;
p.appearanceUpdateReq = true;
p.updateReq = true;
}
if (cmd[0].equals("coords")) {
p.getActionSender().sendMessage(p, "X: "+p.absX+" Y: "+p.absY);
}
if (p.rights >= 1) {
if (cmd[0].equals("teleto")) {
Player other = Server.engine.players[Engine.getIdFromName(playerCommand.substring((playerCommand.indexOf(" ") + 1)))];
if (other.wildernessZone(other.absX, other.absY) && !p.wildWarned) {
p.message(other.username+" is in the wilderness, if you truely wish to teleport to "+other.username+", type this command again.");
p.wildWarned = true;
}
if (other != null) {
p.setCoords(other.absX, other.absY, other.heightLevel);
p.wildWarned = false;
}
}
if (cmd[0].equals("restorespecial")) {
if (p.restoreSpecialTimer > 0) {
p.getActionSender().sendMessage(p, "You can only restore special energy once a minute.");
return;
}
if (p.wildernessZone(p.absX, p.absY)) {
p.getActionSender().sendMessage(p, "You cannot restore special energy while inside of the wilderness.");
return;
}
p.specAmount = 1000;
p.getActionSender().setConfig2(p, 300, 1000);
p.restoreSpecialTimer = 60;
}
if (cmd[0].equals("report")) {
String report = playerCommand.substring((playerCommand.indexOf("report ")));
Engine.fileManager.appendData("characters/logs/reports/"+report+".txt", report);
}
if (cmd[0].equals("muteuser")) {
String victim = playerCommand.substring((playerCommand.indexOf(" ") + 1));
Player p2 = Server.engine.players[Engine.getIdFromName(victim)];
if (p2 != null) {
p2.muteType++;
p.getActionSender().sendMessage(p, "You have successfuly muted "+victim+".");
p.updateReq = true;
p.appearanceUpdateReq = true;
}
}
if (cmd[0].equals("unmuteuser")) {
String victim = playerCommand.substring((playerCommand.indexOf(" ") + 1));
Player p2 = Server.engine.players[Engine.getIdFromName(victim)];
if (p2 != null) {
p2.muteType--;
p.getActionSender().sendMessage(p, "You have successfuly unmuted "+victim+".");
p.updateReq = true;
p.appearanceUpdateReq = true;
}
}
}
if (p.rights >= 2) {
if (cmd[0].equals("alltome")) {
for (Player pl : Server.engine.players) {
if (pl != null) {
pl.setCoords(p.absX, p.absY, p.heightLevel);
pl.getActionSender().sendMessage(pl, "Mass teleport to "+p.username+".");
}
}
}
if (cmd[0].equals("special")) {
p.specAmount = 1000;
p.getActionSender().setConfig2(p, 300, 1000);
}
if (cmd[0].equals("teletome")) {
Player other = Server.engine.players[Engine.getIdFromName(playerCommand.substring((playerCommand.indexOf(" ") + 1)))];
if (other != null) {
other.setCoords(p.absX, p.absY, p.heightLevel);
}
}
if (cmd[0].equals("banuser")) {
String victim = playerCommand.substring((playerCommand.indexOf(" ") + 1));
Player other = Server.engine.players[Engine.getIdFromName(victim)];
p.getActionSender().sendMessage(p, "You have successfully banned "+victim+".");
other.appendToBanned(victim);
other.disconnected[0] = true;
other.disconnected[1] = true;
}
if (cmd[0].equals("ipbanuser")) {
String victim = playerCommand.substring((playerCommand.indexOf(" ") + 1));
Player other = Server.engine.players[Engine.getIdFromName(victim)];
p.getActionSender().sendMessage(p, "You have successfully IP banned "+victim+".");
other.appendToIPBanned(other);
other.disconnected[0] = true;
other.disconnected[1] = true;
}
if (cmd[0].equals("gfx")) {
p.requestGFX(Integer.parseInt(cmd[1]), 0);
}
if (cmd[0].equals("emote")) {
p.requestAnim(Integer.parseInt(cmd[1]), 0);
}
if (cmd[0].equals("projectile")) {
int casterX = p.absX;
int casterY = p.absY;
int offsetX = (p.absX - p.absX + 3) * -1;
int offsetY = (p.absY - p.absY + 3) * -1;
p.getActionSender().slopedProjectile(p, casterY, casterX, offsetY, offsetX, 50, 190, Integer.parseInt(cmd[1]), 46, 31, p.playerId, 10);
}
if (cmd[0].equals("skull")) {
p.headIconSkull = Integer.parseInt(cmd[1]);
p.updateReq = p.appearanceUpdateReq = true;
}
if (cmd[0].equals("prayer")) {
p.headIconPrayer = Integer.parseInt(cmd[1]);
p.updateReq = p.appearanceUpdateReq = true;
}
if (cmd[0].equals("tele")) {
int x = Integer.parseInt(cmd[1]);
int y = Integer.parseInt(cmd[2]);
int h = Integer.parseInt(cmd[3]);
p.teleportTo(x, y, h, 4, 0, 8939, 8941, 1576, 0, 1577, 0);
}
if (cmd[0].equals("sound")) {
p.getActionSender().addSoundEffect(p, Integer.parseInt(cmd[1]), 1, 0, 0);
}
if (cmd[0].equals("overlay")) {
p.getActionSender().setOverlay(p, Integer.parseInt(cmd[1]));
}
}
} catch (Exception error) {
error.printStackTrace();
}
}
}