Exemple #1
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);
 }
Exemple #2
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());
        }
Exemple #3
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;
            }
        }
Exemple #4
0
 private void handlePickupItem(Player player, Packet packet)
 {
     int x = packet.readLEShort();
     int id = packet.readUShort();
     int y = packet.readLEShortA();
     Location l = new Location(x, y, player.getLocation().getZ());
     SkillHandler.resetAllSkills(player);
     if (x < 1000 || y < 1000 | id < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     player.getPackets().closeInterfaces();
     if (player.getLocation().Equals(l))
     {
         Server.getGroundItems().pickupItem(player, id, player.getLocation());
         return;
     }
     CoordinateEvent pickupItemCoordinateEvent = new CoordinateEvent(player, l);
     pickupItemCoordinateEvent.setAction(() =>
     {
         Server.getGroundItems().pickupItem(player, id, player.getLocation());
     });
     Server.registerCoordinateEvent(pickupItemCoordinateEvent);
 }
Exemple #5
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!
        }
Exemple #6
0
 private void handleItemOnItem(Player player, Packet packet)
 {
     int itemSlot = packet.readUShort();
     int unused = packet.readInt();
     int withSlot = packet.readLEShort();
     int unused2 = packet.readInt();
     int itemUsed = packet.readLEShortA();
     int usedWith = packet.readLEShortA();
     if (itemSlot > 28 || itemSlot < 0 || withSlot > 28 || withSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
     {
         return;
     }
     SkillHandler.resetAllSkills(player);
     player.getPackets().closeInterfaces();
     if (player.getInventory().getSlot(itemSlot).getItemId() == itemUsed && player.getInventory().getSlot(withSlot).getItemId() == usedWith)
     {
         if (Fletching.isFletching(player, itemUsed, usedWith))
         {
             return;
         }
         else if (Herblore.doingHerblore(player, itemUsed, usedWith))
         {
             return;
         }
         else if (Herblore.mixDoses(player, itemUsed, usedWith, itemSlot, withSlot))
         {
             return;
         }
         else if (Crafting.wantsToCraft(player, itemUsed, usedWith))
         {
             return;
         }
         else if (Firemaking.isFiremaking(player, itemUsed, usedWith, itemSlot, withSlot))
         {
             return;
         }
         else if (Farming.plantSapling(player, itemUsed, usedWith))
         {
             return;
         }
         else
         {
             player.getPackets().sendMessage("Nothing interesting happens.");
         }
     }
 }
Exemple #7
0
        private void handleItemOnObject(Player player, Packet packet)
        {
            int objectX = packet.readShortA();
            int item = packet.readUShort();
            int objectY = packet.readLEShort();
            int slot = packet.readUShort();
            int interfaceId = packet.readLEShort();
            int child = packet.readUShort();
            int objectId = packet.readShortA();
            if (slot > 28 || slot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
            {
                return;
            }
            Console.WriteLine("Item on object = " + objectId + " " + objectX + " " + objectY);
            SkillHandler.resetAllSkills(player);
            player.getPackets().closeInterfaces();
            player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ()));
            if (player.getInventory().getItemInSlot(slot) == item)
            {
                if (Crafting.wantsToCraftOnObject(player, player.getInventory().getItemInSlot(slot), objectId))
                {
                    return;
                }
                else if (Farming.interactWithPatch(player, objectId, objectX, objectY, player.getInventory().getItemInSlot(slot)))
                {
                    return;
                }
                else if (WarriorGuild.useAnimator(player, player.getInventory().getItemInSlot(slot), objectId, objectX, objectY))
                {
                    return;
                }
                if (player.getInventory().getItemInSlot(slot) == 7936)
                {
                    if (RuneCraft.wantToRunecraft(player, objectId, objectX, objectY))
                    {
                        return;
                    }
                    if (RuneCraft.useTalisman(player, objectId, objectX, objectY))
                    {
                        return;
                    }
                }
                switch (objectId)
                {
                    case 6: // Cannon:
                        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.loadCannon();
                        break;

                    case 36781: // Lumbridge fountain.
                    case 24214:	// Fountain in east Varrock.
                    case 24265:	// Varrock main fountain.
                    case 11661:	// Falador waterpump.
                    case 11759:	// Falador south fountain.
                    case 879:	// Camelot fountains.
                    case 29529:	// Sink.
                    case 874:	// Sink.
                        if (FillVial.fillingVial(player, new Location(objectX, objectY, player.getLocation().getZ())) && player.getInventory().getItemInSlot(slot) == 229)
                        {
                            break;
                        }
                        break;

                    case 2728: // Range in Catherby
                        if (Cooking.isCooking(player, player.getInventory().getItemInSlot(slot), false, -1, -1))
                        {
                            break;
                        }
                        break;

                    case 2732: // Fire
                        if (Cooking.isCooking(player, player.getInventory().getItemInSlot(slot), true, objectX, objectY))
                        {
                            break;
                        }
                        break;

                    case 36956: // Lumbridge furnace
                    case 11666: // Falador furnace
                        if (Smelting.wantToSmelt(player, player.getInventory().getItemInSlot(slot)))
                        {
                            break;
                        }
                        else if (Crafting.wantsToCraftOnObject(player, player.getInventory().getItemInSlot(slot), objectId))
                        {
                            break;
                        }
                        break;

                    case 2783: // Anvil
                        if (Smithing.wantToSmithOnAnvil(player, player.getInventory().getItemInSlot(slot), new Location(objectX, objectY, player.getLocation().getZ())))
                        {
                            break;
                        }
                        break;

                    default:
                        player.getPackets().sendMessage("Nothing interesting happens.");
                        break;
                }
            }
        }
Exemple #8
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;
            }
        }
Exemple #9
0
        private void handleClickFive(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 5: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 763: // Bank inventory - X.
                    player.getPackets().displayEnterAmount();
                    player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot));
                    break;

                case 762: // Bank - X.
                    player.getPackets().displayEnterAmount();
                    player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot));
                    break;

                case 336: // Trade inventory - trade X.
                    player.getPackets().displayEnterAmount();
                    player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot));
                    break;

                case 335: // Trade interface - remove X.
                    player.getPackets().displayEnterAmount();
                    player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot));
                    break;

                case 631: // Duel interface - remove All
                    if (player.getDuel() != null)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot));
                        break;
                    }
                    break;

                case 620: // Shop - buy X/buy 50.
                    if (player.getShopSession().isInMainStock())
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot));
                    }
                    else
                    {
                        player.getShopSession().buyItem(slot, 50);
                    }
                    break;

                case 621: // Shop - Sell 50.
                    player.getShopSession().sellItem(slot, 50);
                    break;

                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" - sergeant.
                            clan.setEnterRights(Clan.ClanRank.SERGEANT);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

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

                        case 26: // "Who can share loot" - sergeant.
                            clan.setLootRights(Clan.ClanRank.SERGEANT);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Exemple #10
0
        private void handleClickThree(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 3: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 154: // Craft normal leather.
                    Leather.craftNormalLeather(player, child, player.getInventory().getItemAmount(1741), true);
                    break;

                case 542: // Glassblowing.
                    int totalGlass = player.getInventory().getItemAmount(1775);
                    switch (child)
                    {
                        case 40: // Make all beer glass.
                            Glass.craftGlass(player, totalGlass, 0, true);
                            break;

                        case 41: // Make all candle lantern.
                            Glass.craftGlass(player, totalGlass, 1, true);
                            break;

                        case 42: // Make all oil lamp.
                            Glass.craftGlass(player, totalGlass, 2, true);
                            break;

                        case 38: // Make all vial.
                            Glass.craftGlass(player, totalGlass, 3, true);
                            break;

                        case 44: // Make all Fishbowl
                            Glass.craftGlass(player, totalGlass, 4, true);
                            break;

                        case 39: // Make all orb.
                            Glass.craftGlass(player, totalGlass, 5, true);
                            break;

                        case 43: // Make all lantern lens
                            Glass.craftGlass(player, totalGlass, 6, true);
                            break;

                        case 45: // Make all dorgeshuun light orb.
                            Glass.craftGlass(player, totalGlass, 7, true);
                            break;
                    }
                    break;

                case 763: // Bank inventory - 10.
                    player.getBank().deposit(slot, 10);
                    player.getBank().refreshBank();
                    break;

                case 762: // Bank - 10.
                    player.getBank().withdraw(slot, 10);
                    player.getBank().refreshBank();
                    break;

                case 336: // Trade/stake inventory - trade 10.
                    if (player.getTrade() != null)
                    {
                        player.getTrade().tradeItem(slot, 10);
                        break;
                    }
                    if (player.getDuel() != null)
                    {
                        player.getDuel().stakeItem(slot, 10);
                        break;
                    }
                    break;

                case 335: // Trade interface - remove 10.
                    player.getTrade().removeItem(slot, 10);
                    break;

                case 631: // Duel interface - remove 10.
                    if (player.getDuel() != null)
                    {
                        player.getDuel().removeItem(slot, 5);
                        break;
                    }
                    break;

                case 620: // Shop - buy 5.
                    player.getShopSession().buyItem(slot, 5);
                    break;

                case 621: // Shop - sell 5.
                    player.getShopSession().sellItem(slot, 5);
                    break;

                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" - recruit.
                            clan.setEnterRights(Clan.ClanRank.RECRUIT);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

                        case 26: // "Who can share loot" - recruit.
                            clan.setLootRights(Clan.ClanRank.RECRUIT);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Exemple #11
0
        public void handlePacket(Player player, Packet packet)
        {
            int size = packet.getLength();
            if (packet.getPacketId() == PacketHandlers.PacketId.WALK_2)
            {
                size -= 14;
            }
            player.getWalkingQueue().resetWalkingQueue();
            int steps = (size - 5) / 2;

            if (steps > WalkingQueue.MAX_WALKING_WAYPOINTS)
            {
                Misc.WriteError("Warning: Walk command contains too many steps (" + steps + ") currently set to 50 [maybe need increase?]");
                return;
            }

            player.getWalkingQueue().setIsRunning(packet.readByteA() == 1);
            bool following = false;
            if (!canWalk(player, packet, following))
            {
                player.getPackets().clearMapFlag();
                player.getWalkingQueue().resetWalkingQueue();
                return;
            }

            int firstX = packet.readUShort() - (player.getLocation().getRegionX() - 6) * 8;
            int firstY = packet.readShortA() - (player.getLocation().getRegionY() - 6) * 8;
            player.getWalkingQueue().addToWalkingQueue(firstX, firstY);

            for (int i = 0; i < steps; i++) //all the waypoints.
                player.getWalkingQueue().addToWalkingQueue((packet.readByteA() + firstX), (packet.readByteS() + firstY));

            if (player.getTeleportTo() != null) //is teleporting?
                player.getWalkingQueue().resetWalkingQueue();

            if (player.getTemporaryAttribute("homeTeleporting") != null)
            {
                player.removeTemporaryAttribute("homeTeleporting");
            }
            SkillHandler.resetAllSkills(player);
            if (player.getTrade() != null)
                player.getTrade().decline();
            if (player.getDuel() != null)
            {
                if (player.getDuel().getStatus() < 4)
                    player.getDuel().declineDuel();
                else if (player.getDuel().getStatus() == 8)
                    player.getDuel().recieveWinnings(player);
            }
            if (player.getTarget() != null)
            {
                if (!following && player.getTarget().getAttacker() != null && player.getTarget().getAttacker().Equals(player))
                    player.getTarget().setAttacker(null);
            }

            if (!following)
            {
                player.getFollow().setFollowing(null);
                player.setTarget(null);
                player.removeTemporaryAttribute("autoCasting");
                if (player.getEntityFocus() != 65535)
                    player.setEntityFocus(65535);
            }
            player.getPackets().closeInterfaces();
        }
Exemple #12
0
        private void handleClickSix(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 6: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 763: // Bank inventory - All.
                    player.getBank().deposit(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot)));
                    player.getBank().refreshBank();
                    break;

                case 762: // Bank - All.
                    player.getBank().withdraw(slot, player.getBank().getAmountInSlot(slot));
                    player.getBank().refreshBank();
                    break;

                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" - lieutenant.
                            clan.setEnterRights(Clan.ClanRank.LIEUTENANT);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

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

                        case 26: // "Who can share loot" - lieutenant.
                            clan.setLootRights(Clan.ClanRank.LIEUTENANT);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Exemple #13
