Beispiel #1
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.OBJECT_FIRST_CLICK:
                    handleFirstClickObject(player, packet);
                    break;

                case PacketHandlers.PacketId.OBJECT_SECOND_CLICK:
                    handleSecondClickObject(player, packet);
                    break;

                case PacketHandlers.PacketId.OBJECT_THIRD_CLICK:
                    handleThirdClickObject(player, packet);
                    break;

                case PacketHandlers.PacketId.OBJECT_FOURTH_CLICK:
                    handleFourthClickObject(player, packet);
                    break;

                case PacketHandlers.PacketId.OBJECT_EXAMINE:
                    handleExamineObject(player, packet);
                    break;
            }
        }
Beispiel #2
0
 public void addPacketToQueue(Packet p)
 {
     lock (queuedPackets)
     {
         queuedPackets.Enqueue(p);
     }
 }
Beispiel #3
0
 private void handleAddIgnore(Player player, Packet packet)
 {
     long name = packet.readLong();
     if (name > 0)
     {
         player.getFriends().addIgnore(name);
     }
 }
Beispiel #4
0
 private void handleScreenSettings(Player player, Packet packet)
 {
     int windowType = packet.readByte() & 0xff;
     int windowWidth = packet.readUShort();
     int windowHeight = packet.readUShort();
     int junk = packet.readByte() & 0xff;
     player.getPackets().configureGameScreen(windowType);
 }
