Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.rs.net.decoders;
- import java.io.File;
- import java.io.IOException;
- import com.rs.Settings;
- import com.rs.cache.loaders.ItemDefinitions;
- import com.rs.game.Animation;
- import com.rs.game.World;
- import com.rs.game.WorldObject;
- import com.rs.game.WorldTile;
- import com.rs.game.item.FloorItem;
- import com.rs.game.item.Item;
- import com.rs.game.item.MagicOnItem;
- import com.rs.game.minigames.clanwars.ClanWars;
- import com.rs.game.minigames.creations.StealingCreation;
- import com.rs.game.minigames.duel.DuelArena;
- import com.rs.game.minigames.soulwars.SoulWarsManager;
- import com.rs.game.npc.NPC;
- import com.rs.game.npc.familiar.Familiar;
- import com.rs.game.npc.familiar.Familiar.SpecialAttack;
- import com.rs.game.npc.instances.Instance;
- import com.rs.game.player.CoordsEvent;
- import com.rs.game.player.Inventory;
- import com.rs.game.player.LogicPacket;
- import com.rs.game.player.Player;
- import com.rs.game.player.PublicChatMessage;
- import com.rs.game.player.QuickChatMessage;
- import com.rs.game.player.Skills;
- import com.rs.game.player.actions.OrbOnObelisk;
- import com.rs.game.player.actions.PlayerCombat;
- import com.rs.game.player.actions.PlayerFollow;
- import com.rs.game.player.actions.summoning.Summoning;
- import com.rs.game.player.content.Shop;
- import com.rs.game.player.content.Commands;
- import com.rs.game.player.content.FriendChatsManager;
- import com.rs.game.player.content.Magic;
- import com.rs.game.player.content.SkillCapeCustomizer;
- import com.rs.game.player.content.Vote;
- import com.rs.game.player.content.WellOfGoodwill;
- import com.rs.game.player.content.clans.ClansManager;
- import com.rs.game.player.controlers.HouseControler;
- import com.rs.io.InputStream;
- import com.rs.io.OutputStream;
- import com.rs.net.Session;
- import com.rs.net.decoders.handlers.ButtonHandler;
- import com.rs.net.decoders.handlers.InventoryOptionsHandler;
- import com.rs.net.decoders.handlers.NPCHandler;
- import com.rs.net.decoders.handlers.ObjectHandler;
- import com.rs.utils.DisplayNames;
- import com.rs.utils.IPBanL;
- import com.rs.utils.IPMute;
- import com.rs.utils.Logger;
- import com.rs.utils.LoggingSystem;
- import com.rs.utils.SerializableFilesManager;
- import com.rs.utils.Utils;
- import com.rs.utils.huffman.Huffman;
- public final class WorldPacketsDecoder extends Decoder {
- private static final byte[] PACKET_SIZES = new byte[104];
- private final static int WALKING_PACKET = 8;
- private final static int MINI_WALKING_PACKET = 58;
- private final static int AFK_PACKET = -1;
- public final static int ACTION_BUTTON1_PACKET = 14;
- public final static int ACTION_BUTTON2_PACKET = 67;
- public final static int ACTION_BUTTON3_PACKET = 5;
- public final static int ACTION_BUTTON4_PACKET = 55;
- public final static int ACTION_BUTTON5_PACKET = 68;
- public final static int ACTION_BUTTON6_PACKET = 90;
- public final static int ACTION_BUTTON7_PACKET = 6;
- public final static int ACTION_BUTTON8_PACKET = 32;
- public final static int ACTION_BUTTON9_PACKET = 27;
- public final static int WORLD_MAP_CLICK = 38;
- public final static int ACTION_BUTTON10_PACKET = 96;
- public final static int RECEIVE_PACKET_COUNT_PACKET = 33;
- private final static int MAGIC_ON_ITEM_PACKET = 154;//
- private final static int PLAYER_OPTION_4_PACKET = 17;
- private final static int MOVE_CAMERA_PACKET = 103;
- private final static int INTERFACE_ON_OBJECT = 37;
- private final static int CLICK_PACKET = -1;
- private final static int MOUVE_MOUSE_PACKET = -1;
- private final static int KEY_TYPED_PACKET = -1;
- private final static int CLOSE_INTERFACE_PACKET = 54;
- private final static int COMMANDS_PACKET = 60;
- private final static int ITEM_ON_ITEM_PACKET = 3;
- private final static int IN_OUT_SCREEN_PACKET = -1;
- private final static int DONE_LOADING_REGION_PACKET = 30;
- private final static int PING_PACKET = 21;
- private final static int SCREEN_PACKET = 98;
- private final static int CHAT_TYPE_PACKET = 83;
- private final static int CHAT_PACKET = 53;
- private final static int PUBLIC_QUICK_CHAT_PACKET = -1;//86; can be abused to freeze client
- private final static int ADD_FRIEND_PACKET = 89;
- private final static int ADD_IGNORE_PACKET = 4;
- private final static int REMOVE_IGNORE_PACKET = 73;
- private final static int JOIN_FRIEND_CHAT_PACKET = 36;
- private final static int CHANGE_FRIEND_CHAT_PACKET = 22;
- private final static int KICK_FRIEND_CHAT_PACKET = 74;
- private final static int REMOVE_FRIEND_PACKET = 24;
- private final static int SEND_FRIEND_MESSAGE_PACKET = 82;
- private final static int SEND_FRIEND_QUICK_CHAT_PACKET = -1;//0; can be abused to freeze client
- private final static int OBJECT_CLICK1_PACKET = 26;
- private final static int OBJECT_CLICK2_PACKET = 59;
- private final static int OBJECT_CLICK3_PACKET = 40;
- private final static int OBJECT_CLICK4_PACKET = 23;
- private final static int OBJECT_CLICK5_PACKET = 80;
- private final static int OBJECT_EXAMINE_PACKET = 25;
- private final static int NPC_CLICK1_PACKET = 31;
- private final static int NPC_CLICK2_PACKET = 101;
- private final static int NPC_CLICK3_PACKET = 34;
- private final static int NPC_CLICK4_PACKET = 65;
- private final static int ATTACK_NPC = 20;
- private final static int PLAYER_OPTION_1_PACKET = 42;
- private final static int PLAYER_OPTION_2_PACKET = 46;
- private final static int PLAYER_OPTION_5_PACKET = 77;
- private final static int PLAYER_OPTION_6_PACKET = 49;
- private final static int PLAYER_OPTION_7_PACKET = 51;
- private final static int ITEM_TAKE_PACKET = 57;
- private final static int DIALOGUE_CONTINUE_PACKET = 72;
- private final static int ENTER_INTEGER_PACKET = 81;
- private final static int ENTER_NAME_PACKET = 29;
- private final static int ENTER_STRING_PACKET = -1;
- private final static int SWITCH_INTERFACE_ITEM_PACKET = 76;
- private final static int INTERFACE_ON_PLAYER = 50;
- private final static int INTERFACE_ON_NPC = 66;
- private final static int COLOR_ID_PACKET = 97;
- private static final int NPC_EXAMINE_PACKET = 9;
- private final static int REPORT_ABUSE_PACKET = -1;
- private final static int GAME_MESSAGE_INVITATION_PACKET = 56;//clan invite
- private final static int ENTER_LONG_TEXT_PACKET = 48;//clan names and mottos
- private final static int CLAN_FORUM_THREAD_PACKET = 18;
- private final static int GE_SEARCH_PACKET = 71;
- //lobby
- private final static int LOBBY_MAIN_CLICK_PACKET = 91;
- private final static int LOBBY_FRIEND_CHAT_SETTINGS = 79;
- private final static int WORLD_LIST_UPDATE = 87;
- static {
- loadPacketSizes();
- }
- public static void loadPacketSizes() {
- PACKET_SIZES[0] = -1;
- PACKET_SIZES[1] = -2;
- PACKET_SIZES[2] = -1;
- PACKET_SIZES[3] = 16;
- PACKET_SIZES[4] = -1;
- PACKET_SIZES[5] = 8;
- PACKET_SIZES[6] = 8;
- PACKET_SIZES[7] = 3;
- PACKET_SIZES[8] = -1;
- PACKET_SIZES[9] = 3;
- PACKET_SIZES[10] = -1;
- PACKET_SIZES[11] = -1;
- PACKET_SIZES[12] = -1;
- PACKET_SIZES[13] = 7;
- PACKET_SIZES[14] = 8;
- PACKET_SIZES[15] = 6;
- PACKET_SIZES[16] = 2;
- PACKET_SIZES[17] = 3;
- PACKET_SIZES[18] = -1;
- PACKET_SIZES[19] = -2;
- PACKET_SIZES[20] = 3;
- PACKET_SIZES[21] = 0;
- PACKET_SIZES[22] = -1;
- PACKET_SIZES[23] = 9;
- PACKET_SIZES[24] = -1;
- PACKET_SIZES[25] = 9;
- PACKET_SIZES[26] = 9;
- PACKET_SIZES[27] = 8;
- PACKET_SIZES[28] = 4;
- PACKET_SIZES[29] = -1;
- PACKET_SIZES[30] = 0;
- PACKET_SIZES[31] = 3;
- PACKET_SIZES[32] = 8;
- PACKET_SIZES[33] = 4;
- PACKET_SIZES[34] = 3;
- PACKET_SIZES[35] = -1;
- PACKET_SIZES[36] = -1;
- PACKET_SIZES[37] = 17;
- PACKET_SIZES[38] = 4;
- PACKET_SIZES[39] = 4;
- PACKET_SIZES[40] = 9;
- PACKET_SIZES[41] = -1;
- PACKET_SIZES[42] = 3;
- PACKET_SIZES[43] = 7;
- PACKET_SIZES[44] = -2;
- PACKET_SIZES[45] = 7;
- PACKET_SIZES[46] = 3;
- PACKET_SIZES[47] = 4;
- PACKET_SIZES[48] = -1;
- PACKET_SIZES[49] = 3;
- PACKET_SIZES[50] = 11;
- PACKET_SIZES[51] = 3;
- PACKET_SIZES[52] = -1;
- PACKET_SIZES[53] = -1;
- PACKET_SIZES[54] = 0;
- PACKET_SIZES[55] = 8;
- PACKET_SIZES[56] = 3;
- PACKET_SIZES[57] = 7;
- PACKET_SIZES[58] = -1;
- PACKET_SIZES[59] = 9;
- PACKET_SIZES[60] = -1;
- PACKET_SIZES[61] = 7;
- PACKET_SIZES[62] = 7;
- PACKET_SIZES[63] = 12;
- PACKET_SIZES[64] = 4;
- PACKET_SIZES[65] = 3;
- PACKET_SIZES[66] = 11;
- PACKET_SIZES[67] = 8;
- PACKET_SIZES[68] = 8;
- PACKET_SIZES[69] = 15;
- PACKET_SIZES[70] = 1;
- PACKET_SIZES[71] = 2;
- PACKET_SIZES[72] = 6;
- PACKET_SIZES[73] = -1;
- PACKET_SIZES[74] = -1;
- PACKET_SIZES[75] = -2;
- PACKET_SIZES[76] = 16;
- PACKET_SIZES[77] = 3;
- PACKET_SIZES[78] = 1;
- PACKET_SIZES[79] = 3;
- PACKET_SIZES[80] = 9;
- PACKET_SIZES[81] = 4;
- PACKET_SIZES[82] = -2;
- PACKET_SIZES[83] = 1;
- PACKET_SIZES[84] = 1;
- PACKET_SIZES[85] = 3;
- PACKET_SIZES[86] = -1;
- PACKET_SIZES[87] = 4;
- PACKET_SIZES[88] = 3;
- PACKET_SIZES[89] = -1;
- PACKET_SIZES[90] = 8;
- PACKET_SIZES[91] = -2;
- PACKET_SIZES[92] = -1;
- PACKET_SIZES[93] = -1;
- PACKET_SIZES[94] = 9;
- PACKET_SIZES[95] = -2;
- PACKET_SIZES[96] = 8;
- PACKET_SIZES[97] = 2;
- PACKET_SIZES[98] = 6;
- PACKET_SIZES[99] = 2;
- PACKET_SIZES[100] = -2;
- PACKET_SIZES[101] = 3;
- PACKET_SIZES[102] = 7;
- PACKET_SIZES[103] = 4;
- }
- private Player player;
- private int chatType;
- public WorldPacketsDecoder(Session session, Player player) {
- super(session);
- this.player = player;
- }
- @Override
- public void decode(InputStream stream) {
- while (stream.getRemaining() > 0 && session.getChannel().isConnected()
- && !player.hasFinished()) {
- int packetId = stream.readPacket(player);
- if (packetId >= PACKET_SIZES.length || packetId < 0) {
- if (Settings.DEBUG)
- System.out.println("PacketId " + packetId
- + " has fake packet id.");
- break;
- }
- int length = PACKET_SIZES[packetId];
- if (length == -1)
- length = stream.readUnsignedByte();
- else if (length == -2)
- length = stream.readUnsignedShort();
- else if (length == -3)
- length = stream.readInt();
- else if (length == -4) {
- length = stream.getRemaining();
- if (Settings.DEBUG)
- System.out.println("Invalid size for PacketId " + packetId
- + ". Size guessed to be " + length);
- }
- if (length > stream.getRemaining()) {
- length = stream.getRemaining();
- if (Settings.DEBUG)
- System.out.println("PacketId " + packetId
- + " has fake size. - expected size " + length);
- // break;
- }
- int startOffset = stream.getOffset();
- processPackets(packetId, stream, length);
- stream.setOffset(startOffset + length);
- }
- }
- public static void decodeLogicPacket(final Player player, LogicPacket packet) {
- int packetId = packet.getId();
- InputStream stream = new InputStream(packet.getData());
- if (packetId == WALKING_PACKET || packetId == MINI_WALKING_PACKET) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- long currentTime = Utils.currentTimeMillis();
- if (player.getLockDelay() > currentTime)
- return;
- if (player.getFreezeDelay() >= currentTime) {
- player.getPackets().sendGameMessage(
- "A magical force prevents you from moving.");
- return;
- }
- int length = stream.getLength();
- //if (packetId == MINI_WALKING_PACKET)
- // length -= 13;
- int baseX = stream.readUnsignedShort128();
- boolean forceRun = stream.readUnsigned128Byte() == 1;
- int baseY = stream.readUnsignedShort128();
- int steps = (length - 5) / 2;
- if (steps > 25)
- steps = 25;
- player.stopAll();
- if(forceRun)
- player.setRun(forceRun);
- for (int step = 0; step < steps; step++)
- if (!player.addWalkSteps(baseX + stream.readUnsignedByte(),
- baseY + stream.readUnsignedByte(), 25,
- true))
- break;
- /**
- * New, not fucking retarded routing system below
- */
- /*final int baseX = stream.readUnsignedShort128();
- final boolean forceRun = stream.readUnsigned128Byte() == 1;
- final int baseY = stream.readUnsignedShort128();
- final int xOffset = stream.readUnsignedByte();
- final int yOffset = stream.readUnsignedByte();
- final int real_x_coord = baseX + xOffset;
- final int real_y_coord = baseY + yOffset;
- if (real_y_coord == player.getY() && real_x_coord == player.getX())
- return;
- if (forceRun)
- player.setRun(forceRun);
- final WorldTile tile = new WorldTile(real_x_coord, real_y_coord, player.getPlane());
- if (tile != null) {
- player.stopAll();
- player.setRouteEvent(new RouteEvent(tile, new Runnable() {
- @Override
- public void run() {
- }
- }));
- }*/
- } else if (packetId == INTERFACE_ON_OBJECT) {
- boolean forceRun = stream.readByte128() == 1;
- int itemId = stream.readShortLE128();
- int y = stream.readShortLE128();
- int objectId = stream.readIntV2();
- int interfaceHash = stream.readInt();
- final int interfaceId = interfaceHash >> 16;
- final int componentId = interfaceHash - (interfaceId << 16);
- int slot = stream.readShortLE();
- int x = stream.readShort128();
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- long currentTime = Utils.currentTimeMillis();
- if (player.getLockDelay() >= currentTime || player.getEmotesManager().getNextEmoteEnd() >= currentTime)
- return;
- final WorldTile tile = new WorldTile(x, y, player.getPlane());
- int regionId = tile.getRegionId();
- if (!player.getMapRegionsIds().contains(regionId))
- return;
- WorldObject mapObject = World.getRegion(regionId).getObject(objectId, tile);
- if (mapObject == null || mapObject.getId() != objectId)
- return;
- final WorldObject object = !player.isAtDynamicRegion() ? mapObject : new WorldObject(objectId, mapObject.getType(), mapObject.getRotation(), x, y, player.getPlane());
- final Item item = player.getInventory().getItem(slot);
- if (player.isDead() || Utils.getInterfaceDefinitionsSize() <= interfaceId)
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- if (!player.getInterfaceManager().containsInterface(interfaceId))
- return;
- player.stopAll(false); // false
- if(forceRun)
- player.setRun(forceRun);
- switch (interfaceId) {
- case Inventory.INVENTORY_INTERFACE: // inventory
- if (item == null || item.getId() != itemId)
- return;
- ObjectHandler.handleItemOnObject(player, object, interfaceId, item);
- break;
- case 430://lunar interface
- Magic.processLunarSpell(player, componentId, object);
- break;
- case 192://reg magic inter
- switch (componentId) {
- case 60://WATER
- case 64://earth
- case 71://fire
- case 74://air
- if (object.getDefinitions().name.toLowerCase().contains("obelisk of")) {
- player.faceObject(object);
- OrbOnObelisk.handleMagicOnObject(player, componentId, object);
- }
- break;
- }
- break;
- }
- } else if (packetId == PLAYER_OPTION_6_PACKET) { @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player other = World.getPlayers().get(playerIndex);
- if (other == null || other.isDead() || other.hasFinished()
- || !player.getMapRegionsIds().contains(other.getRegionId()))
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- if (player.getInterfaceManager().containsScreenInter()) {
- player.getPackets()
- .sendGameMessage("The other player is busy.");
- return;
- }
- if (!other.withinDistance(player, 14)) {
- player.getPackets().sendGameMessage(
- "Unable to find target " + other.getDisplayName());
- return;
- }
- if (player.getAttackedByDelay() + 10000 > Utils.currentTimeMillis()) {
- player.getPackets()
- .sendGameMessage(
- "<col=B00000>You can't view "
- + other.getDisplayName()
- + " Stats's until 10 seconds after the end of combat.");
- return;
- }
- player.getInterfaceManager().sendInterface(1314);
- player.getPackets().sendIComponentText(1314, 91,
- "" + other.getDisplayName() + "'s stats");
- player.getPackets().sendIComponentText(1314, 30, "Prestige:");
- String mode = other.isEasy() ? "Easy" : other.isHard() ? "Hard" : other.isInsane() ? "Insane" : "Medium";
- String mode1 = other.isUltimate() ? "Ultimate" : other.isIronman() ? "Ironman" : "Regular";
- player.getPackets().sendIComponentText(1314, 90, mode1+", "+mode+".");
- player.getPackets().sendIComponentText(1314, 60, ""+other.prestigeNumber);
- player.getPackets().sendIComponentText(1314, 61,
- "" + other.getSkills().getLevel(0));
- player.getPackets().sendIComponentText(1314, 62,
- "" + other.getSkills().getLevel(2));
- player.getPackets().sendIComponentText(1314, 63,
- "" + other.getSkills().getLevel(1));
- player.getPackets().sendIComponentText(1314, 65,
- "" + other.getSkills().getLevel(4));
- player.getPackets().sendIComponentText(1314, 66,
- "" + other.getSkills().getLevel(5));
- player.getPackets().sendIComponentText(1314, 64,
- "" + other.getSkills().getLevel(6));
- player.getPackets().sendIComponentText(1314, 78,
- "" + other.getSkills().getLevel(20));
- player.getPackets().sendIComponentText(1314, 81,
- "" + other.getSkills().getLevel(22));
- player.getPackets().sendIComponentText(1314, 76,
- "" + other.getSkills().getLevel(24));
- player.getPackets().sendIComponentText(1314, 82,
- "" + other.getSkills().getLevel(3));
- player.getPackets().sendIComponentText(1314, 83,
- "" + other.getSkills().getLevel(16));
- player.getPackets().sendIComponentText(1314, 84,
- "" + other.getSkills().getLevel(15));
- player.getPackets().sendIComponentText(1314, 80,
- "" + other.getSkills().getLevel(17));
- player.getPackets().sendIComponentText(1314, 70,
- "" + other.getSkills().getLevel(12));
- player.getPackets().sendIComponentText(1314, 85,
- "" + other.getSkills().getLevel(9));
- player.getPackets().sendIComponentText(1314, 77,
- "" + other.getSkills().getLevel(18));
- player.getPackets().sendIComponentText(1314, 79,
- "" + other.getSkills().getLevel(21));
- player.getPackets().sendIComponentText(1314, 68,
- "" + other.getSkills().getLevel(14));
- player.getPackets().sendIComponentText(1314, 69,
- "" + other.getSkills().getLevel(13));
- player.getPackets().sendIComponentText(1314, 74,
- "" + other.getSkills().getLevel(10));
- player.getPackets().sendIComponentText(1314, 75,
- "" + other.getSkills().getLevel(7));
- player.getPackets().sendIComponentText(1314, 73,
- "" + other.getSkills().getLevel(11));
- player.getPackets().sendIComponentText(1314, 71,
- "" + other.getSkills().getLevel(8));
- player.getPackets().sendIComponentText(1314, 72,
- "" + other.getSkills().getLevel(19));
- player.getPackets().sendIComponentText(1314, 67,
- "" + other.getSkills().getLevel(23));
- player.getPackets().sendIComponentText(1314, 87,
- "" + other.getMaxHitpoints());
- player.getPackets().sendIComponentText(1314, 86,
- "" + other.getSkills().getCombatLevelWithSummoning());
- player.getPackets().sendIComponentText(1314, 88,
- "" + other.getSkills().getTotalLevel(other));
- player.getPackets().sendIComponentText(1314, 89,
- "" + other.getSkills().getTotalXp(other));
- player.getTemporaryAttributes().put("finding_player",
- Boolean.FALSE);
- } else if (packetId == GAME_MESSAGE_INVITATION_PACKET) {
- boolean forceRun = stream.readUnsignedByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2 == player || p2.isDead() || p2.hasFinished() || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- if (player.isLocked())
- return;
- if (forceRun)
- player.setRun(forceRun);
- player.stopAll();
- ClansManager.viewInvite(player, p2);
- } else if (packetId == PLAYER_OPTION_2_PACKET) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2.isDead() || p2.hasFinished()
- || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- player.stopAll(false);
- player.getActionManager().setAction(new PlayerFollow(p2));
- } else if (packetId == PLAYER_OPTION_5_PACKET) {//Rubber Chicken
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2.isDead() || p2.hasFinished()
- || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- player.faceEntity(p2);
- player.setNextAnimation(new Animation(1833));
- } else if (packetId == PLAYER_OPTION_7_PACKET) {
- @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player other = World.getPlayers().get(playerIndex);
- if (other == null || other.isDead() || other.hasFinished()
- || !player.getMapRegionsIds().contains(other.getRegionId()))
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- if (!other.withinDistance(player, 14)) {
- player.getPackets().sendGameMessage(
- "Unable to find target "+other.getDisplayName());
- return;
- }
- if (player.getRights() < 1 || player.getRights() > 4) {
- player.getPackets().sendGameMessage("You have insufficient privelages to use the Mod Panel.");
- return;
- }
- player.getDialogueManager().startDialogue("ModPanel", playerIndex);
- return;
- } else if (packetId == PLAYER_OPTION_4_PACKET) {
- @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2.isDead() || p2.hasFinished()
- || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- player.stopAll(false);
- if(player.isCantTrade()) {
- player.getPackets().sendGameMessage("You are busy.");
- return;
- }
- if (player.isTradeLocked() || p2.isTradeLocked()) {
- player.getPackets().sendGameMessage("<col=FF0000>Trade request has been denied.");
- return;
- }
- if (p2.getRights() == 3 && !p2.isAdminCanTrade()) {
- player.sm("The other player is busy.");
- return;
- }
- if (player.getRights() >= 2
- && !player.isAdminCanTrade() && !player.isOwner()
- || p2.getRights() >= 2 && !p2.isAdminCanTrade() && !p2.isOwner()) {
- player.getPackets().sendGameMessage("Administrators cannot trade.");
- return;
- }
- if (player.isIronman() || p2.isIronman()) {
- player.getPackets().sendGameMessage("Ironman accounts are not able to trade other players.");
- return;
- }
- if (p2.getInterfaceManager().containsScreenInter() || p2.isCantTrade()) { //|| player.getControlerManager().getControler() instanceof DuelArena || player.getControlerManager().getControler() instanceof DuelControler) {
- player.getPackets().sendGameMessage("The other player is busy.");
- return;
- }
- if (!p2.withinDistance(player, 14)) {
- player.getPackets().sendGameMessage(
- "Unable to find target "+p2.getDisplayName());
- return;
- }
- if (p2.getTemporaryAttributes().get("TradeTarget") == player) {
- p2.getTemporaryAttributes().remove("TradeTarget");
- player.getTrade().openTrade(p2);
- p2.getTrade().openTrade(player);
- return;
- }
- player.getTemporaryAttributes().put("TradeTarget", p2);
- player.getPackets().sendGameMessage("Sending " + p2.getDisplayName() + " a request...");
- p2.getPackets().sendTradeRequestMessage(player);
- } else if (packetId == PLAYER_OPTION_1_PACKET) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2.isDead() || p2.hasFinished()
- || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis()
- || !player.getControlerManager().canPlayerOption1(p2))
- return;
- if (!player.isCanPvp())
- return;
- if (!player.getControlerManager().canAttack(p2))
- return;
- if (!player.isCanPvp() || !p2.isCanPvp()) {
- player.getPackets()
- .sendGameMessage(
- "You can only attack players in a player-vs-player area.");
- return;
- }
- if (!p2.isAtMultiArea() || !player.isAtMultiArea()) {
- if (player.getAttackedBy() != p2
- && player.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "You are already in combat.");
- return;
- }
- if (p2.getAttackedBy() != player
- && p2.getAttackedByDelay() > Utils.currentTimeMillis()) {
- if (p2.getAttackedBy() instanceof NPC) {
- p2.setAttackedBy(player); // changes enemy to player,
- // player has priority over
- // npc on single areas
- } else {
- player.getPackets().sendGameMessage(
- "That player is already in combat.");
- return;
- }
- }
- }
- player.stopAll(false);
- player.getActionManager().setAction(new PlayerCombat(p2));
- } else if (packetId == ATTACK_NPC) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead()) {
- return;
- }
- if (player.getLockDelay() > Utils.currentTimeMillis()) {
- return;
- }
- int npcIndex = stream.readUnsignedShort128();
- boolean forceRun = stream.read128Byte() == 1;
- if(forceRun)
- player.setRun(forceRun);
- NPC npc = World.getNPCs().get(npcIndex);
- if (npc == null || npc.isDead() || npc.hasFinished()
- || !player.getMapRegionsIds().contains(npc.getRegionId())
- || !npc.getDefinitions().hasAttackOption()) {
- return;
- }
- if (!player.getControlerManager().canAttack(npc)) {
- return;
- }
- if (npc instanceof Familiar) {
- Familiar familiar = (Familiar) npc;
- if (familiar == player.getFamiliar()) {
- player.getPackets().sendGameMessage(
- "You can't attack your own familiar.");
- return;
- }
- if (!familiar.canAttack(player)) {
- player.getPackets().sendGameMessage(
- "You can't attack this npc.");
- return;
- }
- } else if (!npc.isForceMultiAttacked()) {
- if (!npc.isAtMultiArea() || !player.isAtMultiArea()) {
- if (player.getAttackedBy() != npc
- && player.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "You are already in combat.");
- return;
- }
- if (npc.getAttackedBy() != player
- && npc.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "This npc is already in combat.");
- return;
- }
- }
- }
- player.stopAll(false);
- player.getActionManager().setAction(new PlayerCombat(npc));
- } else if (packetId == INTERFACE_ON_PLAYER) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- int junk1 = stream.readUnsignedShort();
- int playerIndex = stream.readUnsignedShort();
- int interfaceHash = stream.readIntV2();
- @SuppressWarnings("unused")
- int junk2 = stream.readUnsignedShortLE128();
- @SuppressWarnings("unused")
- boolean unknown = stream.read128Byte() == 1;
- int interfaceId = interfaceHash >> 16;
- int componentId = interfaceHash - (interfaceId << 16);
- if (Utils.getInterfaceDefinitionsSize() <= interfaceId)
- return;
- if (!player.getInterfaceManager().containsInterface(interfaceId))
- return;
- if (componentId == 65535)
- componentId = -1;
- if (componentId != -1
- && Utils.getInterfaceDefinitionsComponentsSize(interfaceId) <= componentId)
- return;
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2.isDead() || p2.hasFinished()
- || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- player.stopAll(false);
- switch (interfaceId) {
- case 1110:
- if (componentId == 87)
- ClansManager.invite(player, p2);
- break;
- case Inventory.INVENTORY_INTERFACE:// Item on player
- //if (!player.getControlerManager().processItemOnPlayer(p2, junk1))
- // return;
- InventoryOptionsHandler.handleItemOnPlayer(player, p2, junk1);
- break;
- case 662:
- case 747:
- if (player.getFamiliar() == null)
- return;
- player.resetWalkSteps();
- if ((interfaceId == 747 && componentId == 15)
- || (interfaceId == 662 && componentId == 65)
- || (interfaceId == 662 && componentId == 74)
- || interfaceId == 747 && componentId == 18) {
- if ((interfaceId == 662 && componentId == 74
- || interfaceId == 747 && componentId == 24 || interfaceId == 747
- && componentId == 18)) {
- if (player.getFamiliar().getSpecialAttack() != SpecialAttack.ENTITY)
- return;
- }
- if (!player.isCanPvp() || !p2.isCanPvp()) {
- player.getPackets()
- .sendGameMessage(
- "You can only attack players in a player-vs-player area.");
- return;
- }
- if (!player.getFamiliar().canAttack(p2)) {
- player.getPackets()
- .sendGameMessage(
- "You can only use your familiar in a multi-zone area.");
- return;
- } else {
- player.getFamiliar().setSpecial(
- interfaceId == 662 && componentId == 74
- || interfaceId == 747
- && componentId == 18);
- player.getFamiliar().setTarget(p2);
- }
- }
- break;
- case 193:
- switch (componentId) {
- case 28:
- case 32:
- case 24:
- case 20:
- case 30:
- case 34:
- case 26:
- case 22:
- case 29:
- case 33:
- case 25:
- case 21:
- case 31:
- case 35:
- case 27:
- case 23:
- if (Magic.checkCombatSpell(player, componentId, 1, false)) {
- player.setNextFaceWorldTile(new WorldTile(p2
- .getCoordFaceX(p2.getSize()), p2
- .getCoordFaceY(p2.getSize()), p2.getPlane()));
- if (!player.getControlerManager().canAttack(p2))
- return;
- if (!player.isCanPvp() || !p2.isCanPvp()) {
- player.getPackets()
- .sendGameMessage(
- "You can only attack players in a player-vs-player area.");
- return;
- }
- if (!p2.isAtMultiArea() || !player.isAtMultiArea()) {
- if (player.getAttackedBy() != p2
- && player.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets()
- .sendGameMessage(
- "That "
- + (player
- .getAttackedBy() instanceof Player ? "player"
- : "npc")
- + " is already in combat.");
- return;
- }
- if (p2.getAttackedBy() != player
- && p2.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- if (p2.getAttackedBy() instanceof NPC) {
- p2.setAttackedBy(player); // changes enemy
- // to player,
- // player has
- // priority over
- // npc on single
- // areas
- } else {
- player.getPackets()
- .sendGameMessage(
- "That player is already in combat.");
- return;
- }
- }
- }
- player.getActionManager()
- .setAction(new PlayerCombat(p2));
- }
- break;
- }
- case 192:
- switch (componentId) {
- case 25: // air strike
- case 28: // water strike
- case 30: // earth strike
- case 32: // fire strike
- case 34: // air bolt
- case 39: // water bolt
- case 42: // earth bolt
- case 45: // fire bolt
- case 49: // air blast
- case 52: // water blast
- case 56: //magic dart
- case 58: // earth blast
- case 63: // fire blast
- case 70: // air wave
- case 73: // water wave
- case 77: // earth wave
- case 80: // fire wave
- case 86: // teleblock
- case 84: // air surge
- case 87: // water surge
- case 89: // earth surge
- case 91: // fire surge
- case 99: // storm of armadyl
- case 36: // bind
- case 66: // Sara Strike
- case 67: // Guthix Claws
- case 68: // Flame of Zammy
- case 55: // snare
- case 81: // entangle
- if (Magic.checkCombatSpell(player, componentId, 1, false)) {
- player.setNextFaceWorldTile(new WorldTile(p2
- .getCoordFaceX(p2.getSize()), p2
- .getCoordFaceY(p2.getSize()), p2.getPlane()));
- if (!player.getControlerManager().canAttack(p2))
- return;
- if (!player.isCanPvp() || !p2.isCanPvp()) {
- player.getPackets()
- .sendGameMessage(
- "You can only attack players in a player-vs-player area.");
- return;
- }
- if (!p2.isAtMultiArea() || !player.isAtMultiArea()) {
- if (player.getAttackedBy() != p2
- && player.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets()
- .sendGameMessage(
- "That "
- + (player
- .getAttackedBy() instanceof Player ? "player"
- : "npc")
- + " is already in combat.");
- return;
- }
- if (p2.getAttackedBy() != player
- && p2.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- if (p2.getAttackedBy() instanceof NPC) {
- p2.setAttackedBy(player); // changes enemy
- // to player,
- // player has
- // priority over
- // npc on single
- // areas
- } else {
- player.getPackets()
- .sendGameMessage(
- "That player is already in combat.");
- return;
- }
- }
- }
- player.getActionManager()
- .setAction(new PlayerCombat(p2));
- }
- break;
- }
- break;
- case 430:
- Magic.processLunarSpell(player, componentId, p2);
- break;
- }
- if (Settings.DEBUG)
- System.out.println("Spell:" + componentId);
- } else if (packetId == ENTER_LONG_TEXT_PACKET) {
- String value = stream.readString();
- if (value.equals(""))
- return;
- if (player.getInterfaceManager().containsInterface(1103))
- ClansManager.setClanMottoInterface(player, value);
- else if (player.getInterfaceManager().containsInterface(1094)) {
- if (Utils.invalidClanString(value))
- return;
- ClansManager.createClan(player, value);
- }
- } else if (packetId == CLAN_FORUM_THREAD_PACKET) {
- String value = stream.readString();
- if (value.equals(""))
- return;
- if (player.getInterfaceManager().containsInterface(1100))
- ClansManager.setThreadIdInterface(player, value);
- } else if (packetId == INTERFACE_ON_NPC) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- if (player.getLockDelay() > Utils.currentTimeMillis())
- return;
- @SuppressWarnings("unused")
- boolean unknown = stream.readByte() == 1;
- int interfaceHash = stream.readInt();
- int npcIndex = stream.readUnsignedShortLE();
- int interfaceSlot = stream.readUnsignedShortLE128();
- @SuppressWarnings("unused")
- int junk2 =stream.readUnsignedShortLE();
- int interfaceId = interfaceHash >> 16;
- int componentId = interfaceHash - (interfaceId << 16);
- if (Utils.getInterfaceDefinitionsSize() <= interfaceId)
- return;
- if (!player.getInterfaceManager().containsInterface(interfaceId))
- return;
- if (componentId == 65535)
- componentId = -1;
- if (componentId != -1
- && Utils.getInterfaceDefinitionsComponentsSize(interfaceId) <= componentId)
- return;
- NPC npc = World.getNPCs().get(npcIndex);
- if (npc == null || npc.isDead() || npc.hasFinished()
- || !player.getMapRegionsIds().contains(npc.getRegionId()))
- return;
- player.stopAll(false);
- if (interfaceId != Inventory.INVENTORY_INTERFACE) {
- if (!npc.getDefinitions().hasAttackOption()) {
- player.getPackets().sendGameMessage(
- "You can't attack this npc.");
- return;
- }
- }
- switch (interfaceId) {
- case Inventory.INVENTORY_INTERFACE:
- Item item = player.getInventory().getItem(interfaceSlot);
- if (item == null || !player.getControlerManager().processItemOnNPC(npc, item))
- return;
- InventoryOptionsHandler.handleItemOnNPC(player, npc, item);
- /*@SuppressWarnings("unused")
- //boolean unknown = stream.readByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (item == null || !player.getControlerManager().processItemOnPlayer(player, item))
- return;
- InventoryOptionsHandler.handleItemOnPlayer(player, npc, item);*/
- break;
- case 430://lunars
- Magic.processLunarOnNpc(player, componentId, npc);
- break;
- case 1165:
- Summoning.attackDreadnipTarget(npc, player);
- break;
- case 662:
- case 747:
- if (player.getFamiliar() == null)
- return;
- player.resetWalkSteps();
- if ((interfaceId == 747 && componentId == 15)
- || (interfaceId == 662 && componentId == 65)
- || (interfaceId == 662 && componentId == 74)
- || interfaceId == 747 && componentId == 18
- || interfaceId == 747 && componentId == 24) {
- if ((interfaceId == 662 && componentId == 74 || interfaceId == 747
- && componentId == 18)) {
- if (player.getFamiliar().getSpecialAttack() != SpecialAttack.ENTITY)
- return;
- }
- if(npc instanceof Familiar) {
- Familiar familiar = (Familiar) npc;
- if (familiar == player.getFamiliar()) {
- player.getPackets().sendGameMessage("You can't attack your own familiar.");
- return;
- }
- if (!player.getFamiliar().canAttack(familiar.getOwner())) {
- player.getPackets().sendGameMessage("You can only attack players in a player-vs-player area.");
- return;
- }
- }
- if (!player.getFamiliar().canAttack(npc)) {
- player.getPackets()
- .sendGameMessage(
- "You can only use your familiar in a multi-zone area.");
- return;
- } else {
- player.getFamiliar().setSpecial(
- interfaceId == 662 && componentId == 74
- || interfaceId == 747
- && componentId == 18);
- player.getFamiliar().setTarget(npc);
- }
- }
- break;
- case 193:
- switch (componentId) {
- case 28:
- case 32:
- case 24:
- case 20:
- case 30:
- case 34:
- case 26:
- case 22:
- case 29:
- case 33:
- case 25:
- case 21:
- case 31:
- case 35:
- case 27:
- case 23:
- if (Magic.checkCombatSpell(player, componentId, 1, false)) {
- player.setNextFaceWorldTile(new WorldTile(npc
- .getCoordFaceX(npc.getSize()), npc
- .getCoordFaceY(npc.getSize()), npc.getPlane()));
- if (!player.getControlerManager().canAttack(npc))
- return;
- if (npc instanceof Familiar) {
- Familiar familiar = (Familiar) npc;
- if (familiar == player.getFamiliar()) {
- player.getPackets().sendGameMessage(
- "You can't attack your own familiar.");
- return;
- }
- if (!familiar.canAttack(player)) {
- player.getPackets().sendGameMessage(
- "You can't attack this npc.");
- return;
- }
- } else if (!npc.isForceMultiAttacked()) {
- if (!npc.isAtMultiArea() || !player.isAtMultiArea()) {
- if (player.getAttackedBy() != npc
- && player.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "You are already in combat.");
- return;
- }
- if (npc.getAttackedBy() != player
- && npc.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "This npc is already in combat.");
- return;
- }
- }
- }
- player.getActionManager().setAction(
- new PlayerCombat(npc));
- }
- break;
- }
- case 192:
- switch (componentId) {
- case 25: // air strike
- case 28: // water strike
- case 30: // earth strike
- case 32: // fire strike
- case 34: // air bolt
- case 39: // water bolt
- case 42: // earth bolt
- case 45: // fire bolt
- case 49: // air blast
- case 52: // water blast
- case 56://magic dart
- case 58: // earth blast
- case 63: // fire blast
- case 70: // air wave
- case 73: // water wave
- case 77: // earth wave
- case 80: // fire wave
- case 84: // air surge
- case 87: // water surge
- case 89: // earth surge
- case 66: // Sara Strike
- case 67: // Guthix Claws
- case 68: // Flame of Zammy
- case 93:
- case 91: // fire surge
- case 99: // storm of Armadyl
- case 36: // bind
- case 55: // snare
- case 81: // entangle
- if (Magic.checkCombatSpell(player, componentId, 1, false)) {
- player.setNextFaceWorldTile(new WorldTile(npc
- .getCoordFaceX(npc.getSize()), npc
- .getCoordFaceY(npc.getSize()), npc.getPlane()));
- if (!player.getControlerManager().canAttack(npc))
- return;
- if (npc instanceof Familiar) {
- Familiar familiar = (Familiar) npc;
- if (familiar == player.getFamiliar()) {
- player.getPackets().sendGameMessage(
- "You can't attack your own familiar.");
- return;
- }
- if (!familiar.canAttack(player)) {
- player.getPackets().sendGameMessage(
- "You can't attack this npc.");
- return;
- }
- } else if (!npc.isForceMultiAttacked()) {
- if (!npc.isAtMultiArea() || !player.isAtMultiArea()) {
- if (player.getAttackedBy() != npc
- && player.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "You are already in combat.");
- return;
- }
- if (npc.getAttackedBy() != player
- && npc.getAttackedByDelay() > Utils
- .currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "This npc is already in combat.");
- return;
- }
- }
- }
- player.getActionManager().setAction(
- new PlayerCombat(npc));
- }
- break;
- }
- break;
- }
- if (Settings.DEBUG)
- System.out.println("Spell:" + componentId);
- } else if (packetId == NPC_CLICK1_PACKET)
- NPCHandler.handleOption1(player, stream);
- else if (packetId == NPC_CLICK2_PACKET)
- NPCHandler.handleOption2(player, stream);
- else if (packetId == NPC_CLICK3_PACKET)
- NPCHandler.handleOption3(player, stream);
- else if (packetId == NPC_CLICK4_PACKET)
- NPCHandler.handleOption4(player, stream);
- else if (packetId == OBJECT_CLICK1_PACKET)
- ObjectHandler.handleOption(player, stream, 1);
- else if (packetId == OBJECT_CLICK2_PACKET)
- ObjectHandler.handleOption(player, stream, 2);
- else if (packetId == OBJECT_CLICK3_PACKET)
- ObjectHandler.handleOption(player, stream, 3);
- else if (packetId == OBJECT_CLICK4_PACKET)
- ObjectHandler.handleOption(player, stream, 4);
- else if (packetId == OBJECT_CLICK5_PACKET)
- ObjectHandler.handleOption(player, stream, 5);
- else if (packetId == ITEM_TAKE_PACKET) {
- if (!player.hasStarted() || !player.clientHasLoadedMapRegion()
- || player.isDead())
- return;
- long currentTime = Utils.currentTimeMillis();
- if (player.getLockDelay() > currentTime)
- // || player.getFreezeDelay() >= currentTime)
- return;
- int y = stream.readUnsignedShort();
- int x = stream.readUnsignedShortLE();
- final int id = stream.readUnsignedShort();
- boolean forceRun = stream.read128Byte() == 1;
- final WorldTile tile = new WorldTile(x, y, player.getPlane());
- final int regionId = tile.getRegionId();
- if (!player.getMapRegionsIds().contains(regionId))
- return;
- final FloorItem item = World.getRegion(regionId).getGroundItem(id,
- tile, player);
- if (item == null || player == null || player.hasFinished())
- return;
- if (player.isIronman() && player != null && item.getOwner() != null
- && !item.getOwner().getUsername().equalsIgnoreCase(player.getUsername())
- || item.getOwner() == null && player != null && player.isIronman()) {
- player.getPackets().sendGameMessage("Sorry, you cannot pick up this item in ironman mode.");
- return;
- }
- player.stopAll(false);
- if(forceRun)
- player.setRun(forceRun);
- player.setCoordsEvent(new CoordsEvent(tile, new Runnable() {
- @Override
- public void run() {
- final FloorItem item = World.getRegion(regionId)
- .getGroundItem(id, tile, player);
- if (item == null)
- return;
- if (player.isIronman() && player != null && item.getOwner() != null
- && !item.getOwner().getUsername().equalsIgnoreCase(player.getUsername())
- || item.getOwner() == null && player != null && player.isIronman()) {
- player.getPackets().sendGameMessage("Sorry, you cannot pick up this item in ironman mode.");
- return;
- }
- /*if (player.getRights() > 0 || player.isSupporter())
- player.getPackets().sendGameMessage("This item was dropped by: "+item.getOwner().getUsername()+ " ("+item.getOwner().getDisplayName()+").");
- */
- player.setNextFaceWorldTile(tile);
- player.addWalkSteps(tile.getX(), tile.getY(), 1);
- World.removeGroundItem(player, item);
- }
- }, 1, 1));
- }
- }
- public void processPackets(final int packetId, InputStream stream,
- int length) {
- player.setPacketsDecoderPing(Utils.currentTimeMillis());
- if (packetId == PING_PACKET) {
- OutputStream packet = new OutputStream(0);
- packet.writePacket(player, 153);
- player.getSession().write(packet);// kk we ping :)
- } else if (packetId == MOUVE_MOUSE_PACKET) {
- // USELESS PACKET
- } else if (packetId == KEY_TYPED_PACKET) {
- // USELESS PACKET
- } else if (packetId == RECEIVE_PACKET_COUNT_PACKET) {
- // interface packets
- stream.readInt();
- } else if (packetId == ITEM_ON_ITEM_PACKET) {
- InventoryOptionsHandler.handleItemOnItem(player, stream);
- } else if (packetId == MAGIC_ON_ITEM_PACKET) {
- //InventoryOptionsHandler.handleMagicOnItem(player, stream);
- int interfaceHash = stream.readInt();
- final int interfaceId = interfaceHash >> 16;
- final int componentId = interfaceHash - (interfaceId << 16);
- //int interfaceId = stream.readInt() >> 16;
- int itemId = stream.readShort128();
- @SuppressWarnings("unused")
- int junk = stream.readShort();
- @SuppressWarnings("unused")
- int itemSlot = stream.readShortLE();
- //int interfaceSet = stream.readIntV1();
- //int spellId = interfaceSet & 0xFFF;
- //int magicInter = interfaceSet >> 16;
- MagicOnItem.handleMagic(player, componentId, interfaceId, new Item(itemId));
- //}
- } else if (packetId == AFK_PACKET) {
- //player.getSession().getChannel().close();//not needed since equal to -1
- } else if (packetId == CLOSE_INTERFACE_PACKET) {
- if (player.hasStarted() && !player.hasFinished() && !player.isRunning()) { //used for old welcome screen
- player.run();
- return;
- }
- player.stopAll();
- } else if (packetId == GAME_MESSAGE_INVITATION_PACKET) {
- boolean forceRun = stream.readUnsignedByte() == 1;
- int playerIndex = stream.readUnsignedShortLE128();
- Player p2 = World.getPlayers().get(playerIndex);
- if (p2 == null || p2 == player || p2.isDead() || p2.hasFinished() || !player.getMapRegionsIds().contains(p2.getRegionId()))
- return;
- if (player.isLocked())
- return;
- if (forceRun)
- player.setRun(forceRun);
- player.stopAll();
- ClansManager.viewInvite(player, p2);
- } else if (packetId == MOVE_CAMERA_PACKET) {
- // not using it atm
- stream.readUnsignedShort();
- stream.readUnsignedShort();
- } else if (packetId == IN_OUT_SCREEN_PACKET) {
- // not using this check because not 100% efficient
- @SuppressWarnings("unused")
- boolean inScreen = stream.readByte() == 1;
- } else if (packetId == SCREEN_PACKET) {
- int displayMode = stream.readUnsignedByte();
- player.setScreenWidth(stream.readUnsignedShort());
- player.setScreenHeight(stream.readUnsignedShort());
- @SuppressWarnings("unused")
- boolean switchScreenMode = stream.readUnsignedByte() == 1;
- if (!player.hasStarted() || player.hasFinished()
- || displayMode == player.getDisplayMode()
- || !player.getInterfaceManager().containsInterface(742))
- return;
- player.setDisplayMode(displayMode);
- player.getInterfaceManager().removeAll();
- player.getInterfaceManager().sendInterfaces();
- player.getInterfaceManager().sendInterface(742);
- } else if (packetId == CLICK_PACKET) {
- int mouseHash = stream.readShortLE128();
- int mouseButton = mouseHash >> 15;
- int time = mouseHash - (mouseButton << 15); // time
- int positionHash = stream.readIntV1();
- int y = positionHash >> 16; // y;
- int x = positionHash - (y << 16); // x
- @SuppressWarnings("unused")
- boolean clicked;
- // mass click or stupid autoclicker, lets stop lagg
- if (time <= 1 || x < 0 || x > player.getScreenWidth() || y < 0
- || y > player.getScreenHeight()) {
- // player.getSession().getChannel().close();
- clicked = false;
- return;
- }
- clicked = true;
- } else if (packetId == DIALOGUE_CONTINUE_PACKET) {
- int interfaceHash = stream.readInt();
- int junk = stream.readShort128();
- int interfaceId = interfaceHash >> 16;
- int buttonId = (interfaceHash & 0xFF);
- if (Utils.getInterfaceDefinitionsSize() <= interfaceId) {
- // hack, or server error or client error
- // player.getSession().getChannel().close();
- return;
- }
- if (!player.isRunning()
- || !player.getInterfaceManager().containsInterface(
- interfaceId))
- return;
- if(Settings.DEBUG)
- Logger.log(this, "Dialogue: "+interfaceId+", "+buttonId+", "+junk);
- int componentId = interfaceHash - (interfaceId << 16);
- if (interfaceId == 326) {
- switch (componentId) {
- case 5:
- WorldTile teletile = (WorldTile) player.getTemporaryAttributes().remove("groupteleport");
- if (teletile == null) {
- return;
- }
- Magic.sendLunarTeleportSpell(player, 0, 0, teletile);
- break;
- default:
- player.getTemporaryAttributes().remove("groupteleport");
- player.getInterfaceManager().closeScreenInterface();
- break;
- }
- return;
- }
- player.getDialogueManager().continueDialogue(interfaceId,
- componentId);
- } else if (packetId == WORLD_MAP_CLICK) {
- int coordinateHash = stream.readInt();
- int x = coordinateHash >> 14;
- int y = coordinateHash & 0x3fff;
- int plane = coordinateHash >> 28;
- Integer hash = (Integer)player.getTemporaryAttributes().get("worldHash");
- if (hash == null || coordinateHash != hash)
- player.getTemporaryAttributes().put("worldHash", coordinateHash);
- else {
- player.getTemporaryAttributes().remove("worldHash");
- player.getHintIconsManager().addHintIcon(x, y, plane, 20, 0, 2, -1, true);
- player.getPackets().sendConfig(1159, coordinateHash);
- }
- } else if (packetId == LOBBY_MAIN_CLICK_PACKET) {
- stream.readShort();
- stream.readString();
- String idk3 = stream.readString();
- stream.readString();
- stream.readByte();
- if (idk3.equalsIgnoreCase("account_settings.ws?mod=recoveries")) {
- // player.getPackets().sendOpenURL((Settings.WEBSITE_NAVI[1]));
- } else if (idk3.equalsIgnoreCase("account_settings.ws?mod=email")) {
- // player.getPackets().sendOpenURL((Settings.WEBSITE_NAVI[1]));
- } else if (idk3
- .equalsIgnoreCase("account_settings.ws?mod=messages")) {
- // player.getPackets().sendOpenURL((Settings.WEBSITE_NAVI[1]));
- } else if (idk3
- .equalsIgnoreCase("purchasepopup.ws?externalName=rs")) {
- // player.getPackets().sendOpenURL(
- // Settings.FORUM_EXTERNAL_LINKS[3]);
- }
- } else if (packetId == LOBBY_FRIEND_CHAT_SETTINGS) {
- stream.readByte();
- int status = stream.readByte();
- stream.readByte();
- player.getFriendsIgnores().setPrivateStatus(status);
- } else if (packetId == WORLD_LIST_UPDATE) {
- int updateType = stream.readInt();
- player.getPackets().sendWorldList(updateType == 0);
- } else if (packetId == ACTION_BUTTON1_PACKET
- || packetId == ACTION_BUTTON2_PACKET
- || packetId == ACTION_BUTTON4_PACKET
- || packetId == ACTION_BUTTON5_PACKET
- || packetId == ACTION_BUTTON6_PACKET
- || packetId == ACTION_BUTTON7_PACKET
- || packetId == ACTION_BUTTON8_PACKET
- || packetId == ACTION_BUTTON3_PACKET
- || packetId == ACTION_BUTTON9_PACKET
- || packetId == ACTION_BUTTON10_PACKET) {
- ButtonHandler.handleButtons(player, stream, packetId);
- } else if (packetId == GE_SEARCH_PACKET) {
- int itemId = stream.readUnsignedShort();
- player.getGEManager().chooseItem(itemId);
- } else if (packetId == ENTER_LONG_TEXT_PACKET) {
- String value = stream.readString();
- if (value.equals(""))
- return;
- if (player.getTemporaryAttributes().remove("entering_note") == Boolean.TRUE) {
- player.getNotes().add(value);
- return;
- } else if (player.getTemporaryAttributes().remove("editing_note") == Boolean.TRUE){
- player.getNotes().edit(value);
- return;
- }
- if (player.getInterfaceManager().containsInterface(1103))
- ClansManager.setClanMottoInterface(player, value);
- else if (player.getInterfaceManager().containsInterface(1094)
- && player.getTemporaryAttributes().remove("joinguestclan") != null) {
- ClansManager.connectToClan(player, value, true);
- player.getTemporaryAttributes().remove("joinguestclan");
- } else {
- if (Utils.invalidClanString(value)) {
- //player.sm("Illegal characters were used in your clans name!");
- return;
- }
- ClansManager.createClan(player, value);
- }
- } else if (packetId == ENTER_NAME_PACKET) {
- if (!player.isRunning() || player.isDead())
- return;
- String value = stream.readString();
- @SuppressWarnings("unused")
- int input = stream.readInt();
- if (value.equals(""))
- return;
- if (player.getInterfaceManager().containsInterface(1108))
- player.getFriendsIgnores().setChatPrefix(value);
- else if (player.getTemporaryAttributes().remove("PetNaming") != null) {
- if (Utils.containsInvalidTitleCharacter(value)) {
- player.getDialogueManager().startDialogue("SimpleMessage", "You have entered invaild characters or word.");
- return;
- }
- if (player.getPet() != null)
- player.getPet().setName(Utils.formatPlayerNameForDisplay(value));
- }
- /*else if (player.getTemporaryAttributes().get("donate_well") == Boolean.TRUE) {
- try {
- WellOfGoodwill.donateGold(player, Integer.parseInt(value));
- player.getTemporaryAttributes().put("donate_well", Boolean.FALSE);
- } catch (Exception e) {
- player.getDialogueManager().startDialogue("SimpleMessage", "Invalid format.");
- }
- }*/
- else if (player.getTemporaryAttributes().get("setinstancepassword") == Boolean.TRUE) {
- player.getTemporaryAttributes().put("setinstancepassword", Boolean.FALSE);
- String pass = value;
- if (pass.equals(null) || pass.equals("")) {
- player.getTemporaryAttributes().put("instancepassword", "gjaerhashersdhedsdsadefdgj");//a random string
- return;
- }
- player.getTemporaryAttributes().put("instancepassword", pass);
- return;
- }
- else if (player.getTemporaryAttributes().get("instancepass") == Boolean.TRUE) {
- String pass = value;
- String name = (String) player.getTemporaryAttributes().remove("instanceowner");
- if (pass.equals(null) || pass.equals("") || name.equals("") || name.equals(null)) {
- player.getTemporaryAttributes().put("instancepass", Boolean.FALSE);
- return;
- }
- if (!World.containsPlayer(name)) {
- player.getPackets().sendGameMessage("Unable to find or locate the player "+name+".");
- player.getTemporaryAttributes().put("instancepass", Boolean.FALSE);
- return;
- }
- Player owner = World.getPlayer(name);
- if (owner == null) {
- player.getTemporaryAttributes().put("instancepass", Boolean.FALSE);
- return;
- }
- if (owner == player) {
- player.getTemporaryAttributes().put("instancepass", Boolean.FALSE);
- return;
- }
- if (!owner.getInstance().password.equalsIgnoreCase(pass)) {
- player.getTemporaryAttributes().put("instancepass", Boolean.FALSE);
- player.getPackets().sendGameMessage("The password entered was incorrect.");
- return;
- }
- Instance.joinInstance(owner, player, true);
- player.getTemporaryAttributes().put("instancepass", Boolean.FALSE);
- return;
- }
- else if (player.getTemporaryAttributes().get("joininstance") == Boolean.TRUE) {
- String name = value;
- if (name.equals(null) || name.equals("")) {
- player.getTemporaryAttributes().put("joininstance", Boolean.FALSE);
- return;
- }
- if (!World.containsPlayer(name)) {
- player.getPackets().sendGameMessage("Unable to find or locate the player "+name+".");
- player.getTemporaryAttributes().put("joininstance", Boolean.FALSE);
- return;
- }
- Player owner = World.getPlayer(name);
- if (owner == null) {
- player.getTemporaryAttributes().put("joininstance", Boolean.FALSE);
- return;
- }
- if (owner == player) {
- player.getTemporaryAttributes().put("joininstance", Boolean.FALSE);
- return;
- }
- Instance.joinInstance(owner, player, false);
- player.getTemporaryAttributes().put("joininstance", Boolean.FALSE);
- return;
- }
- else if (player.getTemporaryAttributes().remove("ForumThreadId") != null)//temporary
- ClansManager.setThreadIdInterface(player, value);//temporary
- else if (player.getTemporaryAttributes().remove("banclanplayer") != null)
- ClansManager.banPlayer(player, value);
- else if (player.getTemporaryAttributes().remove("unbanclanplayer") != null)
- ClansManager.unbanPlayer(player, value);
- else if (player.getTemporaryAttributes().get("yellcolor") == Boolean.TRUE) {
- if(value.length() != 6) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The HEX yell color you wanted to pick cannot be longer and shorter then 6.");
- } else if(Utils.containsInvalidCharacter(value) || value.contains("_")) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The requested yell color can only contain numeric and regular characters.");
- } else {
- player.setYellColor(value);
- player.getDialogueManager().startDialogue("SimpleMessage", "Your yell color has been changed to <col="+player.getYellColor()+">"+player.getYellColor()+"</col>.");
- }
- player.getTemporaryAttributes().put("yellcolor", Boolean.FALSE);
- } else if (player.getTemporaryAttributes().get("yellshade") == Boolean.TRUE) {
- if(value.length() != 6) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The HEX yell shade you wanted to pick cannot be longer and shorter then 6.");
- } else if(Utils.containsInvalidCharacter(value) || value.contains("_")) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The requested yell shade can only contain numeric and regular characters.");
- } else {
- player.setYellShade(value);
- player.getDialogueManager().startDialogue("SimpleMessage", "Your yell color has been changed to <col="+player.getShadColor()+">"+player.getShadColor()+"</col>.");
- }
- player.getTemporaryAttributes().put("yellshade", Boolean.FALSE);
- } else if (player.getTemporaryAttributes().get("yellprefix") == Boolean.TRUE) {
- String[] invalid = { "<euro", "<img", "<img=", "<col", "<col=",
- "<shad", "<shad=", "<str>", "<u>", "<br" };
- for (String s : invalid)
- if (value.contains(s)) {
- player.getPackets().sendGameMessage(
- "You cannot add additional code to the message.");
- return;
- }
- if(value.length() > 17) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The prefix cannot be more than 16 characters.");
- } else {
- player.setPrefix(value);
- player.getDialogueManager().startDialogue("SimpleMessage", "Your yell prefix has been changed to "+player.getPrefix()+".");
- }
- player.getTemporaryAttributes().put("yellprefix", Boolean.FALSE);
- }
- else if (player.getTemporaryAttributes().get("titlecolor") == Boolean.TRUE) {
- if(value.length() != 6) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The HEX yell color you wanted to pick cannot be longer and shorter then 6.");
- } else if(Utils.containsInvalidCharacter(value) || value.contains("_")) {
- player.getDialogueManager().startDialogue("SimpleMessage", "The requested title color can only contain numeric and regular characters.");
- } else {
- player.settitlecolor(value);
- player.getAppearance().setTitle(900);
- player.getDialogueManager().startDialogue("SimpleMessage", "Your title color has been changed to <col="+player.getTitleColor()+">"+player.getTitleColor()+"</col>.");
- }
- player.getTemporaryAttributes().put("titlecolor", Boolean.FALSE);
- }
- //else if (player.getTemporaryAttributtes().get("customtitle") == Boolean.TRUE) {
- else if (player.getTemporaryAttributes().remove("customtitle") != null) {
- if(value.length() > 12) {
- player.getDialogueManager().startDialogue("SimpleMessage", "Titles are limted to twelve characters due to spam.");
- } else if(Utils.containsInvalidTitleCharacter(value)) {
- player.getDialogueManager().startDialogue("SimpleMessage", "You have entered invaild characters or word.");
- player.getAppearance().setTitle(0);
- } else {
- player.setTitle(value);
- player.getAppearance().setTitle(900);
- player.getDialogueManager().startDialogue("SimpleMessage", "Your title has been changed to " + player.getTitle() + ".");
- }
- player.getTemporaryAttributes().put("customTitle", Boolean.FALSE);
- } else if(player.getTemporaryAttributes().get("teleto_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if(target == null) {
- player.getPackets().sendGameMessage(
- "Couldn't find player " + name + ".");
- player.getTemporaryAttributes().put("teleto_player", Boolean.FALSE);
- } else {
- player.setNextWorldTile(target);
- player.getTemporaryAttributes().put("teleto_player", Boolean.FALSE);
- return;
- }
- } else if(player.getTemporaryAttributes().get("highscores") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if(target == null) {
- player.getPackets().sendGameMessage(
- "Couldn't find " + name + ".");
- player.getTemporaryAttributes().put("highscores", Boolean.FALSE);
- } else {
- int totalXp = 0;
- for(int i = 0; i < 24; i++) {
- totalXp += player.getSkills().getXp(i);
- }
- int totalXp2 = 0;
- for(int i = 0; i < 24; i++) {
- totalXp2 += target.getSkills().getXp(i);
- }
- if (totalXp > totalXp2) {
- player.HoL = "a higher";
- } else if (target.getUsername() == player.getUsername()) {
- player.HoL = "the same";
- } else {
- player.HoL = "a lower";
- }
- player.getInterfaceManager().sendInterface(960);
- player.getPackets().sendIComponentText(960, 69, "The Highscores Of "+target.getDisplayName());
- player.getPackets().sendIComponentText(960, 49, "<u>Combat</u>");
- player.getPackets().sendIComponentText(960, 56, "Level "+ target.getSkills().getLevel(Skills.ATTACK) +" in Attack.");
- player.getPackets().sendIComponentText(960, 61, "Level "+ target.getSkills().getLevel(Skills.STRENGTH) +" in Strength.");
- player.getPackets().sendIComponentText(960, 62, "Level "+ target.getSkills().getLevel(Skills.DEFENCE) +" in Defence.");
- player.getPackets().sendIComponentText(960, 54, "Level "+ target.getSkills().getLevel(Skills.RANGE) +" in Range.");
- player.getPackets().sendIComponentText(960, 63, "Level "+ target.getSkills().getLevel(Skills.PRAYER) +" in Prayer.");
- player.getPackets().sendIComponentText(960, 55, "Level "+ target.getSkills().getLevel(Skills.MAGIC) +" in Magic.");
- player.getPackets().sendIComponentText(960, 51, "Level "+ target.getSkills().getLevel(Skills.HITPOINTS) +" in Hitpoints.");
- player.getPackets().sendIComponentText(960, 60, "Level "+ target.getSkills().getLevel(Skills.SUMMONING) +" in Summoning.");
- player.getPackets().sendIComponentText(960, 58, "Level "+ target.getSkills().getLevel(Skills.DUNGEONEERING) +" in Dungeoneering.");
- player.getPackets().sendIComponentText(960, 53, "<u>Skills</u>");
- player.getPackets().sendIComponentText(960, 50, "Level "+ target.getSkills().getLevel(Skills.AGILITY) +" in Agility.");
- player.getPackets().sendIComponentText(960, 57, "Level "+ target.getSkills().getLevel(Skills.HERBLORE) +" in Herblore.");
- player.getPackets().sendIComponentText(960, 59, "Level "+ target.getSkills().getLevel(Skills.THIEVING) +" in Thieving.");
- player.getPackets().sendIComponentText(960, 52, "Level "+ target.getSkills().getLevel(Skills.CRAFTING) +" in Crafting.");
- //Right side page
- player.getPackets().sendIComponentText(960, 33, "Level "+ target.getSkills().getLevel(Skills.FLETCHING) +" in Fletching.");
- player.getPackets().sendIComponentText(960, 39, "Level "+ target.getSkills().getLevel(Skills.SLAYER) +" in Slayer.");
- player.getPackets().sendIComponentText(960, 36, "Level "+ target.getSkills().getLevel(Skills.HUNTER) +" in Hunter.");
- player.getPackets().sendIComponentText(960, 44, "Level "+ target.getSkills().getLevel(Skills.MINING) +" in Mining.");
- player.getPackets().sendIComponentText(960, 37, "Level "+ target.getSkills().getLevel(Skills.SMITHING) +" in Smithing.");
- player.getPackets().sendIComponentText(960, 46, "Level "+ target.getSkills().getLevel(Skills.FISHING) +" in Fishing.");
- player.getPackets().sendIComponentText(960, 40, "Level "+ target.getSkills().getLevel(Skills.COOKING) +" in Cooking.");
- player.getPackets().sendIComponentText(960, 42, "Level "+ target.getSkills().getLevel(Skills.FIREMAKING) +" in Firemaking.");
- player.getPackets().sendIComponentText(960, 34, "Level "+ target.getSkills().getLevel(Skills.WOODCUTTING) +" in Woodcutting.");
- player.getPackets().sendIComponentText(960, 35, "Level "+ target.getSkills().getLevel(Skills.FARMING) +" in Farming.");
- player.getPackets().sendIComponentText(960, 38, "Level "+ target.getSkills().getLevel(Skills.CONSTRUCTION) +" in Construction.");
- player.getPackets().sendIComponentText(960, 43, "Level "+ target.getSkills().getLevel(Skills.RUNECRAFTING) +" in Runecrafting.");
- player.getPackets().sendIComponentText(960, 47, "You have <u>"+player.HoL+"</u> total level");
- player.getPackets().sendIComponentText(960, 45, "than <u>"+target.getUsername()+"</u>.");
- player.getPackets().sendIComponentText(960, 41, "Times Prestiged: "+target.prestigeNumber);
- //buttons
- player.getPackets().sendIComponentText(960, 70, "Previous");
- player.getPackets().sendIComponentText(960, 71, "Next");
- player.getTemporaryAttributes().put("highscores", Boolean.FALSE);
- return;
- }
- } else if(player.getTemporaryAttributes().get("drop_log") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if(target == null) {
- player.getPackets().sendGameMessage(
- "Couldn't find " + name + ".");
- player.getTemporaryAttributes().put("drop_log", Boolean.FALSE);
- } else {
- player.getInterfaceManager().sendInterface(960);
- player.getPackets().sendIComponentText(960, 69, "The drop log of "+target.getDisplayName()); // Title
- player.getPackets().sendIComponentText(960, 49, "Bandos chestplate: "+target.bandosChest);
- player.getPackets().sendIComponentText(960, 56, "Bandos tasset: "+target.bandosTassets);
- player.getPackets().sendIComponentText(960, 61, "Bandos hilt: "+target.bandosHilt);
- player.getPackets().sendIComponentText(960, 62, "Armadyl chestplate: "+target.armadylPlate);
- player.getPackets().sendIComponentText(960, 54, "Armadyl plateskirt: "+target.armadylLegs);
- player.getPackets().sendIComponentText(960, 63, "Armadyl helmet: "+target.armadylHelm);
- player.getPackets().sendIComponentText(960, 55, "Armadyl hilt: "+target.armadylHilt);
- player.getPackets().sendIComponentText(960, 51, "Torva helm: "+target.torvaHelm);
- player.getPackets().sendIComponentText(960, 60, "Torva plate: "+target.torvaPlate);
- player.getPackets().sendIComponentText(960, 58, "Torva platelegs: "+target.torvaLegs);
- player.getPackets().sendIComponentText(960, 53, "Dragon claws: "+target.dragonClaws);
- player.getPackets().sendIComponentText(960, 50, "Dragon crossbow: "+target.dragonCrossbow);
- player.getPackets().sendIComponentText(960, 57, "Virtus wand: "+target.virtusWand);
- player.getPackets().sendIComponentText(960, 59, "Virtus book: "+target.virtusBook);
- player.getPackets().sendIComponentText(960, 52, "Zaryte bow: "+target.zaryteBow);
- //Right side page
- player.getPackets().sendIComponentText(960, 33, "Virtus mask: "+target.virtusMask);
- player.getPackets().sendIComponentText(960, 39, "Virtus robe top: "+target.virtusTop);
- player.getPackets().sendIComponentText(960, 36, "Virtus robe legs: "+target.virtusLegs);
- player.getPackets().sendIComponentText(960, 44, "Pernix cowl: "+target.pernixCowl);
- player.getPackets().sendIComponentText(960, 37, "Pernix body: "+target.pernixBody);
- player.getPackets().sendIComponentText(960, 46, "Pernix chaps: "+target.pernixChaps);
- player.getPackets().sendIComponentText(960, 40, "Seismic wand: "+target.seismicWand);
- player.getPackets().sendIComponentText(960, 42, "Seismic singularity: "+target.seismicSingularity);
- player.getPackets().sendIComponentText(960, 34, "Spectral sigil: "+target.spectralSigil);
- player.getPackets().sendIComponentText(960, 35, "Arcane sigil: "+target.arcaneSigil);
- player.getPackets().sendIComponentText(960, 38, "Elysian Sigil: "+target.elysianSigil);
- player.getPackets().sendIComponentText(960, 43, "Divine sigil: "+target.divineSigil);
- player.getPackets().sendIComponentText(960, 47, "");
- player.getPackets().sendIComponentText(960, 45, "PK'd an item worth:");
- player.getPackets().sendIComponentText(960, 41, ""+Shop.commas(Integer.toString(target.highestGPKill))+" coins.");
- //Right and left button text
- player.getPackets().sendIComponentText(960, 70, "");
- player.getPackets().sendIComponentText(960, 71, "");
- player.getTemporaryAttributes().put("drop_log", Boolean.FALSE);
- return;
- }
- } else if(player.getTemporaryAttributes().get("teleto_house") == Boolean.TRUE) {
- player.getTemporaryAttributes().put("teleto_house", Boolean.FALSE);
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target == null || target.inBuildMode == true || target.hasLocked == true/* || Wilderness.isAtWild(target)== true*/
- || (!(target.getControlerManager().getControler() instanceof HouseControler))) {
- player.getPackets().sendGameMessage(
- "Cannot enter the house of " + name + ".");
- //player.getTemporaryAttributes().put("teleto_house", Boolean.FALSE);
- } else {
- target.getHouse().joinHouse(player);
- //player.getTemporaryAttributes().put("teleto_house", Boolean.FALSE);
- return;
- }
- } else if(player.getTemporaryAttributes().get("teletome_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if(target == null) {
- player.getPackets().sendGameMessage(
- "Couldn't find player " + name + ".");
- player.getTemporaryAttributes().put("teletome_player", Boolean.FALSE);
- } else {
- if (target.isLocked() || target.getControlerManager().getControler() != null) {
- player.getPackets().sendGameMessage("You cannot teleport this player.");
- player.getTemporaryAttributes().put("teletome_player", Boolean.FALSE);
- return;
- }
- player.getTemporaryAttributes().put("teletome_player", Boolean.FALSE);
- target.setNextWorldTile(player);
- }
- return;
- }
- else if(player.getTemporaryAttributes().get("kick_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target == null) {
- player.getPackets().sendGameMessage(
- Utils.formatPlayerNameForDisplay(name)+" is not logged in.");
- player.getTemporaryAttributes().put("kick_player", Boolean.FALSE);
- return;
- }
- if (target.getUsername().equalsIgnoreCase("sam")) {
- player.getPackets().sendGameMessage(
- "<col=FF0000>Unable to Kick A Developer.");
- player.getTemporaryAttributes().put("kick_player", Boolean.FALSE);
- return;
- }
- target.getSession().getChannel().close();
- player.getPackets().sendGameMessage("You have kicked: "+target.getDisplayName()+".");
- player.getTemporaryAttributes().put("kick_player", Boolean.FALSE);
- return;
- }
- else if(player.getTemporaryAttributes().get("mute_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- //target.setMuted(Utils.currentTimeMillis()
- //+ (1 * 60 * 60 * 1000));
- target.setMuted(Utils.currentTimeMillis()
- + (1 * 60 * 60 * 1000));
- target.getPackets().sendGameMessage(
- "You've been muted for " + ("1 Hour by ") +Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have muted " + ("1 hour by ") + target.getDisplayName()+".");
- player.getTemporaryAttributes().put("mute_player", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("mute_player", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- target.setMuted(Utils.currentTimeMillis()
- + (1 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have muted " + ("1 hour by ") + target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("mute_player", Boolean.FALSE);
- }
- return;
- }
- else if(player.getTemporaryAttributes().get("mute_player1") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- //target.setMuted(Utils.currentTimeMillis()
- //+ (1 * 60 * 60 * 1000));
- target.setMuted(Utils.currentTimeMillis()
- + (6 * 60 * 60 * 1000));
- target.getPackets().sendGameMessage(
- "You've been muted for " + ("6 Hour by ") +Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have muted " + ("6 hour by ") + target.getDisplayName()+".");
- player.getTemporaryAttributes().put("mute_player1", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("mute_player1", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- target.setMuted(Utils.currentTimeMillis()
- + (6 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have muted " + ("6 hour by ") + target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("mute_player1", Boolean.FALSE);
- }
- return;
- }
- else if(player.getTemporaryAttributes().get("mute_player2") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- //target.setMuted(Utils.currentTimeMillis()
- //+ (1 * 60 * 60 * 1000));
- target.setMuted(Utils.currentTimeMillis()
- + (12 * 60 * 60 * 1000));
- target.getPackets().sendGameMessage(
- "You've been muted for " + ("12 Hour by ") +Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have muted " + ("12 hour by ") + target.getDisplayName()+".");
- player.getTemporaryAttributes().put("mute_player2", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("mute_player2", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- target.setMuted(Utils.currentTimeMillis()
- + (12 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have muted " + ("12 hour by ") + target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("mute_player2", Boolean.FALSE);
- }
- return;
- }
- else if(player.getTemporaryAttributes().get("mute_player3") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- //target.setMuted(Utils.currentTimeMillis()
- //+ (1 * 60 * 60 * 1000));
- target.setMuted(Utils.currentTimeMillis()
- + (24 * 60 * 60 * 1000));
- target.getPackets().sendGameMessage(
- "You've been muted for " + ("1 day by ") +Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have muted " + ("1 day by ") + target.getDisplayName()+".");
- player.getTemporaryAttributes().put("mute_player3", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("mute_player3", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- target.setMuted(Utils.currentTimeMillis()
- + (24 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have muted " + ("1 day by ") + target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("mute_player3", Boolean.FALSE);
- }
- return;
- }
- else if (player.getTemporaryAttributes().get("mute_player4") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- //target.setMuted(Utils.currentTimeMillis()
- //+ (1 * 60 * 60 * 1000));
- target.setMuted(Utils.currentTimeMillis()
- + (48 * 60 * 60 * 1000));
- target.getPackets().sendGameMessage(
- "You've been muted for " + ("2 day by ") +Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have muted " + ("2 day by ") + target.getDisplayName()+".");
- player.getTemporaryAttributes().put("mute_player4", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("mute_player4", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- target.setMuted(Utils.currentTimeMillis()
- + (48 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have muted " + (" 2 day ") + target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("mute_player4", Boolean.FALSE);
- }
- return;
- }
- else if (player.getTemporaryAttributes().get("ban_player") == Boolean.TRUE) {
- player.getTemporaryAttributes().put("ban_player", Boolean.FALSE);
- }
- else if (player.getTemporaryAttributes().get("jail_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- target.setJailed(Utils.currentTimeMillis()
- + (24 * 60 * 60 * 1000));
- target.getControlerManager()
- .startControler("JailControler");
- target.getPackets().sendGameMessage(
- "You've been Jailed for 24 hours by "+Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have Jailed 24 hours: "+target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("jail_player", Boolean.FALSE);
- } else {
- File acc1 = new File("data/characters/"+name.replace(" ", "_")+".p");
- try {
- target = (Player) SerializableFilesManager.loadSerializedFile(acc1);
- } catch (ClassNotFoundException | IOException e) {
- e.printStackTrace();
- }
- target.setJailed(Utils.currentTimeMillis()
- + (24 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have Jailed 24 hours: "+Utils.formatPlayerNameForDisplay(name)+".");
- player.getTemporaryAttributes().put("jail_player", Boolean.FALSE);
- try {
- SerializableFilesManager.storeSerializableClass(target, acc1);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if (target.getUsername().equalsIgnoreCase("sak")) {
- player.getPackets().sendGameMessage(
- "<col=FF0000>Unable to mute a developer.");
- player.getTemporaryAttributes().put("jail_player", Boolean.FALSE);
- return;
- }
- player.getTemporaryAttributes().put("jail_player", Boolean.FALSE);
- return;
- //player.getTemporaryAttributtes().put("unjail_player", Boolean.FALSE);
- }
- else if (player.getTemporaryAttributes().get("unjail_player") == Boolean.TRUE) {
- //name = "";
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- target.setJailed(0);
- target.getControlerManager()
- .startControler("JailControler");
- target.getPackets().sendGameMessage(
- "You've been unjailed by "+Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have unjailed "+target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("unjail_player", Boolean.FALSE);
- } else {
- File acc1 = new File("data/characters/"+name.replace(" ", "_")+".p");
- try {
- target = (Player) SerializableFilesManager.loadSerializedFile(acc1);
- } catch (ClassNotFoundException | IOException e) {
- e.printStackTrace();
- }
- target.setJailed(0);
- player.getPackets().sendGameMessage(
- "You have unjailed "+Utils.formatPlayerNameForDisplay(name)+".");
- player.getTemporaryAttributes().put("unjail_player", Boolean.FALSE);
- try {
- SerializableFilesManager.storeSerializableClass(target, acc1);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- return;
- }
- else if (player.getTemporaryAttributes().get("unban_player") == Boolean.TRUE) {
- //name = "";
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- IPBanL.unban(target);
- player.getPackets().sendGameMessage("You have unbanned "+target.getDisplayName()+".");
- player.getTemporaryAttributes().put("unban_player", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("unban_player", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- IPBanL.unban(target);
- player.getPackets().sendGameMessage("You have unbanned "+target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("unban_player", Boolean.FALSE);
- }
- return;
- }
- else if (player.getTemporaryAttributes().get("ban_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- target.setBanned(Utils.currentTimeMillis()
- + (12 * 60 * 60 * 1000));
- target.getSession().getChannel().close();
- player.getPackets().sendGameMessage("You have banned "+target.getDisplayName()+" for 12 hours.");
- player.getTemporaryAttributes().put("ban_player", Boolean.FALSE);
- } else {
- name = Utils.formatPlayerNameForProtocol(name);
- if(!SerializableFilesManager.containsPlayer(name)) {
- player.getPackets().sendGameMessage(
- "Account name "+Utils.formatPlayerNameForDisplay(name)+" doesn't exist.");
- player.getTemporaryAttributes().put("ban_player", Boolean.FALSE);
- return;
- }
- target = SerializableFilesManager.loadPlayer(name);
- target.setUsername(name);
- target.setBanned(Utils.currentTimeMillis()
- + (12 * 60 * 60 * 1000));
- player.getPackets().sendGameMessage(
- "You have banned 12 hours: "+Utils.formatPlayerNameForDisplay(name)+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("ban_player", Boolean.FALSE);
- }
- return;
- }
- else if (player.getTemporaryAttributes().get("unmute_player") == Boolean.TRUE) {
- String name = value;
- Player target = World.getPlayerByDisplayName(name);
- if (target != null) {
- target.setMuted(0);
- target.getPackets().sendGameMessage(
- "You've been unmuted by "+Utils.formatPlayerNameForDisplay(player.getUsername())+".");
- player.getPackets().sendGameMessage(
- "You have unmuted: "+target.getDisplayName()+".");
- SerializableFilesManager.savePlayer(target);
- player.getTemporaryAttributes().put("unmute_player", Boolean.FALSE);
- } else {
- File acc1 = new File("data/characters/"+name.replace(" ", "_")+".p");
- try {
- target = (Player) SerializableFilesManager.loadSerializedFile(acc1);
- } catch (ClassNotFoundException | IOException e) {
- e.printStackTrace();
- }
- target.setMuted(0);
- player.getPackets().sendGameMessage(
- "You have unmuted: "+Utils.formatPlayerNameForDisplay(name)+".");
- player.getTemporaryAttributes().put("unmute_player", Boolean.FALSE);
- try {
- SerializableFilesManager.storeSerializableClass(target, acc1);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- player.getTemporaryAttributes().put("unmute_player", Boolean.FALSE);
- return;
- } else if (player.getTemporaryAttributes().get("view_name") == Boolean.TRUE) {
- player.getTemporaryAttributes().remove("view_name");
- Player other = World.getPlayerByDisplayName(value);
- if (other == null) {
- player.getPackets().sendGameMessage("Couldn't find player.");
- return;
- }
- ClanWars clan = other.getCurrentFriendChat() != null ? other.getCurrentFriendChat().getClanWars() : null;
- if (clan == null) {
- player.getPackets().sendGameMessage("This player's clan is not in war.");
- return;
- }
- if (clan.getSecondTeam().getOwnerDisplayName() != other.getCurrentFriendChat().getOwnerDisplayName()) {
- player.getTemporaryAttributes().put("view_prefix", 1);
- }
- player.getTemporaryAttributes().put("view_clan", clan);
- ClanWars.enter(player);
- } else if (player.getTemporaryAttributes().remove("setdisplay") != null) {
- if(Utils.invalidAccountName(Utils
- .formatPlayerNameForProtocol(value))) {
- player.getPackets().sendGameMessage("Invalid name!");
- return;
- }
- if (player.getNameChange() > Utils.currentTimeMillis() && player.getRights() <= 2) {
- player.getPackets().sendGameMessage("You can only change your name once every 6 hours!");
- return;
- }
- if(!DisplayNames.setDisplayName(player, value)) {
- player.getPackets().sendGameMessage("Name already in use!");
- return;
- }
- player.getPackets().sendGameMessage("Changed display name!");
- } else if (player.getTemporaryAttributes().remove("checkvoteinput") != null)
- Vote.checkVote(player, value);
- } else if (packetId == ENTER_STRING_PACKET) {
- if (!player.isRunning() || player.isDead())
- return;
- String value = stream.readString();
- if (value.equals(""))
- return;
- } else if (packetId == ENTER_INTEGER_PACKET) {
- if (!player.isRunning() || player.isDead())
- return;
- int value = stream.readInt();
- if (player.getTemporaryAttributes().get("creatingPouches") != null) {
- Summoning.createPouch(player, (Integer) player.getTemporaryAttributes().remove("creatingPouches"), value);
- } else if (player.getTemporaryAttributes().get("creatingScrolls") != null) {
- Summoning.transformScrolls(player, (Integer) player.getTemporaryAttributes().remove("creatingScrolls"), value);
- }
- if (player.getTemporaryAttributes().get("xpSkillTarget") != null) {
- int xpTarget = value;
- Integer skillId = (Integer) player.getTemporaryAttributes().remove("xpSkillTarget");
- if (xpTarget < player.getSkills().getXp(player.getSkills().getSkillIdByTargetId(skillId)) || player.getSkills().getXp(player.getSkills().getSkillIdByTargetId(skillId)) >= 200000000) {
- return;
- }
- if (xpTarget > 200000000) {
- xpTarget = 200000000;
- }
- player.getSkills().setSkillTarget(false, skillId, xpTarget);
- return;
- } else if (player.getTemporaryAttributes().get("levelSkillTarget") != null) {
- int levelTarget = value;
- Integer skillId = (Integer) player.getTemporaryAttributes().remove("levelSkillTarget");
- int curLevel = player.getSkills().getLevel(player.getSkills().getSkillIdByTargetId(skillId));
- if (curLevel >= (skillId == 24 ? 120 : 99)) {
- return;
- }
- if (levelTarget > (skillId == 24 ? 120 : 99)) {
- levelTarget = skillId == 24 ? 120 : 99;
- }
- if (levelTarget < player.getSkills().getLevel(player.getSkills().getSkillIdByTargetId(skillId))) {
- return;
- }
- player.getSkills().setSkillTarget(true, skillId, levelTarget);
- return;
- }
- if (player.getTemporaryAttributes().get("particles") != null) {
- Integer type = (Integer) player.getTemporaryAttributes().remove("particles");
- if (type == null)
- return;
- switch (type) {
- case 1://red
- if (value > 255 || value < 0) {
- player.sm("The value can only be within 0 - 255");
- return;
- }
- player.getAppearance().ColourRed = value;
- player.getAppearance().generateAppearanceData();
- player.sm("Value of red set to: "+value+".");
- break;
- case 2://green
- if (value > 255 || value < 0) {
- player.sm("The value can only be within 0 - 255");
- return;
- }
- player.getAppearance().ColourGreen = value;
- player.getAppearance().generateAppearanceData();
- player.sm("Value of green set to: "+value+".");
- break;
- case 3://blue
- if (value > 255 || value < 0) {
- player.sm("The value can only be within 0 - 255");
- return;
- }
- player.getAppearance().ColourBlue = value;
- player.getAppearance().generateAppearanceData();
- player.sm("Value of blue set to: "+value+".");
- break;
- case 4://alpha
- if (value > 127 || value < 0) {
- player.sm("The value can only be within 0 - 127");
- return;
- }
- player.getAppearance().ColourAlpha = value;
- player.getAppearance().generateAppearanceData();
- player.sm("Value of alpha set to: "+value+".");
- break;
- case 5://intensity
- if (value > 50 || value < 0) {//real max is 127
- player.sm("The value can only be within 0 - 60");
- return;
- }
- player.getAppearance().ColourIntensity = value;
- player.getAppearance().generateAppearanceData();
- player.sm("Value of intensity set to: "+value+".");
- break;
- }
- return;
- }
- if (player.getTemporaryAttributes().get("donate_well") == Boolean.TRUE) {
- //try {
- if (value < 1){
- player.getTemporaryAttributes().put("donate_well", Boolean.FALSE);
- return;
- }
- WellOfGoodwill.donateGold(player, value);//Integer.parseInt(value));
- player.getTemporaryAttributes().put("donate_well", Boolean.FALSE);
- //} catch (Exception e) {
- // player.getDialogueManager().startDialogue("SimpleMessage", "Invalid format.");
- //}
- return;
- }
- if (player.getTemporaryAttributes().get("soul_wars_x") != null) {
- final int item = (int) player.getTemporaryAttributes().remove("soul_wars_x");
- if (SoulWarsManager.MINUTES_BEFORE_NEXT_GAME.get() < 4)
- return;
- final WorldTile walked = (WorldTile) player.getTemporaryAttributes().remove("soul_wars_walked");
- if (walked != null && !player.matches(walked))
- return;
- player.getInventory().addItem(item, value);
- return;
- }
- if (player.getTemporaryAttributes().get("sellshopx") != null) {
- Integer slotId = (Integer) player.getTemporaryAttributes().remove("sellshopx");
- if (slotId < 0 || slotId == null)
- return;
- Shop shop = (Shop) player.getTemporaryAttributes().get("Shop");
- if (shop == null || value <= 0)
- return;
- shop.sell(player, slotId, value);
- return;
- } else if (player.getInterfaceManager().containsInterface(335) && player.getInterfaceManager().containsInterface(336)) {
- if (value <= 0) {
- return;
- }
- /*Integer add_To_Trade = (Integer) player.getTemporaryAttributes().remove("add_To_Trade");//not needed nor used
- if (add_To_Trade == null) {
- System.out.println("Trade - 1.2");
- return;
- }*/
- if (value <= 0) {
- return;
- }
- if (player.getTemporaryAttributes().remove("add_coins_to_trade") != null) {
- if (value > player.getMoneyPouch().getCoinsAmount())
- value = player.getMoneyPouch().getCoinsAmount();
- if (player.getMoneyPouch().getCoinsAmount() < 1)
- return;
- if (value < 1) {
- return;
- }
- //player.getMoneyPouch().sendAddOrRemove(value, true);
- player.getTrade().addMoneyPouch(value);
- return;
- }
- Integer slotId = (Integer) player.getTemporaryAttributes().remove("trade_item_X_Slot");
- if (slotId == null || slotId < 0) {
- return;
- }
- if (player.getTemporaryAttributes().remove("trade_isRemove") != null) {
- player.getTrade().removeItem(slotId, value);
- } else {
- player.getTrade().addItem(slotId, value);
- }
- return;
- }//trade ends here
- if ((player.getInterfaceManager().containsInterface(762) && player.getInterfaceManager().containsInterface(763))
- || player.getInterfaceManager().containsInterface(11)) {
- if (value < 0)
- return;
- Integer bank_item_X_Slot = (Integer) player.getTemporaryAttributes().remove("bank_item_X_Slot");
- if (bank_item_X_Slot == null)
- return;
- player.getBank().setLastX(value);
- player.getBank().refreshLastX();
- if (player.getTemporaryAttributes().remove("bank_isWithdraw") != null)//TODO
- player.getBank().withdrawItem(bank_item_X_Slot, value);
- else
- player.getBank().depositItem(bank_item_X_Slot, value,
- player.getInterfaceManager().containsInterface(11) ? false : true);
- } else if (player.getInterfaceManager().containsInterface(105) && player.getTemporaryAttributes().remove("GEPRICESET") != null) {
- player.getGEManager().modifyPricePerItem(value);
- } else if (player.getInterfaceManager().containsInterface(105) && player.getTemporaryAttributes().remove("GEQUANTITYSET") != null) {
- player.getGEManager().modifyAmount(value);
- } else if (player.getTemporaryAttributes().remove("withdrawingPouch") == Boolean.TRUE) {
- player.getMoneyPouch().sendAddOrRemove(value, true, 0);
- } else if (player.getTemporaryAttributes().remove("ultimatenoting") != null) {
- //final boolean noted = (boolean) player.getTemporaryAttributes().remove("ultimatenoting");//Not needed
- Integer item = (Integer) player.getTemporaryAttributes().remove("changeid");
- if (item == null)
- return;
- ItemDefinitions defs = ItemDefinitions.getItemDefinitions(item);
- if (defs == null)
- return;
- if (value < 1)
- value = 1;
- if (defs.isNoted() && value > player.getInventory().getFreeSlots())
- value = player.getInventory().getFreeSlots();
- if (value > player.getInventory().getNumerOf(item))
- value = player.getInventory().getNumerOf(item);
- if (value <= 0)
- return;
- if (player.getInventory().containsItem(item, value)) {
- player.getInventory().deleteItem(item, value);
- player.getInventory().addItemMoneyPouch(new Item(defs.certId, value));
- return;
- } else {
- player.sm("Your inventory does not contain enough of the item to do that.");
- return;
- }
- } else if (player.getInterfaceManager().containsInterface(628) || player.getInterfaceManager().containsInterface(631)) {
- if (player.getInterfaceManager().containsInterface(631) && player.getTemporaryAttributes().remove("duelmoneypouch_remove") != null) {
- Integer duel_X_money = (Integer) player.getTemporaryAttributes().remove("duelmoneypouch_X_money");
- if (value <= 0 || duel_X_money == null || player.getMoneyPouch().getCoinsAmount() <= 0)
- return;
- if (value >= player.getMoneyPouch().getCoinsAmount())
- value = player.getMoneyPouch().getCoinsAmount();
- ((DuelArena) player.getControlerManager().getControler())
- .addPouch(duel_X_money, value);
- return;
- }
- if (value <= 0) {
- return;
- }
- Integer duel_item_X_Slot = (Integer) player.getTemporaryAttributes().remove("duel_item_X_Slot");
- if (duel_item_X_Slot == null) {
- return;
- }
- if (player.getTemporaryAttributes().remove("duel_isRemove") != null) {
- ((DuelArena) player.getControlerManager().getControler())
- .removeItem(duel_item_X_Slot, value);
- } else {
- ((DuelArena) player.getControlerManager().getControler())
- .addItem(duel_item_X_Slot, value);
- }
- ((DuelArena) player.getControlerManager().getControler())
- .refresh(duel_item_X_Slot);
- } else if (player.getInterfaceManager().containsInterface(206)
- && player.getInterfaceManager().containsInterface(207)) {
- if (value < 0)
- return;
- Integer pc_item_X_Slot = (Integer) player
- .getTemporaryAttributes().remove("pc_item_X_Slot");
- if (pc_item_X_Slot == null)
- return;
- if (player.getTemporaryAttributes().remove("pc_isRemove") != null)
- player.getPriceCheckManager().removeItem(pc_item_X_Slot,
- value);
- else
- player.getPriceCheckManager()
- .addItem(pc_item_X_Slot, value);
- } else if (player.getInterfaceManager().containsInterface(671)
- && player.getInterfaceManager().containsInterface(665)) {
- if (player.getFamiliar() == null
- || player.getFamiliar().getBob() == null)
- return;
- if (value < 0)
- return;
- Integer bob_item_X_Slot = (Integer) player
- .getTemporaryAttributes().remove("bob_item_X_Slot");
- if (bob_item_X_Slot == null)
- return;
- if (player.getTemporaryAttributes().remove("bob_isRemove") != null)
- player.getFamiliar().getBob()
- .removeItem(bob_item_X_Slot, value);
- else
- player.getFamiliar().getBob()
- .addItem(bob_item_X_Slot, value);
- }
- else if (player.getTemporaryAttributes().get("skillId") != null) {
- if (player.getEquipment().wearingArmour()) {
- player.getDialogueManager().finishDialogue();
- player.getDialogueManager().startDialogue("SimpleMessage", "You cannot do this while having armour on!");
- return;
- }
- int skillId = (Integer) player.getTemporaryAttributes().remove("skillId");
- if (skillId == Skills.HITPOINTS && value <= 9)
- value = 10;
- else if (value < 1)
- value = 1;
- else if (value > 99)
- value = 99;
- player.getSkills().set(skillId, value);
- player.getSkills().setXp(skillId, Skills.getXPForLevel(value));
- player.getAppearance().generateAppearanceData();
- player.getDialogueManager().finishDialogue();
- } else if (player.getTemporaryAttributes().get("kilnX") != null) {
- int index = (Integer) player.getTemporaryAttributes().get("scIndex");
- int componentId = (Integer) player.getTemporaryAttributes().get("scComponentId");
- int itemId = (Integer) player.getTemporaryAttributes().get("scItemId");
- player.getTemporaryAttributes().remove("kilnX");
- if (StealingCreation.proccessKilnItems(player, componentId, index, itemId, value))
- return;
- }
- } else if (packetId == SWITCH_INTERFACE_ITEM_PACKET) {
- stream.readShortLE128();
- int fromInterfaceHash = stream.readIntV1();
- int toInterfaceHash = stream.readInt();
- int fromSlot = stream.readUnsignedShort();
- int toSlot = stream.readUnsignedShortLE128();
- stream.readUnsignedShortLE();
- int toInterfaceId = toInterfaceHash >> 16;
- int toComponentId = toInterfaceHash - (toInterfaceId << 16);
- int fromInterfaceId = fromInterfaceHash >> 16;
- int fromComponentId = fromInterfaceHash - (fromInterfaceId << 16);
- if (Utils.getInterfaceDefinitionsSize() <= fromInterfaceId
- || Utils.getInterfaceDefinitionsSize() <= toInterfaceId)
- return;
- if (!player.getInterfaceManager()
- .containsInterface(fromInterfaceId)
- || !player.getInterfaceManager().containsInterface(
- toInterfaceId))
- return;
- if (fromComponentId != -1
- && Utils.getInterfaceDefinitionsComponentsSize(fromInterfaceId) <= fromComponentId)
- return;
- if (toComponentId != -1
- && Utils.getInterfaceDefinitionsComponentsSize(toInterfaceId) <= toComponentId)
- return;
- if (fromInterfaceId == 1265 && toInterfaceId == 1266 && player.getTemporaryAttributes().get("shop_buying") != null) {
- if ((boolean) player.getTemporaryAttributes().get("shop_buying") == true) {
- Shop shop = (Shop) player.getTemporaryAttributes().get("Shop");
- if (shop == null)
- return;
- shop.buy(player, fromSlot, 1);
- }
- }
- if (Utils.getInterfaceDefinitionsSize() <= fromInterfaceId
- || Utils.getInterfaceDefinitionsSize() <= toInterfaceId)
- return;
- if (!player.getInterfaceManager()
- .containsInterface(fromInterfaceId)
- || !player.getInterfaceManager().containsInterface(
- toInterfaceId))
- return;
- if (fromComponentId != -1
- && Utils.getInterfaceDefinitionsComponentsSize(fromInterfaceId) <= fromComponentId)
- return;
- if (toComponentId != -1
- && Utils.getInterfaceDefinitionsComponentsSize(toInterfaceId) <= toComponentId)
- return;
- if (fromInterfaceId == Inventory.INVENTORY_INTERFACE
- && fromComponentId == 0
- && toInterfaceId == Inventory.INVENTORY_INTERFACE
- && toComponentId == 0) {
- toSlot -= 28;
- if (toSlot < 0
- || toSlot >= player.getInventory()
- .getItemsContainerSize()
- || fromSlot >= player.getInventory()
- .getItemsContainerSize())
- return;
- player.getInventory().switchItem(fromSlot, toSlot);
- } else if (fromInterfaceId == 763 && fromComponentId == 0
- && toInterfaceId == 763 && toComponentId == 0) {
- if (toSlot >= player.getInventory().getItemsContainerSize()
- || fromSlot >= player.getInventory()
- .getItemsContainerSize())
- return;
- player.getInventory().switchItem(fromSlot, toSlot);
- } else if (fromInterfaceId == 762 && toInterfaceId == 762) {
- player.getBank().switchItem(fromSlot, toSlot, fromComponentId,
- toComponentId);
- } else if (fromInterfaceId == 34 && toInterfaceId == 34)
- player.getNotes().switchNotes(fromSlot, toSlot);
- if (Settings.DEBUG)
- System.out.println("Switch item " + fromInterfaceId + ", "
- + fromSlot + ", " + toSlot);
- } else if (packetId == DONE_LOADING_REGION_PACKET) {
- /*
- * if(!player.clientHasLoadedMapRegion()) { //load objects and items
- * here player.setClientHasLoadedMapRegion(); }
- * //player.refreshSpawnedObjects(); //player.refreshSpawnedItems();
- */
- } else if (packetId == WALKING_PACKET
- || packetId == MINI_WALKING_PACKET
- || packetId == ITEM_TAKE_PACKET
- || packetId == PLAYER_OPTION_2_PACKET
- || packetId == PLAYER_OPTION_4_PACKET
- || packetId == PLAYER_OPTION_5_PACKET
- || packetId == PLAYER_OPTION_6_PACKET
- || packetId == PLAYER_OPTION_7_PACKET
- || packetId == PLAYER_OPTION_1_PACKET || packetId == ATTACK_NPC
- || packetId == INTERFACE_ON_PLAYER
- || packetId == INTERFACE_ON_NPC
- || packetId == NPC_CLICK1_PACKET
- || packetId == NPC_CLICK2_PACKET
- || packetId == NPC_CLICK3_PACKET
- || packetId == NPC_CLICK4_PACKET
- || packetId == OBJECT_CLICK1_PACKET
- || packetId == SWITCH_INTERFACE_ITEM_PACKET
- || packetId == OBJECT_CLICK2_PACKET
- || packetId == OBJECT_CLICK3_PACKET
- || packetId == OBJECT_CLICK4_PACKET
- || packetId == OBJECT_CLICK5_PACKET
- || packetId == INTERFACE_ON_OBJECT)
- player.addLogicPacketToQueue(new LogicPacket(packetId, length,
- stream));
- else if (packetId == OBJECT_EXAMINE_PACKET) {
- ObjectHandler.handleOption(player, stream, -1);
- }else if (packetId == NPC_EXAMINE_PACKET) {
- NPCHandler.handleExamine(player, stream);
- } else if (packetId == JOIN_FRIEND_CHAT_PACKET) {
- if (!player.hasStarted())
- return;
- FriendChatsManager.joinChat(stream.readString(), player);
- } else if (packetId == KICK_FRIEND_CHAT_PACKET) {
- if (!player.hasStarted())
- return;
- player.setLastPublicMessage(Utils.currentTimeMillis() + 1000); // avoids
- // message
- // appearing
- player.kickPlayerFromFriendsChannel(stream.readString());
- } else if (packetId == CHANGE_FRIEND_CHAT_PACKET) {
- if (!player.hasStarted()
- || !player.getInterfaceManager().containsInterface(1108))
- return;
- player.getFriendsIgnores().changeRank(stream.readString(),
- stream.readUnsignedByte128());
- } else if (packetId == ADD_FRIEND_PACKET) {
- if (!player.hasStarted())
- return;
- player.getFriendsIgnores().addFriend(stream.readString());
- } else if (packetId == REMOVE_FRIEND_PACKET) {
- if (!player.hasStarted())
- return;
- player.getFriendsIgnores().removeFriend(stream.readString());
- } else if (packetId == ADD_IGNORE_PACKET) {
- if (!player.hasStarted())
- return;
- player.getFriendsIgnores().addIgnore(stream.readString(), stream.readUnsignedByte() == 1);
- } else if (packetId == REMOVE_IGNORE_PACKET) {
- if (!player.hasStarted())
- return;
- player.getFriendsIgnores().removeIgnore(stream.readString());
- } else if (packetId == SEND_FRIEND_MESSAGE_PACKET) {
- if (!player.hasStarted())
- return;
- if (IPMute.isMuted(player.getSession().getIP())) {
- player.getPackets().sendGameMessage(
- "Your IP has been permanently Muted.");
- return;
- }
- if (player.getMuted() > Utils.currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "You temporarily muted. Your mute expires in "+Utils.getTimeLeft(player.getMuted())+".");
- return;
- }
- String username = stream.readString();
- String message = Huffman.readEncryptedMessage(150,
- stream);
- if (message.length() <= 0)
- return;
- if (message.contains("0hdr2ufufl9ljlzlyla")
- || message.contains("1hdr")
- || message.contains("2hdr")
- || message.contains("3hdr")
- || message.contains("4hdr")
- || message.contains("5hdr")
- || message.contains("6hdr")
- || message.contains("6hdr")
- || message.contains("7hdr")
- || message.contains("8hdr")
- || message.contains("9hdr")
- || message.contains("hdr")
- || message.contains("0hdr")
- || message.contains("1hdrvx6bk81v7h")
- || message.contains("1hdrplakokgvnhxqa8fx2x8w0o")
- || message
- .contains("1hdrswp7i7p8h4c9clva9lw87xc83hjxz7iumxqvng")
- || message.contains("1hdrswdrqblvv4ob789lbl1nsidi7y")) {
- return;
- }
- Player p2 = World.getPlayerByDisplayName(username);
- if (p2 == null)
- p2 = World.getLobbyPlayerByDisplayName(username); // getLobbyPlayerByDisplayName
- if (p2 == null)
- return;
- LoggingSystem.logPm(player, p2, Utils.fixChatMessage(message));
- player.getFriendsIgnores().sendMessage(
- p2,
- Utils.fixChatMessage(message));
- } else if (packetId == SEND_FRIEND_QUICK_CHAT_PACKET) {
- if (!player.hasStarted())
- return;
- String username = stream.readString();
- int fileId = stream.readUnsignedShort();
- if (fileId > 1163)
- return;
- byte[] data = null;
- if (length > 3 + username.length()) {
- data = new byte[length - (3 + username.length())];
- stream.readBytes(data);
- }
- data = Utils.completeQuickMessage(player, fileId, data);
- Player p2 = World.getPlayerByDisplayName(username);
- if (p2 == null)
- return;
- player.getFriendsIgnores().sendQuickChatMessage(p2,
- new QuickChatMessage(fileId, data));
- } else if (packetId == PUBLIC_QUICK_CHAT_PACKET) {
- if (!player.hasStarted())
- return;
- if (player.getLastPublicMessage() > Utils.currentTimeMillis())
- return;
- player.setLastPublicMessage(Utils.currentTimeMillis() + 300);
- // just tells you which client script created packet
- @SuppressWarnings("unused")
- boolean secondClientScript = stream.readByte() == 1;// script 5059
- // or 5061
- int fileId = stream.readUnsignedShort();
- if (fileId > 1163)
- return;
- byte[] data = null;
- if (length > 3) {
- data = new byte[length - 3];
- stream.readBytes(data);
- }
- data = Utils.completeQuickMessage(player, fileId, data);
- if (chatType == 0)
- player.sendPublicChatMessage(new QuickChatMessage(fileId, data));
- else if (chatType == 1)
- player.sendFriendsChannelQuickMessage(new QuickChatMessage(
- fileId, data));
- else if (Settings.DEBUG)
- Logger.log(this, "Unknown chat type: " + chatType);
- } else if (packetId == CHAT_TYPE_PACKET) {
- chatType = stream.readUnsignedByte();
- } else if (packetId == CHAT_PACKET) {
- if (!player.hasStarted())
- return;
- if (player.getLastPublicMessage() > Utils.currentTimeMillis())
- return;
- player.setLastPublicMessage(Utils.currentTimeMillis() + 300);
- int colorEffect = stream.readUnsignedByte();
- if (colorEffect > 11 || colorEffect < 0)
- return;
- int moveEffect = stream.readUnsignedByte();
- if (moveEffect < 0 || moveEffect > 5)
- return;
- String message = Huffman.readEncryptedMessage(200, stream);
- if (message.contains("0hdr2ufufl9ljlzlyla")
- || message.contains("1hdr")
- || message.contains("2hdr")
- || message.contains("3hdr")
- || message.contains("4hdr")
- || message.contains("5hdr")
- || message.contains("6hdr")
- || message.contains("6hdr")
- || message.contains("7hdr")
- || message.contains("8hdr")
- || message.contains("9hdr")
- || message.contains("hdr")
- || message.contains("0hdr")
- || message.contains("1hdrvx6bk81v7h")
- || message.contains("1hdrplakokgvnhxqa8fx2x8w0o")
- || message.contains("1hdrswp7i7p8h4c9clva9lw87xc83hjxz7iumxqvng")
- || message.contains("1hdrswdrqblvv4ob789lbl1nsidi7y"))
- return;
- if (player.getColorID() > 0) {
- colorEffect = player.getColorID();
- }
- if (message.length() > 100 || message.length() <= 0) {
- return;
- }
- if (message == null || message.replaceAll(" ", "").equals(""))
- return;
- if (message.startsWith("::") || message.startsWith(";;")) {
- Commands.processCommand(player, message.replace("::", "")
- .replace(";;", ""), false, false);
- return;
- }
- if (IPMute.isMuted(player.getSession().getIP())) {
- player.getPackets().sendGameMessage(
- "Your IP has been permanently Muted.");
- return;
- }
- if (player.getMuted() > Utils.currentTimeMillis()) {
- player.getPackets().sendGameMessage(
- "You're temporarily muted. You mute expires in "+Utils.getTimeLeft(player.getMuted())+".");
- return;
- }
- int effects = (colorEffect << 8) | (moveEffect & 0xff);
- for (String s : Settings.UNWANTED_WORDS) {
- if (message.toLowerCase().contains(s)) {
- length = s.length();
- String replace = "";
- for (int i = 0; i < length; i++) {
- replace += "*";
- }
- message = message.replaceAll(s, replace);
- }
- }
- if (chatType == 1)
- player.sendFriendsChannelMessage(Utils.fixChatMessage(message));
- else if (chatType == 2)
- player.sendClanChannelMessage(Utils.fixChatMessage(message));
- else if (chatType == 3)
- player.sendGuestClanChannelMessage(Utils.fixChatMessage(message));
- else
- player.sendPublicChatMessage(new PublicChatMessage(Utils.fixChatMessage(message), effects));
- player.setLastMsg(message);
- LoggingSystem.logPublicChat(player, message);
- if (Settings.DEBUG)
- Logger.log(this, "Chat type: " + chatType);
- } else if (packetId == COMMANDS_PACKET) {
- if (!player.isRunning())
- return;
- boolean clientCommand = stream.readUnsignedByte() == 1;
- @SuppressWarnings("unused")
- boolean unknown = stream.readUnsignedByte() == 1;
- String command = stream.readString();
- if (!Commands.processCommand(player, command, true, clientCommand)
- && Settings.DEBUG)
- Logger.log(this, "Command: " + command);
- } else if (packetId == COLOR_ID_PACKET) {
- if (!player.hasStarted())
- return;
- int colorId = stream.readUnsignedShort();
- if (player.getTemporaryAttributes().get("SkillcapeCustomize") != null)
- SkillCapeCustomizer.handleSkillCapeCustomizerColor(player,
- colorId);
- else if (player.getTemporaryAttributes().get("MotifCustomization") != null)
- ClansManager.setMottifColor(player, colorId);
- }else if (packetId == REPORT_ABUSE_PACKET) {
- if (!player.hasStarted())
- return;
- @SuppressWarnings("unused")
- String username = stream.readString();
- @SuppressWarnings("unused")
- int type = stream.readUnsignedByte();
- @SuppressWarnings("unused")
- boolean mute = stream.readUnsignedByte() == 1;
- @SuppressWarnings("unused")
- String unknown2 = stream.readString();
- } else {
- //if (Settings.DEBUG)
- // Logger.log(this, "Missing packet " + packetId
- // + ", expected size: " + length + ", actual size: "
- // + PACKET_SIZES[packetId]);
- }
- }
- }
Add Comment
Please, Sign In to add comment