0
 private void handleClickTen(Player player, Packet packet)
 {
     int interfaceId = packet.readUShort();
     int child = packet.readUShort();
     int slot = packet.readUShort();
     Console.WriteLine("InterfaceOption 10: interfaceId: " + interfaceId);
 }
Exemple #14
0
        private void handleClickSeven(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 7: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 762: // Bank - All but one.
                    player.getBank().withdraw(slot, player.getBank().getAmountInSlot(slot) - 1);
                    player.getBank().refreshBank();
                    break;

                case 336: // Trade inventory - trade all.
                    //player.getTrade().lendItem(slot);
                    break;

                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" - captain.
                            clan.setEnterRights(Clan.ClanRank.CAPTAIN);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

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

                        case 26: // "Who can share loot" - captain.
                            clan.setLootRights(Clan.ClanRank.CAPTAIN);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Exemple #15
0
 private void handleClickOne(Player player, Packet packet)
 {
     int slot = packet.readShortA();
     int item = packet.readUShort();
     int childId = packet.readUShort();
     int interfaceId = packet.readUShort();
     if (slot < 0 || slot > 28 || player.isDead())
     {
         return;
     }
     Console.WriteLine("Click One Slot = " + slot);
     player.getPackets().closeInterfaces();
     Console.WriteLine("InterfaceOption 1: interfaceId: " + interfaceId);
     switch (interfaceId)
     {
         case 387: // Unequip item
             if (slot < 14 && player.getEquipment().getItemInSlot((ItemData.EQUIP)slot) == item)
             {
                 player.getEquipment().unequipItem((ItemData.EQUIP)slot);
             }
             break;
     }
 }
Exemple #16
0
        private void handleClickFour(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 4: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 763: // Bank inventory - Custom amount.
                    player.getBank().deposit(slot, player.getBank().getLastXAmount());
                    player.getBank().refreshBank();
                    break;

                case 762: // Bank - Custom amount.
                    player.getBank().withdraw(slot, player.getBank().getLastXAmount());
                    player.getBank().refreshBank();
                    break;

                case 154: // Craft normal leather.
                    player.getPackets().displayEnterAmount();
                    player.setTemporaryAttribute("interfaceVariable", new EnterVariable(154, child));
                    break;

                case 542: // Glassblowing.
                    switch (child)
                    {
                        case 40: // Make X beer glass.
                        case 41: // Make X candle lantern.
                        case 42: // Make X oil lamp.
                        case 38: // Make X vial.
                        case 44: // Make X Fishbowl
                        case 39: // Make X orb.
                        case 43: // Make X lantern lens
                        case 45: // Make X dorgeshuun light orb.
                            player.getPackets().displayEnterAmount();
                            player.setTemporaryAttribute("interfaceVariable", new EnterVariable(542, child));
                            break;
                    }
                    break;

                case 336: // Trade/stake inventory - trade all.
                    if (player.getTrade() != null)
                    {
                        player.getTrade().tradeItem(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot)));
                        break;
                    }
                    if (player.getDuel() != null)
                    {
                        player.getDuel().stakeItem(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot)));
                        break;
                    }
                    break;

                case 335: // Trade interface - remove all.
                    player.getTrade().removeItem(slot, player.getTrade().getItemAmount(player.getTrade().getItemInSlot(slot)));
                    break;

                case 631: // Duel interface - remove All
                    if (player.getDuel() != null)
                    {
                        player.getDuel().removeItem(slot, player.getDuel().getItemAmount(player.getDuel().getItemInSlot(slot)));
                        break;
                    }
                    break;

                case 620: // Shop - buy 10.
                    player.getShopSession().buyItem(slot, 10);
                    break;

                case 621: // Shop - sell 10.
                    player.getShopSession().sellItem(slot, 10);
                    break;

                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" - corporal.
                            clan.setEnterRights(Clan.ClanRank.CORPORAL);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

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

                        case 26: // "Who can share loot" - corporal.
                            clan.setLootRights(Clan.ClanRank.CORPORAL);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Exemple #17
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();
        }
Exemple #18
0
        private void handleClickTwo(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            int child = packet.readUShort();
            int slot = packet.readUShort();
            Console.WriteLine("InterfaceOption 2: interfaceId: " + interfaceId);
            switch (interfaceId)
            {
                case 105: // GE Interface
                    switch (child)
                    {
                        case 209: // "Collect" and "Collect-items" option
                            player.getGESession().collectSlot1(false);
                            break;

                        case 211: // Left box "Collect" option (coins)
                            player.getGESession().collectSlot2();
                            break;
                    }
                    break;

                case 154: // Craft normal leather.
                    Leather.craftNormalLeather(player, child, 5, true);
                    break;

                case 542: // Glassblowing.
                    switch (child)
                    {
                        case 40: // Make 5 beer glass.
                            Glass.craftGlass(player, 5, 0, true);
                            break;

                        case 41: // Make 5 candle lantern.
                            Glass.craftGlass(player, 5, 1, true);
                            break;

                        case 42: // Make 5 oil lamp.
                            Glass.craftGlass(player, 5, 2, true);
                            break;

                        case 38: // Make 5 vial.
                            Glass.craftGlass(player, 5, 3, true);
                            break;

                        case 44: // Make 5 Fishbowl
                            Glass.craftGlass(player, 5, 4, true);
                            break;

                        case 39: // Make 5 orb.
                            Glass.craftGlass(player, 5, 5, true);
                            break;

                        case 43: // Make 5 lantern lens
                            Glass.craftGlass(player, 5, 6, true);
                            break;

                        case 45: // Make 5 dorgeshuun light orb.
                            Glass.craftGlass(player, 5, 7, true);
                            break;
                    }
                    break;

                case 763: // Bank inventory - 5.
                    player.getBank().deposit(slot, 5);
                    player.getBank().refreshBank();
                    break;

                case 762: // Bank - 5.
                    player.getBank().withdraw(slot, 5);
                    player.getBank().refreshBank();
                    break;

                case 336: // Trade/stake inventory - trade 5.
                    if (player.getTrade() != null)
                    {
                        player.getTrade().tradeItem(slot, 5);
                        break;
                    }
                    if (player.getDuel() != null)
                    {
                        player.getDuel().stakeItem(slot, 5);
                        break;
                    }
                    break;

                case 631: // Duel interface - remove 5
                    if (player.getDuel() != null)
                    {
                        player.getDuel().removeItem(slot, 5);
                        break;
                    }
                    break;

                case 335: // Trade interface - remove 5.
                    player.getTrade().removeItem(slot, 5);
                    break;

                case 620: // Shop - buy 1.
                    player.getShopSession().buyItem(slot, 1);
                    break;

                case 621: // Shop - sell 1.
                    player.getShopSession().sellItem(slot, 1);
                    break;

                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" - any friends.
                            clan.setEnterRights(Clan.ClanRank.FRIEND);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

                        case 26: // "Who can share loot" - any friends.
                            clan.setLootRights(Clan.ClanRank.FRIEND);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;
            }
        }
Exemple #19
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);
             }
         }
     }
 }
Exemple #20
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;
     }
 }