Beispiel #5
0
        private void handleExamineNPC(Player player, Packet packet)
        {
            int npcId = packet.readUShort();
            if (npcId < 0 || npcId > NpcData.getTotalNpcDefinitions() || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
                return;

            player.getPackets().sendMessage(NpcData.forId(npcId).getExamine());
        }
Beispiel #6
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.EQUIP:
                    handleEquipItem(player, packet);
                    break;

                case PacketHandlers.PacketId.ITEM_ON_ITEM:
                    handleItemOnItem(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_CLICK:
                    handleInvenClickItem(player, packet);
                    break;

                case PacketHandlers.PacketId.ITEM_ON_OBJECT:
                    handleItemOnObject(player, packet);
                    break;

                case PacketHandlers.PacketId.ITEM_ON_GROUND_ITEM:
                    handleItemOnGroundItem(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_OPERATE:
                    handleOperateItem(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_DROP:
                    handleDropItem(player, packet);
                    break;

                case PacketHandlers.PacketId.PICKUP:
                    handlePickupItem(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_SWAP_SLOT:
                    handleSwapSlot(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_SWAP_SLOT2:
                    handleSwapSlot2(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_RIGHT_CLICK_OPTION1:
                    handleRightClickOne(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_RIGHT_CLICK_OPTION2:
                    handleRightClickTwo(player, packet);
                    break;

                case PacketHandlers.PacketId.INV_EXAMINE_ITEM:
                    handleExamineItem(player, packet);
                    break;
            }
        }
Beispiel #7
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.ENTER_AMOUNT:
                    handleEnterAmount(player, packet);
                    break;

                case PacketHandlers.PacketId.ENTER_TEXT:
                    handleEnterText(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_1:
                    handleClickOne(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_2:
                    handleClickTwo(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_3:
                    handleClickThree(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_4:
                    handleClickFour(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_5:
                    handleClickFive(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_6:
                    handleClickSix(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_7:
                    handleClickSeven(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_8:
                    handleClickEight(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_9:
                    handleClickNine(player, packet);
                    break;

                case PacketHandlers.PacketId.INTERFACE_CLICK_10:
                    handleClickTen(player, packet);
                    break;

                case PacketHandlers.PacketId.GE_SEARCH:
                    handleGeSearch(player, packet);
                    break;
            }
        }
Beispiel #8
0
        private void handleExamineObject(Player player, Packet packet)
        {
            ushort id = (ushort)packet.readLEShortA();

            if (player.getTemporaryAttribute("unmovable") != null)
            {
                return;
            }

            SkillHandler.resetAllSkills(player);
            player.getPackets().closeInterfaces();
            player.getPackets().sendMessage("[Id: " + id + "] " + ObjectData.forId(id).getExamine());
        }
Beispiel #9
0
 private void handleClanChat(Player player, Packet packet)
 {
     long clanOwner = packet.readLong();
     if (clanOwner < 0)
     {
         return;
     }
     if (clanOwner == 0)
     {
         Server.getClanManager().leaveChannel(player);
         return;
     }
     string ownerName = Misc.longToPlayerName(clanOwner).ToLower();
     Server.getClanManager().enterChannel(player, ownerName);
 }
Beispiel #10
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.PUBLIC:
                    handlePublicChat(player, packet);
                    break;

                case PacketHandlers.PacketId.CLAN_CHAT:
                    handleClanChat(player, packet);
                    break;

                case PacketHandlers.PacketId.ADD_FRIEND:
                    handleAddFriend(player, packet);
                    break;

                case PacketHandlers.PacketId.DELETE_FRIEND:
                    handleDeleteFriend(player, packet);
                    break;

                case PacketHandlers.PacketId.ADD_IGNORE:
                    handleAddIgnore(player, packet);
                    break;

                case PacketHandlers.PacketId.DELETE_IGNORE:
                    handleDeleteIgnore(player, packet);
                    break;

                case PacketHandlers.PacketId.SEND_PM:
                    handleSendPm(player, packet);
                    break;

                case PacketHandlers.PacketId.CLAN_RANKS:
                    handleClanRanks(player, packet);
                    break;

                case PacketHandlers.PacketId.CLAN_KICK:
                    handleClanKick(player, packet);
                    break;

                case PacketHandlers.PacketId.PRIVACY_SETTINGS:
                    handlePrivacySettings(player, packet);
                    break;
            }
        }
Beispiel #11
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.CLOSE:
                    handleCloseButton(player, packet);
                    break;

                case PacketHandlers.PacketId.ACTIONBUTTON:
                case PacketHandlers.PacketId.ACTIONBUTTON2:
                    handleActionButton(player, packet);
                    break;

                case PacketHandlers.PacketId.ACTIONBUTTON3:
                    handleActionButton3(player, packet);
                    break;
            }
        }
Beispiel #12
0
 private void handleFifthClickNPC(Player player, Packet packet)
 {
     int npcIndex = packet.readLEShort();
     if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     Npc npc = Server.getNpcList()[npcIndex];
     if (npc == null || npc.isDestroyed())
     {
         return;
     }
     Console.WriteLine("Fifth click NPC " + npc.getId());
     SkillHandler.resetAllSkills(player);
     if (Slayer.openPointsInterface(player, npc))
     {
         return;
     }
 }
Beispiel #13
0
 private bool canWalk(Player player, Packet packet, bool following)
 {
     if (player.getTemporaryAttribute("smeltingBar") != null)
     {
         Smelting.setAmountToZero(player);
         return false;
     }
     else if (player.getTemporaryAttribute("teleporting") != null && player.getTemporaryAttribute("homeTeleporting") == null)
     {
         return false;
     }
     else if (player.isFrozen())
     {
         player.getPackets().sendMessage("A magic force prevents you from moving!");
         return false;
     }
     else if (player.getDuel() != null)
     {
         if (player.getDuel().ruleEnabled(DuelSession.RULE.NO_MOVEMENT))
         {
             if (player.getDuel().getStatus() == 5 || player.getDuel().getStatus() == 6)
             {
                 if (player.getTarget() == null)
                     player.getPackets().sendMessage("Movement is disabled for this duel.");
                 return false;
             }
         }
     }
     else if (player.getTemporaryAttribute("unmovable") != null || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return false;
     }
     else if (player.isDead())
     {
         return false;
     }
     else if (player.getTeleportTo() != null)
     {
         return false;
     }
     return true;
 }
Beispiel #14
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.IDLE:
                case PacketHandlers.PacketId.MOVE_CAMERA:
                case PacketHandlers.PacketId.PING:
                    player.getConnection().setPinged();
                    break;

                case PacketHandlers.PacketId.FOCUS:
                case PacketHandlers.PacketId.CLICK_MOUSE:
                case PacketHandlers.PacketId.SOUND_SETTINGS:
                    break;

                case PacketHandlers.PacketId.WINDOW_TYPE:
                    handleScreenSettings(player, packet);
                    break;
            }
        }
Beispiel #15
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.ATTACK_PLAYER:
                    handleAttackPlayer(player, packet);
                    break;

                case PacketHandlers.PacketId.FOLLOW:
                    handleFollowPlayer(player, packet);
                    break;

                case PacketHandlers.PacketId.TRADE:
                    handleTradePlayer(player, packet);
                    break;

                case PacketHandlers.PacketId.MAGIC_ON_PLAYER:
                    handleMagicOnPlayer(player, packet);
                    break;
            }
        }
Beispiel #16
0
        private void handleClickEight(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 8: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 590: // Clan chat setup
                    Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername());
                    if (clan == null)
                    {
                        player.getPackets().sendMessage("Please create your clan chat before changing settings.");
                        break;
                    }
                    switch (child)
                    {
                        case 23: // "Who can enter chat" - general.
                            clan.setEnterRights(Clan.ClanRank.GENERAL);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

                        case 24: // "Who can talk in chat" - general.
                            clan.setTalkRights(Clan.ClanRank.GENERAL);
                            player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24);
                            break;

                        case 25: // // "Who can kick in chat" - general.
                            clan.setKickRights(Clan.ClanRank.GENERAL);
                            player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25);
                            break;

                        case 26: // "Who can share loot" - general.
                            clan.setLootRights(Clan.ClanRank.GENERAL);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Beispiel #17
0
        public void handlePacket(Player player, Packet packet)
        {
            switch (packet.getPacketId())
            {
                case PacketHandlers.PacketId.NPC_FIRST_CLICK:
                    handleFirstClickNPC(player, packet);
                    break;

                case PacketHandlers.PacketId.NPC_SECOND_CLICK:
                    handleSecondClickNPC(player, packet);
                    break;

                case PacketHandlers.PacketId.NPC_THIRD_CLICK:
                    handleThirdClickNPC(player, packet);
                    break;

                case PacketHandlers.PacketId.NPC_FOURTH_CLICK:
                    handleFourthClickNPC(player, packet);
                    return;

                case PacketHandlers.PacketId.NPC_FIFTH_CLICK:
                    handleFifthClickNPC(player, packet);
                    break;

                case PacketHandlers.PacketId.NPC_EXAMINE:
                    handleExamineNPC(player, packet);
                    break;

                case PacketHandlers.PacketId.MAGIC_ON_NPC:
                    handleMagicOnNPC(player, packet);
                    break;

                case PacketHandlers.PacketId.ITEM_ON_NPC:
                    handleItemOnNPC(player, packet);
                    break;
            }
        }
Beispiel #18
0
        private void handleSecondClickNPC(Player player, Packet packet)
        {
            int npcIndex = packet.readLEShort();
            if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            Npc npc = Server.getNpcList()[npcIndex];
            if (npc == null || npc.isDestroyed())
            {
                return;
            }
            Console.WriteLine("Second click NPC " + npc.getId());
            SkillHandler.resetAllSkills(player);
            if (Fishing.wantToFish(player, npc, false))
            {
                return;
            }
            else if (Slayer.talkToMaster(player, npc))
            {
                return;
            }
            else if (AgilityArena.dialogue(player, npc, false))
            {
                return;
            }
            else if (TzHaar.interactTzhaarNPC(player, npc, 1))
            {
                return;
            }
            else if (WarriorGuild.talkToWarriorGuildNPC(player, npc, 1))
            {
                return;
            }
            else if (BoatOptions.interactWithBoatNPC(player, npc))
            {
                return;
            }
            switch (npc.getId())
            {
                case 519: // Bob
                    BrokenBarrows.talkToBob(player, npc, -1, 1);
                    break;

                case 553: // Aubury
                    HomeArea.interactWithAubury(player, npc, 1);
                    break;

                case 1862: // Ali morisanne
                    if (npc.getLocation().inArea(2319, 3177, 2321, 3182))
                    { // Home Ali
                        HomeArea.interactWithAliMorissaae(player, npc);
                        break;
                    }
                    else if (npc.getLocation().inArea(3311, 3198, 3316, 3199))
                    { // Al Kharid Ali
                        AlKharid.interactWithAliMorissaae(player, npc);
                        break;
                    }
                    break;
            }
        }
Beispiel #19
0
 private void handleMagicOnNPC(Player player, Packet packet)
 {
     int childId = packet.readLEShort();
     int interfaceId = packet.readLEShort();
     int junk = packet.readShortA();
     int npcIndex = packet.readLEShortA();
     if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     Npc npc = Server.getNpcList()[npcIndex];
     if (npc == null || npc.isDestroyed())
     {
         return;
     }
     SkillHandler.resetAllSkills(player);
     player.setTarget(npc);
     MagicCombat.newMagicAttack(player, npc, childId, interfaceId == 193);
     Console.WriteLine(childId);
 }
Beispiel #20
0
 private void handleItemOnNPC(Player player, Packet packet)
 {
     int interfaceId = packet.readInt();
     int slot = packet.readLEShort();
     int npcIndex = packet.readLEShort();
     int item = packet.readLEShortA();
     if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     Npc npc = Server.getNpcList()[npcIndex];
     if (npc == null || npc.isDestroyed())
     {
         return;
     }
     SkillHandler.resetAllSkills(player);
     player.getPackets().closeInterfaces();
     Console.WriteLine("Item on NPC " + npc.getId());
     if (player.getInventory().getItemInSlot(slot) == item)
     {
         switch (npc.getId())
         {
             case 519: // Bob
                 BrokenBarrows.talkToBob(player, npc, player.getInventory().getItemInSlot(slot), 0);
                 break;
         }
     }
 }
Beispiel #21
0
 private void handleFourthClickNPC(Player player, Packet packet)
 {
     int npcIndex = packet.readUShort();
     if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     Npc npc = Server.getNpcList()[npcIndex];
     if (npc == null || npc.isDestroyed())
     {
         return;
     }
     Console.WriteLine("Fourth click NPC " + npc.getId());
     SkillHandler.resetAllSkills(player);
     if (Slayer.openSlayerShop(player, npc))
     {
         return;
     }
     switch (npc.getId())
     {
         case 553: // Aubury
             HomeArea.interactWithAubury(player, npc, 3);
             break;
     }
 }
Beispiel #22
0
 private void handleThirdClickObject(Player player, Packet packet)
 {
     short id = packet.readLEShortA();
     int y = packet.readLEShortA();
     int x = packet.readLEShort();
     if (player.getTemporaryAttribute("unmovable") != null)
     {
         return;
     }
     if (x < 1000 || id < 0 || y < 1000 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     SkillHandler.resetAllSkills(player);
     player.getPackets().closeInterfaces();
     player.setFaceLocation(new Location(x, y, player.getLocation().getZ()));
     Console.WriteLine("Third object click = " + id + " " + x + " " + y);
     if (LaddersAndStairs.useObject(player, id, new Location(x, y, player.getLocation().getZ()), 3))
     {
         return;
     }
     switch (id)
     {
         case 28089: // GE desk
             Server.getGrandExchange().clickDesk(player, x, y, 3);
             break;
     }
 }
Beispiel #23
0
 private void handleDropItem(Player player, Packet packet)
 {
     int item = packet.readShortA();
     int slot = packet.readShortA();
     int interfaceId = packet.readLEShort();
     int childId = packet.readUShort();
     if (slot > 28 || slot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     SkillHandler.resetAllSkills(player);
     if (player.getInventory().getItemInSlot(slot) == item)
     {
         player.getPackets().closeInterfaces();
         if (ItemData.isPlayerBound(player.getInventory().getItemInSlot(slot)))
         {
             Item[] items = { new Item(player.getInventory().getItemInSlot(slot), 1) };
             //player.getPackets().sendItems(94, 0, 93, items);
             player.getPackets().modifyText("Are you sure you want to destroy this item?", 94, 3); // Title
             //player.getPackets().modifyText("Yes", 94, 4); // Yes
             //player.getPackets().modifyText("No", 94, 5); // No
             player.getPackets().modifyText("", 94, 10); // Line 1
             player.getPackets().modifyText("If you wish to get another Fire cape, you must", 94, 11); // Line 2
             player.getPackets().modifyText("complete the Fight cave minigame again.", 94, 12); // Line 3
             player.getPackets().modifyText("Fire Cape", 94, 13); // Item name
             player.getPackets().sendChatboxInterface(94);
             return;
         }
         int id = player.getInventory().getItemInSlot(slot);
         int amt = player.getInventory().getAmountInSlot(slot);
         GroundItem i = new GroundItem(id, amt, new Location(player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ()), player);
         if (player.getInventory().deleteItem(id, slot, amt))
         {
             if (!Server.getGroundItems().addToStack(id, amt, player.getLocation(), player))
             {
                 Server.getGroundItems().newEntityDrop(i);
             }
         }
     }
 }
Beispiel #24
0
        private void handleSecondClickObject(Player player, Packet packet)
        {
            int objectY = packet.readLEShortA();
            int objectX = packet.readLEShort();
            ushort objectId = packet.readUShort();
            Console.WriteLine("Second object click = " + objectId + " " + objectX + " " + objectY);
            if (player.getTemporaryAttribute("unmovable") != null)
            {
                return;
            }
            if (objectX < 1000 || objectY < 1000 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            SkillHandler.resetAllSkills(player);
            player.getPackets().closeInterfaces();
            player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ()));
            if (Thieving.wantToThieveStall(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (Farming.interactWithPatch(player, objectId, objectX, objectY, -1))
            {
                return;
            }
            else if (LaddersAndStairs.useObject(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 2))
            {
                return;
            }
            switch (objectId)
            {
                case 28089: // GE desk
                    Server.getGrandExchange().clickDesk(player, objectX, objectY, 2);
                    break;

                case 25824: // Spinning wheel (Seers)
                case 36970: // Spinning wheel (Lumbridge
                    Spinning.displaySpinningInterface(player);
                    break;

                case 6: // Dwarf multicannon
                    DwarfCannon cannon = player.getCannon();
                    Location l = new Location(objectX, objectY, player.getLocation().getZ());
                    if (cannon == null || (cannon != null & !l.Equals(cannon.getLocation())))
                    {
                        player.getPackets().sendMessage("This isn't your cannon!");
                        break;
                    }
                    cannon.pickupCannon();
                    break;

                case 11666: // Falador furnace
                case 36956: // Lumbridge furnace
                    Smelting.displaySmeltOptions(player);
                    break;

                case 11959: // Tin rocks
                case 11958:
                case 11957:
                case 11933:
                case 11934:
                case 11935:
                case 31077:
                case 31078:
                case 31079:
                    Mining.prospectRock(player, objectX, objectY, "tin");
                    break;

                case 11960: // Copper rocks
                case 11961:
                case 11962:
                case 11936:
                case 11937:
                case 11938:
                case 31080:
                case 31081:
                case 31082:
                    Mining.prospectRock(player, objectX, objectY, "copper");
                    break;

                case 15504: // Clay rocks
                case 15503:
                case 15505:
                case 11189:
                case 11190:
                case 11191:
                case 31062:
                case 31063:
                case 31064:
                case 32429:
                case 32430:
                case 32431:
                    Mining.prospectRock(player, objectX, objectY, "clay");
                    break;

                case 11948: // Silver rocks
                case 11949:
                case 11950:
                case 11165:
                case 11186:
                case 11187:
                case 11188:
                case 31074:
                case 31075:
                case 31076:
                case 32444:
                case 32445:
                case 32446:
                case 15579:
                case 15580:
                case 15581:
                    Mining.prospectRock(player, objectX, objectY, "silver");
                    break;

                case 11930: // Coal rocks
                case 11931:
                case 11932:
                case 14850:
                case 14851:
                case 14852:
                case 31068:
                case 31069:
                case 31070:
                case 32426:
                case 32427:
                case 32428:
                    Mining.prospectRock(player, objectX, objectY, "coal");
                    break;

                case 11945: // Mithril rocks
                case 11946:
                case 11947:
                case 11942:
                case 11943:
                case 11944:
                case 14853:
                case 14854:
                case 14855:
                case 31086:
                case 31087:
                case 31088:
                case 32438:
                case 32439:
                case 32440:
                    Mining.prospectRock(player, objectX, objectY, "mithril");
                    break;

                case 11954: // Iron rocks
                case 11955:
                case 11956:
                case 14856:
                case 14857:
                case 14858:
                case 31071:
                case 31072:
                case 31073:
                case 32441:
                case 32442:
                case 32443:
                    Mining.prospectRock(player, objectX, objectY, "iron");
                    break;

                case 14859: // Rune rocks
                case 14860:
                case 14861:
                    Mining.prospectRock(player, objectX, objectY, "runite");
                    break;

                case 11951: // Gold rocks
                case 11952:
                case 11953:
                case 11183:
                case 11184:
                case 11185:
                case 31065:
                case 31066:
                case 31067:
                case 32432:
                case 32433:
                case 32434:
                case 15576:
                case 15577:
                case 15578:
                    Mining.prospectRock(player, objectX, objectY, "gold");
                    break;

                case 11963: // Adamant rocks
                case 11964:
                case 11965:
                case 11939:
                case 11940:
                case 11941:
                case 14862:
                case 14863:
                case 14864:
                case 31083:
                case 31084:
                case 31085:
                case 32435:
                case 32436:
                case 32437:
                    Mining.prospectRock(player, objectX, objectY, "adamantite");
                    break;

                case 11552: // Empty rocks
                case 11553:
                case 11554:
                case 11555:
                case 11556:
                case 31059:
                case 31060:
                case 31061:
                case 14832:
                case 14833:
                case 14834:
                case 33400:
                case 33401:
                case 33402:
                case 15582:
                case 15583:
                case 15584:
                    Mining.displayEmptyRockMessage(player, new Location(objectX, objectY, player.getLocation().getZ()));
                    break;

                case 2491: // Rune essence
                    Mining.prospectRock(player, objectX, objectY, "Rune essence");
                    break;

                case 27663: // Duel arena bank chest.
                case 2213:  // Catherby bank booth.
                case 11402: // Varrock bank booth.
                case 11758: // Falador bank booth.
                case 36786: // Lumbridge bank booth.
                case 35647: // Al-Kharid bank booth.
                case 25808: // Seers bank booth.
                case 34752: // Ardougne bank booth.
                case 26972: // Edgeville bank booth.
                case 29085: // Ooglog bank booth.
                    player.getBank().openBank(false, objectX, objectY);
                    break;
            }
        }
Beispiel #25
0
        private void handleSwapSlot(Player player, Packet packet)
        {
            int oldSlot = packet.readUShort();
            int childId = packet.readLEShort();
            int interfaceId = packet.readLEShort();
            int newSlot = packet.readShortA();
            int swapType = packet.readByteS();
            int oldItem = player.getInventory().getItemInSlot(oldSlot);
            int oldAmount = player.getInventory().getAmountInSlot(oldSlot);
            int newItem = player.getInventory().getItemInSlot(newSlot);
            int newAmount = player.getInventory().getAmountInSlot(newSlot);
            if (oldSlot > 28 || oldSlot < 0 || newSlot > 28 || oldSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            switch (interfaceId)
            {
                case 149:
                    if (swapType == 0 && childId == 0)
                    {
                        player.getInventory().getSlot(oldSlot).setItemId(newItem);
                        player.getInventory().getSlot(oldSlot).setItemAmount(newAmount);
                        player.getInventory().getSlot(newSlot).setItemId(oldItem);
                        player.getInventory().getSlot(newSlot).setItemAmount(oldAmount);
                    }
                    break;

                default:
                    Misc.WriteError("UNHANDLED ITEM SWAP 1 : interface = " + interfaceId);
                    break;
            }
            //No need to update the screen since the client does it for us!
        }
Beispiel #26
0
        private void handleThirdClickNPC(Player player, Packet packet)
        {
            int npcIndex = packet.readShortA();
            if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            Npc npc = Server.getNpcList()[npcIndex];
            if (npc == null || npc.isDestroyed())
            {
                return;
            }
            Console.WriteLine("Third click NPC " + npc.getId());
            SkillHandler.resetAllSkills(player);
            if (Thieving.wantToThieveNpc(player, npc))
            {
                return;
            }
            else if (Fishing.wantToFish(player, npc, true))
            {
                return;
            }
            else if (AgilityArena.dialogue(player, npc, true))
            {
                return;
            }
            else if (TzHaar.interactTzhaarNPC(player, npc, 2))
            {
                return;
            }
            else if (WarriorGuild.talkToWarriorGuildNPC(player, npc, 2))
            {
                return;
            }
            switch (npc.getId())
            {
                case 553: // Aubury
                    HomeArea.interactWithAubury(player, npc, 2);
                    break;

                case 519: // Bob
                    BrokenBarrows.talkToBob(player, npc, -1, 2);
                    break;
            }
        }
Beispiel #27
0
        private void handleFirstClickObject(Player player, Packet packet)
        {
            int objectX = packet.readLEShort();
            ushort objectId = (ushort)packet.readShortA();
            int objectY = packet.readUShort();
            if (objectX < 1000 || objectY < 1000 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            SkillHandler.resetAllSkills(player);
            player.getPackets().closeInterfaces();
            Console.WriteLine("First object click = " + objectId + " " + objectX + " " + objectY);
            if (RuneCraft.wantToRunecraft(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (RuneCraft.enterRift(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (RuneCraft.enterViaTiara(player, objectId, objectX, objectY))
            {
                player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ()));
                return;
            }
            else if (RuneCraft.leaveAltar(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (Barrows.leaveCrypt(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (Barrows.tryOpenCoffin(player, objectId))
            {
                return;
            }
            else if (Barrows.openTunnelDoor(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (Thieving.wantToThieveChest(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (Agility.doAgility(player, objectId, objectX, objectY))
            {
                return;
            }
            else if (Farming.interactWithPatch(player, objectId, objectX, objectY, -1))
            {
                return;
            }
            else if (Server.getGlobalObjects().getDoors().useDoor(player, objectId, objectX, objectY, player.getLocation().getZ()))
            {
                return;
            }
            else if (LaddersAndStairs.useObject(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 1))
            {
                return;
            }
            else if (WildernessObelisks.useWildernessObelisk(player, objectId, new Location(objectX, objectY, player.getLocation().getZ())))
            {
                return;
            }
            if (player.getTemporaryAttribute("unmovable") != null)
            {
                return;
            }
            player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ()));
            switch (objectId)
            {
                case 2492: // essence mine portals
                    RuneCraft.leaveEssMine(player, new Location(objectX, objectY, player.getLocation().getZ()));
                    break;

                case 5959:
                case 5960:
                    Wilderness.handleLever(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()));
                    break;

                case 733: // Wilderness web
                    Wilderness.slashWeb(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()));
                    break;

                case 28089: // GE desk
                    Server.getGrandExchange().clickDesk(player, objectX, objectY, 1);
                    break;

                case 9359: // Tzhaar main exit
                    TzHaar.exitTzhaar(player);
                    break;

                case 31284: // Tzhaar entrance
                    TzHaar.enterTzhaar(player);
                    break;

                case 9357: // Fight cave exit
                    FightCave.exitCave(player, objectX, objectY);
                    break;

                case 9356: // Fight cave entrance
                    FightCave.enterCave(player);
                    break;

                case 9391: // Tzhaar fight pits viewing orb
                    Server.getMinigames().getFightPits().useOrb(player, -1);
                    break;

                case 9369: // Tzhaar pits main entrance
                case 9368: // Tzhaar pits game door
                    Server.getMinigames().getFightPits().useDoor(player, objectId);
                    break;

                case 3617: // Agility arena ladder
                    AgilityArena.enterArena(player, objectX, objectY);
                    break;

                case 3618:
                    if (Location.atAgilityArena(player.getLocation()))
                    {
                        AgilityArena.exitArena(player, objectX, objectY);
                    }
                    break;

                case 6: // Dwarf multicannon
                    DwarfCannon cannon = player.getCannon();
                    Location l = new Location(objectX, objectY, player.getLocation().getZ());
                    if (cannon == null || (cannon != null & !l.withinDistance(cannon.getLocation(), 2)))
                    {
                        player.getPackets().sendMessage("This isn't your cannon!");
                        break;
                    }
                    cannon.fireCannon();
                    break;

                case 7: //Cannon base only
                case 8: //Cannon stand
                case 9: //Cannon barrels
                    DwarfCannon cannonPickup = player.getCannon();
                    Location cannonLocation = new Location(objectX, objectY, player.getLocation().getZ());
                    if (cannonPickup == null || (cannonPickup != null & !cannonLocation.withinDistance(cannonPickup.getLocation(), 2)))
                    {
                        player.getPackets().sendMessage("This isn't your cannon!");
                        break;
                    }
                    cannonPickup.pickupCannon();
                    break;

                case 11601: // Clay oven
                    player.getPackets().modifyText("Please use the item on the oven.", 210, 1);
                    player.getPackets().sendChatboxInterface(210);
                    break;

                case 10284: // Barrows chest
                    Barrows.openChest(player);
                    break;

                case 4483: // Castle wars bank chest.
                case 21301: // Neitiznot bank chest
                    player.getBank().openBank(false, objectX, objectY);
                    break;

                case 1276: // Normal tree
                case 1278: // Normal tree
                case 2409: // Normal tree
                case 1277: // Normal tree with but different coloured stump
                case 3034: // Normal tree with dark stump
                case 3033: // Normal tree with dark stump
                case 10041: // Normal tree
                case 1282: // Dead tree
                case 1283: // Dead tree
                case 1284: // Dead tree
                case 1285: // Dead tree
                case 1286: // Dead tree
                case 1289: // Dead tree
                case 1290: // Dead tree
                case 1365: // Dead tree
                case 1383: // Dead tree
                case 1384: // Dead tree
                case 1291: // Dead tree
                case 3035: // Dead tree
                case 3036: // Dead tree
                case 1315: // Evergreen
                case 1316: // Evergreen
                case 1318: // Snowy Evergreen
                case 1319: // Snowy Evergreen
                case 1330: // Snow covered tree
                case 1331: // Snow covered tree
                case 1332: // Snow covered tree
                case 3879: // Evergreen from elf land
                case 3881: // Evergreen from elf land (slightly bigger than one above)
                case 3882: // Evergreen from elf land (slightly bigger than one above)
                case 3883: // Small Evergreen from elf land
                case 1280: // Normal tree orange stump
                case 14309: // PC game island tree
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 0, true);
                    break;

                case 1281: // Normal Oak tree
                case 3037: // Oak tree dark stump
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 1, true);
                    break;

                case 1308: // Normal Willow tree
                case 5551: // Normal Willow tree
                case 5552: // Normal Willow tree
                case 5553: // Normal Willow tree
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 2, true);
                    break;

                case 2023: // Achey tree
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 3, true);
                    break;

                case 9036: // Normal Teak tree
                case 15062: // Normal Teak tree (same as above?)
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 4, true);
                    break;

                case 1307: // Normal Maple tree
                case 4674:// Exactly same as above
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 5, true);
                    break;

                case 2289: // Normal Hollow tree
                case 4060: // Normal Hollow tree (bigger than above)
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 6, true);
                    break;

                case 9034: // Normal Mahogany tree
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 7, true);
                    break;

                case 21273: // Normal Arctic pine
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 8, true);
                    break;

                case 28951: // Normal Eucalyptus tree
                case 28952: // Normal Eucalyptus tree (smaller)
                case 28953: // Normal Eucalyptus tree (smallest)
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 9, true);
                    break;

                case 1309: // Yew tree
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 10, true);
                    break;

                case 1306: // Normal Magic tree
                    Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 11, true);
                    break;

                case 3203: // Duel arena trapdoors.
                    if (player.getDuel() != null)
                    {
                        player.getDuel().forfeitDuel(objectX, objectY);
                        break;
                    }
                    break;

                case 7152: // Abyss tendrils.
                case 7144:
                    AbyssObstacles.chopTendrils(player, objectX, objectY);
                    break;

                case 7147: // Abyss tunnel.
                    AbyssObstacles.useAgilityTunnel(player, objectX, objectY);
                    break;

                case 7146: // Abyss eyes.
                case 7150:
                    AbyssObstacles.passEyes(player, objectX, objectY);
                    break;

                case 7151: // Abyss boil.
                case 7145:
                    AbyssObstacles.burnBoil(player, objectX, objectY);
                    break;

                case 7153: // Abyss mining rock.
                case 7143:
                    AbyssObstacles.mineRock(player, objectX, objectY);
                    break;

                case 2213: // Catherby bank booth.
                case 11402: // Varrock bank booth.
                case 11758: // Falador bank booth.
                case 36786: // Lumbridge bank booth.
                case 35647: // Al-Kharid bank booth.
                case 25808: // Seers bank booth.
                case 34752: // Ardougne bank booth.
                case 26972: // Edgeville bank booth.
                case 29085: // Ooglog bank booth.
                    player.getBank().openBank(true, objectX, objectY);
                    break;

                case 2491: // Essence rock
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 0, true);
                    break;

                case 11954: // Iron rocks
                case 11955:
                case 11956:
                case 14856:
                case 14857:
                case 14858:
                case 31071:
                case 31072:
                case 31073:
                case 32441:
                case 32442:
                case 32443:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 6, true);
                    break;

                case 11948: // Silver rocks
                case 11949:
                case 11950:
                case 11165:
                case 11186:
                case 11187:
                case 11188:
                case 31074:
                case 31075:
                case 31076:
                case 32444:
                case 32445:
                case 32446:
                case 15579:
                case 15580:
                case 15581:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 8, true);
                    break;

                case 15504: // Clay rocks
                case 15503:
                case 15505:
                case 11189:
                case 11190:
                case 11191:
                case 31062:
                case 31063:
                case 31064:
                case 32429:
                case 32430:
                case 32431:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 1, true);
                    break;

                case 11960: // Copper rocks
                case 11961:
                case 11962:
                case 11936:
                case 11937:
                case 11938:
                case 31080:
                case 31081:
                case 31082:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 2, true);
                    break;

                case 11959: // Tin rocks
                case 11958:
                case 11957:
                case 11933:
                case 11934:
                case 11935:
                case 31077:
                case 31078:
                case 31079:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 3, true);
                    break;

                case 11930: // Coal rocks
                case 11931:
                case 11932:
                case 14850:
                case 14851:
                case 14852:
                case 31068:
                case 31069:
                case 31070:
                case 32426:
                case 32427:
                case 32428:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 9, true);
                    break;

                case 11951: // Gold rocks
                case 11952:
                case 11953:
                case 11183:
                case 11184:
                case 11185:
                case 31065:
                case 31066:
                case 31067:
                case 32432:
                case 32433:
                case 32434:
                case 15576:
                case 15577:
                case 15578:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 10, true);
                    break;

                case 11945: // Mithril rocks
                case 11946:
                case 11947:
                case 11942:
                case 11943:
                case 11944:
                case 14853:
                case 14854:
                case 14855:
                case 31086:
                case 31087:
                case 31088:
                case 32438:
                case 32439:
                case 32440:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 11, true);
                    break;

                case 11963: // Adamant rocks
                case 11964:
                case 11965:
                case 11939:
                case 11940:
                case 11941:
                case 14862:
                case 14863:
                case 14864:
                case 31083:
                case 31084:
                case 31085:
                case 32435:
                case 32436:
                case 32437:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 12, true);
                    break;

                case 14859: // Rune rocks
                case 14860:
                case 14861:
                    Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 13, true);
                    break;

                case 11552: // Empty rocks
                case 11553:
                case 11554:
                case 11555:
                case 11556:
                case 31059:
                case 31060:
                case 31061:
                case 14832:
                case 14833:
                case 14834:
                case 33400:
                case 33401:
                case 33402:
                case 15582:
                case 15583:
                case 15584:
                    Mining.displayEmptyRockMessage(player, new Location(objectX, objectY, player.getLocation().getZ()));
                    break;

                case 23271: // Wilderness ditch
                    Wilderness.crossDitch(player, objectX, objectY);
                    break;
            }
        }