Exemple #21
0
 private void handleFourthClickObject(Player player, Packet packet)
 {
     int y = packet.readLEShort();
     int x = packet.readLEShortA();
     ushort id = packet.readUShort();
     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("Fourth object click = " + id + " " + x + " " + y);
     switch (id)
     {
         case 28089: // GE desk
             Server.getGrandExchange().clickDesk(player, x, y, 3);
             break;
     }
 }
Exemple #22
0
        private void handleActionButton(Player player, Packet packet)
        {
            int interfaceId = packet.readUShort();
            ushort buttonId = packet.readUShort();
            ushort buttonId2 = 0;
            if (packet.getLength() >= 6)
            {
                buttonId2 = packet.readUShort();
            }
            if (buttonId2 == 65535)
            {
                buttonId2 = 0;
            }
            Console.WriteLine("button = " + interfaceId + " " + buttonId + " " + buttonId2);
            switch (interfaceId)
            {
                case 389: // GE Item Search
                    if (player.getGESession() != null)
                    {
                        if (player.getGESession().getCurrentOffer() != null)
                        {
                            if (player.getGESession().getCurrentOffer() is BuyOffer)
                            {
                                player.getPackets().sendInterface(0, 752, 6, 137); // Removes the item search
                            }
                        }
                    }
                    break;

                case 374: // Tzhaar fight pits viewing orb
                    Server.getMinigames().getFightPits().useOrb(player, buttonId);
                    break;

                case 107: // GE Sell inventory.
                    if (player.getGESession() == null)
                    {
                        break;
                    }
                    switch (buttonId)
                    {
                        case 18: // Offer
                            player.getGESession().offerSellItem(buttonId2);
                            break;
                    }
                    break;

                case 105: // GE interface
                    if (player.getGESession() == null)
                    {
                        break;
                    }
                    switch (buttonId)
                    {
                        case 209: // Collect-notes
                            player.getGESession().collectSlot1(true);
                            break;

                        case 203: // Abort offer
                            player.getGESession().abortOffer();
                            break;

                        case 31: // Sell, box 1
                            player.getGESession().newSellOffer(0);
                            break;

                        case 30: // Buy, box 1
                            player.getGESession().newBuyOffer(0);
                            break;

                        case 18: // Check status, box 1
                            player.getGESession().checkOffer(0);
                            break;

                        case 46: // Buy, box 2
                            player.getGESession().newBuyOffer(1);
                            break;

                        case 47: // Sell, box 2
                            player.getGESession().newSellOffer(1);
                            break;

                        case 34: // Check status, box 2
                            player.getGESession().checkOffer(1);
                            break;

                        case 62: // Buy, box 3
                            player.getGESession().newBuyOffer(2);
                            break;

                        case 63: // Sell, box 3
                            player.getGESession().newSellOffer(2);
                            break;

                        case 50: // Check status, box 3
                            player.getGESession().checkOffer(2);
                            break;

                        case 81: // Buy, box 4
                            player.getGESession().newBuyOffer(3);
                            break;

                        case 82: // Sell, box 4
                            player.getGESession().newSellOffer(3);
                            break;

                        case 69: // Check status, box 4
                            player.getGESession().checkOffer(3);
                            break;

                        case 100: // Buy, box 5
                            player.getGESession().newBuyOffer(4);
                            break;

                        case 101: // Sell, box 5
                            player.getGESession().newSellOffer(4);
                            break;

                        case 88: // Check status, box 5
                            player.getGESession().checkOffer(4);
                            break;

                        case 119: // Buy, box 6
                            player.getGESession().newBuyOffer(5);
                            break;

                        case 120: // Sell, box 6
                            player.getGESession().newSellOffer(5);
                            break;

                        case 107: // Check status, box 6
                            player.getGESession().checkOffer(5);
                            break;

                        case 127: // The "back" button
                            player.getPackets().closeInterfaces();
                            player.setGESession(new GESession(player));
                            break;

                        case 194: // Search for item
                            player.getGESession().openItemSearch();
                            break;

                        case 159: // Increment amount by 1
                            player.getGESession().incrementAmount(1);
                            break;

                        case 157: // Decrease amount by 1
                            player.getGESession().decreaseAmount(1);
                            break;

                        case 162: // Increase amount by +1
                            player.getGESession().incrementAmount(1);
                            break;

                        case 164: // Increase amount by +10
                            player.getGESession().incrementAmount(10);
                            break;

                        case 166: // Increase amount by +100
                            player.getGESession().incrementAmount(100);
                            break;

                        case 168: // Increase amount by +1k (or All if selling)
                            player.getGESession().incrementAmount(1000);
                            break;

                        case 170: //custom enter quantity
                            player.getPackets().displayEnterAmount();
                            player.setTemporaryAttribute("interfaceVariable", new EnterVariable(105, 0));
                            break;

                        case 185: //custom enter per price
                            player.getPackets().displayEnterAmount();
                            player.setTemporaryAttribute("interfaceVariable", new EnterVariable(105, 1));
                            break;

                        case 177: // Set price to minimum
                            player.getGESession().setPrice(0);
                            break;

                        case 180: // Set price to medium
                            player.getGESession().setPrice(1);
                            break;

                        case 183: // Set price to maximum
                            player.getGESession().setPrice(2);
                            break;

                        case 171: // Set price -1
                            player.getGESession().setPrice(3);
                            break;

                        case 173: // Set price +1
                            player.getGESession().setPrice(4);
                            break;

                        case 190: // Confirm offer
                            player.getGESession().confirmOffer();
                            break;
                    }
                    break;

                case 161: // Slayer points interfaces
                case 163:
                case 164:
                    Slayer.handlePointsInterface(player, interfaceId, buttonId);
                    break;

                case 675: // Craft jewellery:
                    player.getPackets().displayEnterAmount();
                    player.setTemporaryAttribute("interfaceVariable", new EnterVariable(675, buttonId));
                    break;

                case 154: // Craft normal leather.
                    Leather.craftNormalLeather(player, buttonId, 1, true);
                    break;

                case 542: // Craft glass.
                    switch (buttonId)
                    {
                        case 40: // Make 1 beer glass.
                            Glass.craftGlass(player, 1, 0, true);
                            break;

                        case 41: // Make 1 candle lantern.
                            Glass.craftGlass(player, 1, 1, true);
                            break;

                        case 42: // Make 1 oil lamp.
                            Glass.craftGlass(player, 1, 2, true);
                            break;

                        case 38: // Make 1 vial.
                            Glass.craftGlass(player, 1, 3, true);
                            break;

                        case 44: // Make 1 Fishbowl
                            Glass.craftGlass(player, 1, 4, true);
                            break;

                        case 39: // Make 1 orb.
                            Glass.craftGlass(player, 1, 5, true);
                            break;

                        case 43: // Make 1 lantern lens
                            Glass.craftGlass(player, 1, 6, true);
                            break;

                        case 45: // Make 1 dorgeshuun light orb.
                            Glass.craftGlass(player, 1, 7, true);
                            break;
                    }
                    break;

                case 271: // Prayer tab.
                    if (!Prayer.canUsePrayer(player, buttonId))
                    {
                        Prayer.deactivateAllPrayers(player);
                        break;
                    }
                    switch (buttonId)
                    {
                        case 5: // Thick skin.
                            Prayer.togglePrayer(player, 1, 1);
                            break;

                        case 15: // Rock skin.
                            Prayer.togglePrayer(player, 1, 2);
                            break;

                        case 31: // Steel skin.
                            Prayer.togglePrayer(player, 1, 3);
                            break;

                        case 7: // Burst of strength.
                            Prayer.togglePrayer(player, 2, 1);
                            break;

                        case 17: // Superhuman strength.
                            Prayer.togglePrayer(player, 2, 2);
                            break;

                        case 33: // Ultimate strength.
                            Prayer.togglePrayer(player, 2, 3);
                            break;

                        case 9: // Clarity of thought.
                            Prayer.togglePrayer(player, 3, 1);
                            break;

                        case 19: // Improved reflexes.
                            Prayer.togglePrayer(player, 3, 2);
                            break;

                        case 35: // Incredible reflexes.
                            Prayer.togglePrayer(player, 3, 3);
                            break;

                        case 37: // Magic protect.
                            Prayer.togglePrayer(player, 4, 1);
                            break;

                        case 39: // Ranged protect.
                            Prayer.togglePrayer(player, 4, 2);
                            break;

                        case 41: // Melee protect.
                            Prayer.togglePrayer(player, 4, 3);
                            break;

                        case 47: // Retribution.
                            Prayer.togglePrayer(player, 4, 4);
                            break;

                        case 49: // Redemption.
                            Prayer.togglePrayer(player, 4, 5);
                            break;

                        case 51: // Smite.
                            Prayer.togglePrayer(player, 4, 6);
                            break;

                        case 55: // Chivalry.
                            Prayer.togglePrayer(player, 5, 1);
                            break;

                        case 57: // Piety.
                            Prayer.togglePrayer(player, 5, 2);
                            break;

                        case 25: // Protect item.
                            Prayer.togglePrayer(player, 6, 1);
                            break;

                        case 21: // Rapid restore
                            Prayer.togglePrayer(player, 7, 1);
                            break;

                        case 23: // Rapid heal.
                            Prayer.togglePrayer(player, 7, 2);
                            break;

                        case 11: // Sharp eye.
                            Prayer.togglePrayer(player, 8, 1);
                            break;

                        case 27: // Hawk Eye.
                            Prayer.togglePrayer(player, 8, 2);
                            break;

                        case 43: // Eagle Eye.
                            Prayer.togglePrayer(player, 8, 3);
                            break;

                        case 13: // Mystic will.
                            Prayer.togglePrayer(player, 9, 1);
                            break;

                        case 29: // Mystic Lore.
                            Prayer.togglePrayer(player, 9, 2);
                            break;

                        case 45: // Mystic Might.
                            Prayer.togglePrayer(player, 9, 3);
                            break;
                    }
                    break;

                case 90: // Staff attack interface.
                    switch (buttonId)
                    {
                        case 5: // Select spell (Magic XP)
                            MagicData.configureSelectSpellInterface(player);
                            break;

                        case 9: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            MagicData.cancelAutoCast(player, true);
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 388: // Ancient magic autocast select spell.
                    switch (buttonId)
                    {
                        case 0: // Smoke rush.
                            MagicData.setAutoCastSpell(player, 16, 8, true);
                            break;

                        case 1: // Shadow rush.
                            MagicData.setAutoCastSpell(player, 17, 12, true);
                            break;

                        case 2: // Blood rush.
                            MagicData.setAutoCastSpell(player, 18, 4, true);
                            break;

                        case 3: // Ice rush.
                            MagicData.setAutoCastSpell(player, 19, 0, true);
                            break;

                        case 4: // Smoke burst.
                            MagicData.setAutoCastSpell(player, 20, 10, true);
                            break;

                        case 5: // Shadow burst.
                            MagicData.setAutoCastSpell(player, 21, 14, true);
                            break;

                        case 6: // Blood burst.
                            MagicData.setAutoCastSpell(player, 22, 6, true);
                            break;

                        case 7: // Ice burst.
                            MagicData.setAutoCastSpell(player, 23, 2, true);
                            break;

                        case 8: // Smoke blitz.
                            MagicData.setAutoCastSpell(player, 24, 9, true);
                            break;

                        case 9: // Shadow blitz.
                            MagicData.setAutoCastSpell(player, 25, 13, true);
                            break;

                        case 10: // Blood blitz.
                            MagicData.setAutoCastSpell(player, 26, 5, true);
                            break;

                        case 11: // Ice blitz.
                            MagicData.setAutoCastSpell(player, 27, 1, true);
                            break;

                        case 12: // Smoke barrage.
                            MagicData.setAutoCastSpell(player, 28, 11, true);
                            break;

                        case 13: // Shadow barrage.
                            MagicData.setAutoCastSpell(player, 29, 15, true);
                            break;

                        case 14: // Blood barrage.
                            MagicData.setAutoCastSpell(player, 30, 7, true);
                            break;

                        case 15: // Ice barrage.
                            MagicData.setAutoCastSpell(player, 31, 3, true);
                            break;

                        case 16: // Cancel.
                            MagicData.cancelAutoCast(player, false);
                            break;
                    }
                    break;

                case 406: // Void knight mace autocast select spell.
                    switch (buttonId)
                    {
                        case 0: // Crumble undead.
                            MagicData.setAutoCastSpell(player, 32, 22, false);
                            break;

                        case 1: // Guthix claws.
                            MagicData.setAutoCastSpell(player, 34, 42, false);
                            break;

                        case 2: // Wind wave.
                            MagicData.setAutoCastSpell(player, 12, 45, false);
                            break;

                        case 3: // Water wave.
                            MagicData.setAutoCastSpell(player, 13, 48, false);
                            break;

                        case 4: // Earth wave.
                            MagicData.setAutoCastSpell(player, 14, 52, false);
                            break;

                        case 5: // Fire wave.
                            MagicData.setAutoCastSpell(player, 15, 55, false);
                            break;

                        case 6: // Cancel.
                            MagicData.cancelAutoCast(player, false);
                            break;
                    }
                    break;

                case 310: // Slayer staff autocast select spell.
                    switch (buttonId)
                    {
                        case 0: // Crumble undead.
                            MagicData.setAutoCastSpell(player, 32, 22, false);
                            break;

                        case 1: // Slayer dart.
                            MagicData.setAutoCastSpell(player, 33, 31, false);
                            break;

                        case 2: // Wind wave.
                            MagicData.setAutoCastSpell(player, 12, 45, false);
                            break;

                        case 3: // Water wave.
                            MagicData.setAutoCastSpell(player, 13, 48, false);
                            break;

                        case 4: // Earth wave.
                            MagicData.setAutoCastSpell(player, 14, 52, false);
                            break;

                        case 5: // Fire wave.
                            MagicData.setAutoCastSpell(player, 15, 55, false);
                            break;

                        case 6: // Cancel.
                            MagicData.cancelAutoCast(player, false);
                            break;
                    }
                    break;

                case 319: // Normal magic autocast select spell.
                    switch (buttonId)
                    {
                        case 0: // Wind strike.
                            MagicData.setAutoCastSpell(player, 0, 1, false);
                            break;

                        case 1: // Water strike.
                            MagicData.setAutoCastSpell(player, 1, 4, false);
                            break;

                        case 2: // Earth strike.
                            MagicData.setAutoCastSpell(player, 2, 6, false);
                            break;

                        case 3: // Fire strike.
                            MagicData.setAutoCastSpell(player, 3, 8, false);
                            break;

                        case 4: // Wind bolt.
                            MagicData.setAutoCastSpell(player, 4, 10, false);
                            break;

                        case 5: // Water bolt.
                            MagicData.setAutoCastSpell(player, 5, 14, false);
                            break;

                        case 6: // Earth bolt.
                            MagicData.setAutoCastSpell(player, 6, 17, false);
                            break;

                        case 7: // Fire bolt.
                            MagicData.setAutoCastSpell(player, 7, 20, false);
                            break;

                        case 8: // Wind blast.
                            MagicData.setAutoCastSpell(player, 8, 24, false);
                            break;

                        case 9: // Water blast.
                            MagicData.setAutoCastSpell(player, 9, 27, false);
                            break;

                        case 10: // Earth blast.
                            MagicData.setAutoCastSpell(player, 10, 33, false);
                            break;

                        case 11: // Fire blast.
                            MagicData.setAutoCastSpell(player, 11, 38, false);
                            break;

                        case 12: // Wind wave.
                            MagicData.setAutoCastSpell(player, 12, 45, false);
                            break;

                        case 13: // Water wave.
                            MagicData.setAutoCastSpell(player, 13, 48, false);
                            break;

                        case 14: // Earth wave.
                            MagicData.setAutoCastSpell(player, 14, 52, false);
                            break;

                        case 15: // Fire wave.
                            MagicData.setAutoCastSpell(player, 15, 55, false);
                            break;

                        case 16: // Cancel.
                            MagicData.cancelAutoCast(player, false);
                            break;
                    }
                    break;

                case 182: // Logout tab.
                    player.getPackets().logout();
                    break;

                case 261: // Settings tab.
                    switch (buttonId)
                    {
                        case 16: // Display settings.
                            player.getPackets().displayInterface(742);
                            break;

                        case 18: // Audio settings.
                            player.getPackets().displayInterface(743);
                            break;

                        case 3: // Run toggle.
                            if (!player.getWalkingQueue().isRunToggled())
                            {
                                player.getWalkingQueue().setRunToggled(true);
                                player.getPackets().sendConfig(173, 1);
                            }
                            else
                            {
                                player.getWalkingQueue().setRunToggled(false);
                                player.getPackets().sendConfig(173, 0);
                            }
                            break;

                        case 4: // Chat effect toggle.
                            if (!player.isChatEffectsEnabled())
                            {
                                player.setChatEffectsEnabled(true);
                                player.getPackets().sendConfig(171, 0);
                            }
                            else
                            {
                                player.setChatEffectsEnabled(false);
                                player.getPackets().sendConfig(171, 1);
                            }
                            break;

                        case 5: // Split private chat toggle.
                            if (!player.isPrivateChatSplit())
                            {
                                player.setPrivateChatSplit(true);
                                player.getPackets().sendConfig(287, 1);
                            }
                            else
                            {
                                player.setPrivateChatSplit(false);
                                player.getPackets().sendConfig(287, 0);
                            }
                            break;

                        case 7: // Accept aid toggle.
                            if (!player.isAcceptAidEnabled())
                            {
                                player.setAcceptAidEnabled(true);
                                player.getPackets().sendConfig(427, 1);
                            }
                            else
                            {
                                player.setAcceptAidEnabled(false);
                                player.getPackets().sendConfig(427, 0);
                            }
                            break;

                        case 6: // Mouse buttons toggle.
                            if (!player.isMouseTwoButtons())
                            {
                                player.setMouseTwoButtons(true);
                                player.getPackets().sendConfig(170, 0);
                            }
                            else
                            {
                                player.setMouseTwoButtons(false);
                                player.getPackets().sendConfig(170, 1);
                            }
                            break;
                    }
                    break;

                case 589: // Clan chat
                    if (buttonId == 9)
                    {
                        foreach (long friend in player.getFriends().getFriendsList())
                        {
                            player.getPackets().sendFriend(friend, player.getFriends().getWorld(friend));
                        }
                        Server.getClanManager().openClanSetup(player);
                        break;
                    }
                    break;

                case 590: // Clan chat setup
                    Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername());
                    if (clan == null)
                    {
                        break;
                    }
                    switch (buttonId)
                    {
                        case 22: // Clan name
                            player.getPackets().displayEnterText("Enter clan name :");
                            player.setTemporaryAttribute("interfaceVariable", new EnterVariable(590, 0));
                            break;

                        case 23: // "Who can enter chat" - anyone.
                            clan.setEnterRights(Clan.ClanRank.NO_RANK);
                            player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23);
                            break;

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

                        case 26: // "Who can share loot" - anyone.
                            clan.setLootRights(Clan.ClanRank.NO_RANK);
                            player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26);
                            break;
                    }
                    break;

                case 763: // Bank inventory
                    switch (buttonId)
                    {
                        case 0: // Deposit 1.
                            player.getBank().deposit(buttonId2, 1);
                            player.getBank().refreshBank();
                            break;
                    }
                    break;

                case 762: // Bank
                    switch (buttonId)
                    {
                        case 73: // withdraw 1.
                            player.getBank().withdraw(buttonId2, 1);
                            player.getBank().refreshBank();
                            break;

                        case 16: // Note item.
                            player.getBank().asNote();
                            break;

                        case 41: // first (main) bank tab
                            player.getBank().setCurrentTab(10);
                            break;

                        case 39: // first bank tab
                            player.getBank().setCurrentTab(2);
                            break;

                        case 37: // second bank tab
                            player.getBank().setCurrentTab(3);
                            break;

                        case 35: // third bank tab
                            player.getBank().setCurrentTab(4);
                            break;

                        case 33: // fourth bank tab
                            player.getBank().setCurrentTab(5);
                            break;

                        case 31: // fifth bank tab
                            player.getBank().setCurrentTab(6);
                            break;

                        case 29: // sixth bank tab
                            player.getBank().setCurrentTab(7);
                            break;

                        case 27: // seventh bank tab
                            player.getBank().setCurrentTab(8);
                            break;

                        case 25: // eighth bank tab
                            player.getBank().setCurrentTab(9);
                            break;
                    }
                    break;

                case 626: // Stake duel confirmation interface.
                    if (buttonId == 53)
                    {
                        if (player.getDuel() != null)
                        {
                            player.getDuel().acceptDuel();
                            break;
                        }
                    }
                    break;

                case 631: // Stake duel first interface.
                    if (player.getDuel() != null)
                    {
                        if (buttonId == 103)
                        {
                            player.getDuel().removeItem(buttonId2, 1);
                            break;
                        }
                        else
                        {
                            player.getDuel().toggleDuelRules(buttonId);
                            break;
                        }
                    }
                    break;

                case 387: // Equipment tab.
                    switch (buttonId)
                    {
                        case 55: // Character display.
                            player.getEquipment().displayEquipmentScreen();
                            break;

                        case 52: // Items kept on death.
                            ProtectedItems.displayItemsInterface(player);
                            break;
                    }
                    break;

                case 274: // Quest tab.
                    switch (buttonId)
                    {
                        case 3: // Achievment diary toggle.
                            player.getPackets().sendTab(85, 259);
                            player.setAchievementDiaryTab(true);
                            break;
                    }
                    break;

                case 259: // Achievment diary tab.
                    switch (buttonId)
                    {
                        case 8: // Quest tab toggle.
                            player.getPackets().sendTab(85, 274);
                            player.setAchievementDiaryTab(false);
                            break;
                    }
                    break;

                case 620: // Shop interface.
                    if (player.getShopSession() == null)
                    {
                        return;
                    }
                    switch (buttonId)
                    {
                        case 26: // Player stock tab.
                            player.getShopSession().openPlayerShop();
                            break;

                        case 25: // Main stock tab.
                            player.getShopSession().openMainShop();
                            break;

                        case 23: // Value (main stock)
                        case 24: // Value (player stock)
                            player.getShopSession().valueItem(buttonId2, false);
                            break;
                    }
                    break;

                case 621: // Shop inventory.
                    if (player.getShopSession() == null)
                    {
                        return;
                    }
                    switch (buttonId)
                    {
                        case 0: // Value (player stock)
                            player.getShopSession().valueItem(buttonId2, true);
                            break;
                    }
                    break;

                case 192: // Normal Magic tab.
                    switch (buttonId)
                    {
                        case 0: // Home Teleport.
                            Teleport.homeTeleport(player);
                            break;

                        case 15: // Varrock teleport.
                            Teleport.teleport(player, 0);
                            break;

                        case 18: // Lumbridge teleport.
                            Teleport.teleport(player, 1);
                            break;

                        case 21: // Falador teleport.
                            Teleport.teleport(player, 2);
                            break;

                        case 23: // POH teleport.
                            player.getPackets().sendMessage("This teleport is unavailable.");
                            break;

                        case 26: // Camelot teleport.
                            Teleport.teleport(player, 3);
                            break;

                        case 32: // Ardougne teleport.
                            Teleport.teleport(player, 4);
                            break;

                        case 37: // Watchtower teleport.
                            player.getPackets().sendMessage("This teleport is unavailable.");
                            //Teleport.teleport(player, 5);
                            break;

                        case 44: // Trollheim teleport.
                            Teleport.teleport(player, 6);
                            break;

                        case 47: // Ape Atoll teleport.
                            player.getPackets().sendMessage("This teleport is unavailable.");
                            break;

                        case 58: // Charge.
                            MagicCombat.castCharge(player);
                            break;
                    }
                    break;

                case 193: // Ancient magic tab.
                    switch (buttonId)
                    {
                        case 20: // Paddewwa teleport.
                            Teleport.teleport(player, 7);
                            break;

                        case 21: // Senntisten teleport.
                            Teleport.teleport(player, 8);
                            break;

                        case 22: // Kharyrll teleport.
                            Teleport.teleport(player, 9);
                            break;

                        case 23: // Lassar teleport.
                            Teleport.teleport(player, 10);
                            break;

                        case 24: // Dareeyak teleport.
                            Teleport.teleport(player, 11);
                            break;

                        case 25: // Carrallanger teleport.
                            Teleport.teleport(player, 12);
                            break;

                        case 27: // Ghorrock teleport.
                            Teleport.teleport(player, 14);
                            break;

                        case 26: // Annakarl teleport.
                            Teleport.teleport(player, 13);
                            break;

                        case 28: // Ancients Home teleport.
                            Teleport.homeTeleport(player);
                            break;
                    }
                    break;

                case 13: // Bank pin buttons.
                    if (buttonId == 29)
                    {
                        player.getBank().forgotPin();
                        break;
                    }
                    player.getBank().handleEnterPin(buttonId);
                    break;

                case 14: // Bank pin settings.
                    switch (buttonId)
                    {
                        case 60: // Set new bank pin.
                            player.getBank().displayFirstConfirmation();
                            break;

                        case 61: // Change recovery delay.
                            player.getBank().changePinDelay();
                            break;

                        case 91: // "No, I might forget it!".
                            if (player.getBank().isPinPending())
                            {
                                player.getBank().cancelPendingPin();
                                break;
                            }
                            player.getBank().openPinSettings(2);
                            break;

                        case 89: // Yes i want to set a pin.
                            if (player.getBank().isPinPending())
                            {
                                player.getBank().verifyPin(true);
                                break;
                            }
                            player.getBank().openEnterPin();
                            break;

                        case 65: // Cancel pin that's pending.
                            player.getBank().openPinSettings(4);
                            break;

                        case 62: // Change pin.
                            player.getBank().changePin();
                            break;

                        case 63: // Delete pin.
                            player.getBank().deletePin();
                            break;
                    }
                    break;

                case 464: // Emote tab.
                    Emotes.emote(player, buttonId);
                    break;

                case 320: // Skills Tab.
                    SkillMenu.display(player, buttonId);
                    break;

                case 499: // Skill menu side menu.
                    SkillMenu.subMenu(player, buttonId);
                    break;

                case 336: // Trade/duel inventory - trade 1.
                    if (player.getTrade() != null)
                    {
                        player.getTrade().tradeItem(buttonId2, 1);
                        break;
                    }
                    if (player.getDuel() != null)
                    {
                        player.getDuel().stakeItem(buttonId2, 1);
                        break;
                    }
                    break;

                case 335: // Trade interface.
                    if (player.getTrade() == null)
                    {
                        break;
                    }
                    switch (buttonId)
                    {
                        case 16: // Accept trade.
                            player.getTrade().accept();
                            break;

                        case 18: // Decline trade.
                            player.getTrade().decline();
                            break;

                        case 30: // Offer 1
                            player.getTrade().removeItem(buttonId2, 1);
                            break;
                    }
                    break;

                case 334: // Trade confirmation.
                    if (player.getTrade() == null)
                    {
                        break;
                    }
                    switch (buttonId)
                    {
                        case 21: // Decline trade.
                            player.getTrade().decline();
                            break;

                        case 20: // Accept trade.
                            player.getTrade().accept();
                            break;
                    }
                    break;

                case 750: // Run button
                    if (!player.getWalkingQueue().isRunToggled())
                    {
                        player.getWalkingQueue().setRunToggled(true);
                        player.getPackets().sendConfig(173, 1);
                    }
                    else
                    {
                        player.getWalkingQueue().setRunToggled(false);
                        player.getPackets().sendConfig(173, 0);
                    }
                    break;

                case 667: // Equipment/bonuses interface.
                    if (buttonId == 14)
                    {
                        player.getEquipment().unequipItem((ItemData.EQUIP)buttonId2);
                        break;
                    }
                    break;

                case 771: // Character design interface.
                    ConfigureAppearance.sortButton(player, buttonId);
                    break;

                case 311: // Smelt interface.
                    Smelting.smeltOre(player, buttonId, true, -1);
                    break;

                case 300: // Bar smithing interface.
                    Smithing.smithItem(player, buttonId, 1, true);
                    break;

                case 92: // Unarmed attack interface.
                    switch (buttonId)
                    {
                        case 24: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 85: // Spear attack interface.
                    switch (buttonId)
                    {
                        case 8: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 24: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 93: // Whip attack interface.
                    switch (buttonId)
                    {
                        case 8: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 24: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 89: // Dagger attack interface.
                    switch (buttonId)
                    {
                        case 10: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 26: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 82: // Longsword/scimitar attack interface.
                    switch (buttonId)
                    {
                        case 10: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 26: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 78: // Claw attack interface.
                    switch (buttonId)
                    {
                        case 10: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 26: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 81: // Godsword attack interface.
                    switch (buttonId)
                    {
                        case 10: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 26: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 88: // Mace attack interface.
                    switch (buttonId)
                    {
                        case 10: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 26: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 76: // Granite maul attack interface.
                    switch (buttonId)
                    {
                        case 8: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 24: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 77: // Bow attack interface.
                    switch (buttonId)
                    {
                        case 11: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            break;

                        case 27: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 75: // Battleaxe attack interface.
                    switch (buttonId)
                    {
                        case 10: // Special attack.
                            player.getSpecialAttack().toggleSpecBar();
                            player.getSpecialAttack().dragonBattleaxe();
                            break;

                        case 26: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 91: // Thrown weapon
                    switch (buttonId)
                    {
                        case 24: // Auto retaliate.
                            player.toggleAutoRetaliate();
                            break;

                        default:
                            AttackInterface.configureButton(player, interfaceId, buttonId);
                            break;
                    }
                    break;

                case 430: // Lunar interface
                    switch (buttonId)
                    {
                        case 14: // Vengeance
                            Lunar.castLunarSpell(player, buttonId);
                            break;
                    }
                    break;

                case 102: // Items on death interface
                    if (buttonId == 18)
                        player.getPackets().sendMessage("You will keep this item if you should you die.");
                    else
                        player.getPackets().sendMessage("You will lose this item if you should you die.");
                    break;

                default:
                    if (interfaceId != 548 && interfaceId != 751)
                    {
                        Console.WriteLine("Unhandled ActionButton : " + interfaceId + " " + buttonId + " " + buttonId2);
                    }
                    break;
            }
        }
Exemple #23
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;
            }
        }
Exemple #24
0
 private void handleGeSearch(Player player, Packet packet)
 {
     int item = packet.readUShort();
     if (item < 0 || item > 16000)
     {
         return;
     }
     if (player.getGESession() == null)
     {
         // TODO close the search interface
         return;
     }
     player.getGESession().updateSearchItem(item);
 }
Exemple #25
0
        private void handleItemOnGroundItem(Player player, Packet packet)
        {
            int objectX = packet.readLEShortA();
            int itemSlot = packet.readLEShort();
            int itemIdInInventory = packet.readLEShort();
            int itemIdOnGround = packet.readLEShort();
            int objectY = packet.readLEShortA();
            int interfaceId = packet.readLEShort();
            int child = packet.readUShort();

            if (itemSlot > 28 || itemSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null)
                return;

            if (Firemaking.isFiremaking(player, itemIdInInventory, itemIdOnGround, itemSlot, -1))
                return;
            else
                player.getPackets().sendMessage("Nothing interesting happens.");
        }
Exemple #26
0
        private void handleActionButton3(Player player, Packet packet)
        {
            int id = packet.readUShort();
            int interfaceId = packet.readUShort();
            int junk = packet.readLEShort();

            int logType = (int)(player.getTemporaryAttribute("fletchType") == null ? -1 : (int)player.getTemporaryAttribute("fletchType")); // Bows (Fletching).
            int ammoType = (int)(player.getTemporaryAttribute("ammoType") == null ? -1 : (int)player.getTemporaryAttribute("ammoType")); // Arrows (Fletching).
            int boltType = (int)(player.getTemporaryAttribute("ammoType2") == null ? -1 : (int)player.getTemporaryAttribute("ammoType2")); // Bolts (Fletching).
            int xbowType = (int)(player.getTemporaryAttribute("bowType2") == null ? -1 : (int)player.getTemporaryAttribute("bowType2")); // Xbows (Fletching).
            int bowType = (int)(player.getTemporaryAttribute("bowType") == null ? -1 : (int)player.getTemporaryAttribute("bowType")); // Longbow/Shortbow stringing (Fletching).
            int grindItem = (int)(player.getTemporaryAttribute("herbloreGrindItem") == null ? -1 : (int)player.getTemporaryAttribute("herbloreGrindItem")); // item to be grinded (Herblore)
            bool stringingBow = (bool)(player.getTemporaryAttribute("stringingBow") == null ? false : (bool)player.getTemporaryAttribute("stringingBow")); // Stringing bow/xbow (Fletching)
            int unfinishedPotion = (int)(player.getTemporaryAttribute("unfinishedPotion") == null ? -1 : (int)player.getTemporaryAttribute("unfinishedPotion")); // unfinished potion to make (Herblore)
            int completePotion = (int)(player.getTemporaryAttribute("completePotion") == null ? -1 : (int)player.getTemporaryAttribute("completePotion")); // unfinished potion to make (Herblore)
            int cookItem = (int)(player.getTemporaryAttribute("meatItem") == null ? -1 : (int)player.getTemporaryAttribute("meatItem")); // item to cook (Cooking)
            int dialogueStatus = (int)(player.getTemporaryAttribute("dialogue") == null ? -1 : (int)player.getTemporaryAttribute("dialogue")); // Dialogue status
            int craftType = (int)(player.getTemporaryAttribute("craftType") == null ? -1 : (int)player.getTemporaryAttribute("craftType")); // 'Category' of item to craft
            int leatherCraft = (int)(player.getTemporaryAttribute("leatherCraft") == null ? -1 : (int)player.getTemporaryAttribute("leatherCraft")); // Type of leather item to craft (high lvl hides)
            int boltTips = (int)(player.getTemporaryAttribute("boltTips") == null ? -1 : (int)player.getTemporaryAttribute("boltTips")); // Type of bolt tips to cut
            JewelleryTeleport.JewellerySlot js = (JewelleryTeleport.JewellerySlot)player.getTemporaryAttribute("jewelleryTeleport") == null ? null : (JewelleryTeleport.JewellerySlot)player.getTemporaryAttribute("jewelleryTeleport");
            Console.WriteLine("ACTIONBUTTON-3 " + id);
            if (JewelleryTeleport.teleport(player, id, js))
            {
                return;
            }
            switch (id)
            {
                case 2:
                    if (player.getDuel() != null)
                    {
                        if (player.getDuel().getStatus() == 6)
                        {
                            player.getDuel().finishDuel(true, true);
                            player.getPackets().sendMessage("You climb through the trapdoor and forfeit the duel.");
                            break;
                        }
                        break;
                    }
                    else
                        if (player.getTemporaryAttribute("barrowTunnel") != null)
                        {
                            Barrows.verifyEnterTunnel(player);
                            return;
                        }
                        else if (dialogueStatus == 1005)
                        {
                            Slayer.doDialogue(player, 1006);
                            break;
                        }
                        else if (dialogueStatus == 1009)
                        {
                            Slayer.doDialogue(player, 1010);
                            break;
                        }
                        else if (dialogueStatus == 1002)
                        {
                            Slayer.doDialogue(player, 1013);
                            break;
                        }
                        else if (dialogueStatus == 1017)
                        {
                            Slayer.doDialogue(player, 1019);
                            break;
                        }
                        else if (dialogueStatus == 1029)
                        {
                            Slayer.doDialogue(player, 1029);
                            break;
                        }
                        else if (dialogueStatus == 1053)
                        {
                            Slayer.doDialogue(player, 1055);
                            break;
                        }
                        else if (dialogueStatus > 1000)
                        {
                            Slayer.doDialogue(player, 1006);
                            break;
                        }
                        else if (dialogueStatus == 7)
                        {
                            AgilityArena.doDialogue(player, 7);
                            break;
                        }
                        else if (dialogueStatus == 29)
                        {
                            AgilityArena.doDialogue(player, 29);
                            break;
                        }
                        else if (dialogueStatus == 37)
                        {
                            AgilityArena.doDialogue(player, 37);
                            break;
                        }
                        else if (dialogueStatus == 46)
                        {
                            AgilityArena.doDialogue(player, 46);
                            break;
                        }
                        else if (dialogueStatus == 79)
                        {
                            WarriorGuild.talkToKamfreena(player, 79);
                            break;
                        }
                        else if (dialogueStatus == 103)
                        {
                            BrokenBarrows.showBobDialogue(player, 103);
                            break;
                        }
                        else if (dialogueStatus == 109)
                        {
                            BrokenBarrows.showBobDialogue(player, 109);
                            break;
                        }
                        else if (dialogueStatus == 159)
                        {
                            HomeArea.showAliDialogue(player, 159);
                            break;
                        }
                        else if (dialogueStatus == 207)
                        {
                            AlKharid.showAliDialogue(player, 207);
                            break;
                        }
                        else if (dialogueStatus == 242)
                        {
                            BoatOptions.showBentleyDialogue(player, 242);
                            break;
                        }
                        else if (dialogueStatus == 450)
                        {
                            FarmingAmulet.displayAllotmentOptions(player);
                            break;
                        }
                        else if (dialogueStatus == 451)
                        {
                            FarmingAmulet.teleportToPatch(player, 0);
                            break;
                        }
                        else if (dialogueStatus == 452)
                        {
                            FarmingAmulet.teleportToPatch(player, 4);
                            break;
                        }
                        else if (dialogueStatus == 453)
                        {
                            FarmingAmulet.teleportToPatch(player, 8);
                            break;
                        }
                    break;

                case 13:
                    if (logType != -1)
                    {
                        MakeBows.cutLog(player, 1, logType, 0, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pie dish
                        Clay.craftClay(player, 5, craftType, 1, true);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 8));
                        break;
                    }
                    else if (craftType == 6)
                    {// Crossbow string
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 2));
                        break;
                    }
                    break;

                case 12:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 5, logType, 0, stringingBow, true);
                        break;
                    }
                    else if (logType > 0)
                    {
                        MakeBows.cutLog(player, 1, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pie dish
                        Clay.craftClay(player, 10, craftType, 1, true);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 1, 4, leatherCraft, true); // Vambraces
                        break;
                    }
                    else if (craftType == 6)
                    {// Bowstring
                        Spinning.craftSpinning(player, 1, 1, true);
                        break;
                    }
                    break;

                case 11:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 10, logType, 0, stringingBow, true);
                        break;
                    }
                    else if (logType > 0)
                    {
                        MakeBows.cutLog(player, 1, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pie dish
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 1));
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 5, 4, leatherCraft, true); // Vambraces
                        break;
                    }
                    else if (craftType == 6)
                    {// Bowstring
                        Spinning.craftSpinning(player, 5, 1, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Tiara
                        Silver.newSilverItem(player, 1, 121, true);
                        break;
                    }
                    break;

                case 10:
                    if (logType == 0)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 0));
                        break;
                    }
                    else if (logType > 0)
                    {
                        MakeBows.cutLog(player, 5, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pot
                        Clay.craftClay(player, 1, craftType, 0, true);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 10, 4, leatherCraft, true); // Vambraces
                        break;
                    }
                    else if (craftType == 6)
                    {// Bowstring
                        Spinning.craftSpinning(player, 10, 1, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Tiara
                        Silver.newSilverItem(player, 5, 121, true);
                        break;
                    }
                    break;

                case 17:
                    if (logType != -1)
                    {
                        MakeBows.cutLog(player, 1, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay Bowl
                        Clay.craftClay(player, 5, craftType, 2, true);
                    }
                    break;

                case 16:
                    if (logType != -1)
                    {
                        MakeBows.cutLog(player, 5, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay Bowl
                        Clay.craftClay(player, 10, craftType, 2, true);
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 1, 8, leatherCraft, true); // Chaps
                        break;
                    }
                    else if (craftType == 6)
                    {// Crossbow string
                        Spinning.craftSpinning(player, 1, 2, true);
                        break;
                    }
                    break;

                case 15:
                    if (logType != -1)
                    {
                        MakeBows.cutLog(player, 10, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay Bowl
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 2));
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 5, 8, leatherCraft, true); // Chaps
                        break;
                    }
                    else if (craftType == 6)
                    {// Crossbow string
                        Spinning.craftSpinning(player, 5, 2, true);
                        break;
                    }
                    break;

                case 14:
                    if (craftType == 1 || craftType == 2)
                    { // Clay pie dish
                        Clay.craftClay(player, 1, craftType, 1, true);
                        break;
                    }
                    else if (logType == 0 && !stringingBow)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 1));
                        break;
                    }
                    else if (logType > 0)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 1));
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 10, 8, leatherCraft, true); // Chaps
                        break;
                    }
                    else if (craftType == 6)
                    {// Crossbow string
                        Spinning.craftSpinning(player, 10, 2, true);
                        break;
                    }
                    break;

                case 9:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 1, logType, 2, false, true);
                        break;
                    }
                    else if (logType > 0)
                    {
                        MakeBows.cutLog(player, 10, logType, 1, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pot
                        Clay.craftClay(player, 5, craftType, 0, true);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 4));
                        break;
                    }
                    else if (craftType == 6)
                    {// Bowstring
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 1));
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Tiara
                        Silver.newSilverItem(player, 10, 121, true);
                        break;
                    }
                    break;

                case 8:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 5, logType, 2, false, true);
                        break;
                    }
                    else if (logType > 0)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 1));
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pot
                        Clay.craftClay(player, 10, craftType, 0, true);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 1, 0, leatherCraft, true); // Body
                        break;
                    }
                    else if (craftType == 6)
                    {// Ball of wool
                        Spinning.craftSpinning(player, 1, 0, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Tiara
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(303, 121));
                        break;
                    }
                    else if (dialogueStatus < 1000)
                    {
                        Dialogue.doDialogue(player, dialogueStatus);
                        break;
                    }
                    break;

                case 7:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 10, logType, 2, false, true);
                        break;
                    }
                    else if (logType > 0)
                    {
                        MakeBows.cutLog(player, 1, logType, 0, stringingBow, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay pot
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 0));
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 5, 0, leatherCraft, true); // Body
                        break;
                    }
                    else if (craftType == 6)
                    {// Ball of wool
                        Spinning.craftSpinning(player, 5, 0, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Unholy symbol
                        Silver.newSilverItem(player, 1, 120, true);
                        break;
                    }
                    else if (dialogueStatus > 1000)
                    {
                        Slayer.doDialogue(player, dialogueStatus);
                        break;
                    }
                    else if (dialogueStatus < 1000)
                    {
                        Dialogue.doDialogue(player, dialogueStatus);
                        break;
                    }
                    break;

                case 6:
                    if (logType == 0 && !stringingBow)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 2));
                        break;
                    }
                    else if (stringingBow && bowType != -1)
                    {
                        MakeBows.cutLog(player, 1, logType, bowType, true, true);
                        break;
                    }
                    else if (boltTips > -1)
                    {
                        MakeAmmo.makeBoltTip(player, boltTips, 1, true);
                        break;
                    }
                    else if (xbowType != -1)
                    {
                        MakeXbow.createXbow(player, 1, xbowType, stringingBow, true);
                        break;
                    }
                    else if (grindItem != -1)
                    {
                        Herblore.grindIngredient(player, 1, true);
                        break;
                    }
                    else if (unfinishedPotion != -1)
                    {
                        Herblore.makeUnfinishedPotion(player, 1, true);
                        break;
                    }
                    else if (completePotion != -1)
                    {
                        Herblore.completePotion(player, 1, true);
                        break;
                    }
                    else if (cookItem != -1)
                    {
                        Cooking.cookItem(player, 1, true, player.getTemporaryAttribute("cookingFireLocation") != null);
                        break;
                    }
                    else if (logType > 0)
                    {
                        MakeBows.cutLog(player, 5, logType, 0, false, true);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        Leather.craftDragonHide(player, 10, 0, leatherCraft, true); // Body
                        break;
                    }
                    else if (craftType == 6)
                    {// Ball of wool
                        Spinning.craftSpinning(player, 10, 0, true);
                        break;
                    }
                    else if (craftType >= 50 && craftType <= 60)
                    { // Cut gem
                        Jewellery.cutGem(player, craftType, 1, true);
                        break;
                    }
                    else if (craftType >= 100 && craftType <= 110)
                    { // String amulet
                        Jewellery.stringAmulet(player, craftType, 1, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Unholy symbol
                        Silver.newSilverItem(player, 5, 120, true);
                        break;
                    }
                    else if (dialogueStatus > 1000)
                    {
                        Slayer.doDialogue(player, dialogueStatus);
                        break;
                    }
                    else if (dialogueStatus == 7)
                    {
                        AgilityArena.doDialogue(player, 41);
                        break;
                    }
                    else if (dialogueStatus == 242)
                    {
                        BoatOptions.showBentleyDialogue(player, 246);
                        break;
                    }
                    else if (dialogueStatus == 451 || dialogueStatus == 452 || dialogueStatus == 453)
                    {
                        FarmingAmulet.showOptions(player, 12622);
                        break;
                    }
                    else if (dialogueStatus < 1000)
                    {
                        Dialogue.doDialogue(player, dialogueStatus);
                        break;
                    }
                    break;

                case 5:
                    if (ammoType != -1)
                    {
                        MakeAmmo.createAmmo(player, 1, ammoType, false, true);
                        break;
                    }
                    else if (stringingBow && bowType != -1)
                    {
                        MakeBows.cutLog(player, 5, logType, bowType, true, true);
                        break;
                    }
                    else if (boltType != -1)
                    {
                        MakeAmmo.createAmmo(player, 1, boltType, true, true);
                        break;
                    }
                    else if (xbowType != -1)
                    {
                        MakeXbow.createXbow(player, 5, xbowType, stringingBow, true);
                        break;
                    }
                    else if (grindItem != -1)
                    {
                        Herblore.grindIngredient(player, 5, true);
                        break;
                    }
                    else if (unfinishedPotion != -1)
                    {
                        Herblore.makeUnfinishedPotion(player, 5, true);
                        break;
                    }
                    else if (completePotion != -1)
                    {
                        Herblore.completePotion(player, 5, true);
                        break;
                    }
                    else if (cookItem != -1)
                    {
                        Cooking.cookItem(player, 5, true, player.getTemporaryAttribute("cookingFireLocation") != null);
                        break;
                    }
                    else if (logType != -1)
                    {
                        MakeBows.cutLog(player, 10, logType, 0, false, true);
                        break;
                    }
                    else if (dialogueStatus == 1002)
                    {
                        Slayer.doDialogue(player, 1024);
                        break;
                    }
                    else if (dialogueStatus == 1053)
                    {
                        Slayer.doDialogue(player, 1061);
                        break;
                    }
                    else if (dialogueStatus > 1000)
                    {
                        Slayer.doDialogue(player, dialogueStatus);
                        break;
                    }
                    else if (dialogueStatus == 7)
                    {
                        AgilityArena.doDialogue(player, 34);
                        break;
                    }
                    else if (leatherCraft != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 0));
                        break;
                    }
                    else if (craftType == 6)
                    {// Ball of wool
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 0));
                        break;
                    }
                    else if (craftType >= 50 && craftType <= 60)
                    { // Cut gem
                        Jewellery.cutGem(player, craftType, 5, true);
                        break;
                    }
                    else if (craftType >= 100 && craftType <= 110)
                    { // String amulet
                        Jewellery.stringAmulet(player, craftType, 5, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Unholy symbol
                        Silver.newSilverItem(player, 10, 120, true);
                        break;
                    }
                    else if (dialogueStatus == 46)
                    {
                        AgilityArena.doDialogue(player, 54);
                        break;
                    }
                    else if (dialogueStatus == 242)
                    {
                        BoatOptions.showBentleyDialogue(player, 245);
                        break;
                    }
                    else if (dialogueStatus == 451)
                    {
                        FarmingAmulet.teleportToPatch(player, 3);
                        break;
                    }
                    else if (dialogueStatus == 452)
                    {
                        FarmingAmulet.teleportToPatch(player, 7);
                        break;
                    }
                    else if (dialogueStatus == 453)
                    {
                        FarmingAmulet.teleportToPatch(player, 11);
                        break;
                    }
                    else if (dialogueStatus == 450)
                    {
                        player.getPackets().closeInterfaces();
                        break;
                    }
                    else if (dialogueStatus != -1 && dialogueStatus < 1000)
                    {
                        Dialogue.doDialogue(player, dialogueStatus);
                        break;
                    }
                    else if (boltTips > -1)
                    {
                        MakeAmmo.makeBoltTip(player, boltTips, 5, true);
                        break;
                    }
                    break;

                case 4:
                    if (ammoType != -1)
                    {
                        MakeAmmo.createAmmo(player, 5, ammoType, false, true);
                        break;
                    }
                    else if (boltType != -1)
                    {
                        MakeAmmo.createAmmo(player, 5, boltType, true, true);
                        break;
                    }
                    else if (xbowType != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 0));
                        break;
                    }
                    else if (stringingBow && bowType != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 1));
                        break;
                    }
                    else if (grindItem != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 2));
                        break;
                    }
                    else if (unfinishedPotion != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 3));
                        break;
                    }
                    else if (completePotion != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 4));
                        break;
                    }
                    else if (cookItem != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 5));
                        break;
                    }
                    else if (logType != -1)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 0));
                        break;
                    }
                    else if (craftType >= 50 && craftType <= 60)
                    { // Cut gem
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, craftType));
                        break;
                    }
                    else if (craftType >= 100 && craftType <= 110)
                    { // String amulet
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, craftType));
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Unholy symbol
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(303, 120));
                        break;
                    }
                    else if (dialogueStatus == 1053)
                    {
                        Slayer.doDialogue(player, 1059);
                        break;
                    }
                    else if (dialogueStatus == 1002)
                    {
                        Slayer.doDialogue(player, 1025);
                        break;
                    }
                    else if (dialogueStatus == 7)
                    {
                        AgilityArena.doDialogue(player, 24);
                        break;
                    }
                    else if (dialogueStatus == 46)
                    {
                        AgilityArena.doDialogue(player, 51);
                        break;
                    }
                    else if (dialogueStatus == 109)
                    {
                        BrokenBarrows.showBobDialogue(player, 114);
                        break;
                    }
                    else if (dialogueStatus == 140 || dialogueStatus == 141)
                    {
                        player.getPackets().closeInterfaces();
                        break;
                    }
                    else if (dialogueStatus == 159)
                    {
                        HomeArea.showAliDialogue(player, 177);
                        break;
                    }
                    else if (dialogueStatus == 242)
                    {
                        BoatOptions.showBentleyDialogue(player, 244);
                        break;
                    }
                    else if (boltTips > -1)
                    { // Cut bolt tips
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 6));
                        break;
                    }
                    else if (dialogueStatus == 451)
                    {
                        FarmingAmulet.teleportToPatch(player, 2);
                        break;
                    }
                    else if (dialogueStatus == 452)
                    {
                        FarmingAmulet.teleportToPatch(player, 6);
                        break;
                    }
                    else if (dialogueStatus == 450)
                    {
                        FarmingAmulet.displayFruitTreeOptions(player);
                        break;
                    }
                    else if (dialogueStatus == 453)
                    {
                        FarmingAmulet.teleportToPatch(player, 10);
                        break;
                    }
                    break;

                case 3:
                    if (player.getDuel() != null)
                    {
                        player.getPackets().closeChatboxInterface();
                        break;
                    }
                    else if (ammoType != -1)
                    {
                        MakeAmmo.createAmmo(player, 10, ammoType, false, true);
                        break;
                    }
                    else if (boltType != -1)
                    {
                        MakeAmmo.createAmmo(player, 10, boltType, true, true);
                        break;
                    }
                    else if (stringingBow && bowType != -1)
                    {
                        MakeBows.cutLog(player, player.getInventory().getItemAmount(1777), logType, bowType, true, true);
                        break;
                    }
                    else if (xbowType != -1)
                    {
                        MakeXbow.createXbow(player, player.getInventory().getItemAmount(9438), xbowType, stringingBow, true);
                        break;
                    }
                    else if (grindItem != -1)
                    {
                        Herblore.grindIngredient(player, 28, true);
                        break;
                    }
                    else if (unfinishedPotion != -1)
                    {
                        Herblore.makeUnfinishedPotion(player, 28, true);
                        break;
                    }
                    else if (completePotion != -1)
                    {
                        Herblore.completePotion(player, 28, true);
                        break;
                    }
                    else if (cookItem != -1)
                    {
                        Cooking.cookItem(player, 28, true, player.getTemporaryAttribute("cookingFireLocation") != null);
                        break;
                    }
                    else if (bowType != -1 && logType != -1)
                    {
                        MakeBows.cutLog(player, 10, logType, bowType, false, true);
                        break;
                    }
                    else if (craftType >= 50 && craftType <= 60)
                    { // Cut gem
                        Jewellery.cutGem(player, craftType, 27, true);
                        break;
                    }
                    else if (craftType >= 100 && craftType <= 110)
                    { // String amulet
                        Jewellery.stringAmulet(player, craftType, 27, true);
                        break;
                    }
                    else if (craftType >= 120 && craftType <= 130)
                    { // Unholy symbol
                        Silver.newSilverItem(player, 27, 120, true);
                        break;
                    }
                    else if (dialogueStatus == 1017)
                    {
                        Slayer.doDialogue(player, 1017);
                        break;
                    }
                    else if (dialogueStatus == 1053)
                    {
                        Slayer.doDialogue(player, 1057);
                        break;
                    }
                    else if (dialogueStatus == 1002)
                    {
                        Slayer.doDialogue(player, 1021);
                        break;
                    }
                    else if (dialogueStatus > 1000)
                    {
                        Slayer.doDialogue(player, dialogueStatus);
                        break;
                    }
                    else if (dialogueStatus == 7)
                    {
                        AgilityArena.doDialogue(player, 17);
                        break;
                    }
                    else if (dialogueStatus == 29)
                    {
                        AgilityArena.doDialogue(player, 33);
                        break;
                    }
                    else if (dialogueStatus == 37)
                    {
                        AgilityArena.doDialogue(player, 39);
                        break;
                    }
                    else if (dialogueStatus == 46)
                    {
                        AgilityArena.doDialogue(player, 48);
                        break;
                    }
                    else if (dialogueStatus == 79)
                    {
                        WarriorGuild.talkToKamfreena(player, 80);
                        break;
                    }
                    else if (dialogueStatus == 103)
                    {
                        BrokenBarrows.showBobDialogue(player, 105);
                        break;
                    }
                    else if (dialogueStatus == 109)
                    {
                        BrokenBarrows.showBobDialogue(player, 111);
                        break;
                    }
                    else if (dialogueStatus == 159)
                    {
                        HomeArea.showAliDialogue(player, 162);
                        break;
                    }
                    else if (dialogueStatus == 207)
                    {
                        AlKharid.showAliDialogue(player, 210);
                        break;
                    }
                    else if (dialogueStatus == 242)
                    {
                        BoatOptions.showBentleyDialogue(player, 243);
                        break;
                    }
                    else if (boltTips > -1)
                    {
                        MakeAmmo.makeBoltTip(player, boltTips, player.getInventory().getItemAmount((int)FletchingData.GEMS[boltTips][0]), true);
                        break;
                    }
                    else if (dialogueStatus == 451)
                    {
                        FarmingAmulet.teleportToPatch(player, 1);
                        break;
                    }
                    else if (dialogueStatus == 450)
                    {
                        FarmingAmulet.displayTreeOptions(player);
                        break;
                    }
                    else if (dialogueStatus == 452)
                    {
                        FarmingAmulet.teleportToPatch(player, 5);
                        break;
                    }
                    else if (dialogueStatus == 453)
                    {
                        FarmingAmulet.teleportToPatch(player, 9);
                        break;
                    }
                    break;

                case 21:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 1, logType, 3, false, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay plant pot
                        Clay.craftClay(player, 5, craftType, 3, true);
                        break;
                    }
                    break;

                case 20:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 5, logType, 3, false, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay plant pot
                        Clay.craftClay(player, 10, craftType, 3, true);
                        break;
                    }
                    break;

                case 19:
                    if (logType == 0)
                    {
                        MakeBows.cutLog(player, 10, logType, 3, false, true);
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay plant pot
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 3));
                        break;
                    }
                    break;

                case 18:
                    if (logType == 0)
                    {
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 3));
                        break;
                    }
                    else if (craftType == 1 || craftType == 2)
                    { // Clay Bowl
                        Clay.craftClay(player, 1, craftType, 2, true);
                        break;
                    }
                    break;

                case 22:
                    if (craftType == 1 || craftType == 2)
                    { // Clay plant pot
                        Clay.craftClay(player, 1, craftType, 3, true);
                        break;
                    }
                    break;

                case 26:
                    if (craftType == 1 || craftType == 2)
                    { // Clay lid
                        Clay.craftClay(player, 1, craftType, 4, true);
                        break;
                    }
                    break;

                case 25:
                    if (craftType == 1 || craftType == 2)
                    { // Clay lid
                        Clay.craftClay(player, 5, craftType, 4, true);
                        break;
                    }
                    break;

                case 24:
                    if (craftType == 1 || craftType == 2)
                    { // Clay lid
                        Clay.craftClay(player, 10, craftType, 4, true);
                        break;
                    }
                    break;

                case 23:
                    if (craftType == 1 || craftType == 2)
                    { // Clay lid
                        player.getPackets().displayEnterAmount();
                        player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 4));
                        break;
                    }
                    break;

                case 1:
                    switch (id)
                    {
                        case 1:
                            if (dialogueStatus == 1002)
                            {
                                Slayer.doDialogue(player, dialogueStatus);
                                break;
                            }
                            else if (dialogueStatus == 1053)
                            {
                                Slayer.doDialogue(player, dialogueStatus);
                                break;
                            }
                            break;
                    }
                    break;

                default:
                    Console.WriteLine("ACTIONBUTTON3 = " + id);
                    break;
            }
            if (dialogueStatus == -1)
            {
                player.getPackets().closeInterfaces();
            }
        }