Beispiel #28
0
        private void handleSwapSlot2(Player player, Packet packet)
        {
            int interfaceId = packet.readLEShort();
            int child = packet.readUShort();
            int newSlot = packet.readLEShort();
            int interface2 = packet.readUShort();
            int child2 = packet.readUShort();
            int oldSlot = packet.readLEShort();
            int oldItem = player.getInventory().getItemInSlot(oldSlot);
            int oldAmount = player.getInventory().getAmountInSlot(oldSlot);
            int newItem = player.getInventory().getItemInSlot(newSlot);
            int newAmount = player.getInventory().getAmountInSlot(newSlot);
            if (oldSlot > 28 || oldSlot < 0 || newSlot > 28 || oldSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            switch (interfaceId)
            {
                case 621: // Shop.
                case 763: // Bank.
                case 336: // Duel
                    player.getInventory().getSlot(oldSlot).setItemId(newItem);
                    player.getInventory().getSlot(oldSlot).setItemAmount(newAmount);
                    player.getInventory().getSlot(newSlot).setItemId(oldItem);
                    player.getInventory().getSlot(newSlot).setItemAmount(oldAmount);
                    break;

                default:
                    Misc.WriteError("UNHANDLED ITEM SWAP 2 : interface = " + interfaceId);
                    break;
            }
            //No need to update the screen since the client does it for us!
            player.getPackets().refreshInventory();
        }
Beispiel #29
0
 private void handleFirstClickNPC(Player player, Packet packet)
 {
     int npcIndex = packet.readLEShortA();
     if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     SkillHandler.resetAllSkills(player);
     Npc npc = Server.getNpcList()[npcIndex];
     if (npc == null || npc.isDestroyed())
     {
         return;
     }
     Combat.newAttack(player, npc);
 }
Beispiel #30
0
 public void handlePacket(Player player, Packet p)
 {
 }