package com.rs2.game.objects;

import com.rs2.GameConstants;
import com.rs2.GameEngine;
import com.rs2.event.CycleEvent;
import com.rs2.event.CycleEventContainer;
import com.rs2.event.CycleEventHandler;
import com.rs2.game.content.guilds.Guilds;
import com.rs2.game.content.minigames.Dueling;
import com.rs2.game.content.minigames.FightPits;
import com.rs2.game.content.minigames.PestControl;
import com.rs2.game.content.minigames.castlewars.CastleWarObjects;
import com.rs2.game.content.minigames.castlewars.CastleWars;
import com.rs2.game.content.quests.QuestRewards;
import com.rs2.game.content.random.PartyRoom;
import com.rs2.game.content.randomevents.FreakyForester;
import com.rs2.game.content.skills.agility.AgilityShortcut;
import com.rs2.game.content.skills.core.Mining;
import com.rs2.game.content.skills.crafting.Spinning;
import com.rs2.game.content.skills.farming.Farming;
import com.rs2.game.content.skills.prayer.Ectofuntus;
import com.rs2.game.content.skills.runecrafting.AbyssalHandler;
import com.rs2.game.content.skills.runecrafting.RuneCraftingActions;
import com.rs2.game.content.skills.smithing.Smelting;
import com.rs2.game.content.skills.thieving.SearchForTraps;
import com.rs2.game.content.skills.thieving.Stalls;
import com.rs2.game.content.skills.thieving.ThieveOther;
import com.rs2.game.content.skills.woodcutting.Woodcutting;
import com.rs2.game.content.traveling.DesertCactus;
import com.rs2.game.globalworldobjects.ClimbOther;
import com.rs2.game.globalworldobjects.ClimbOther.ClimbData;
import com.rs2.game.globalworldobjects.PassDoor;
import com.rs2.game.items.ItemAssistant;
import com.rs2.game.items.impl.LightSources;
import com.rs2.game.npcs.NpcHandler;
import com.rs2.game.npcs.impl.MilkCow;
import com.rs2.game.objects.impl.*;
import com.rs2.game.players.Player;
import com.rs2.game.players.Position;
import com.rs2.util.Misc;
import com.rs2.world.Boundary;
import com.rs2.world.clip.Region;

public class ObjectsActions {

    private final Player player;

    public ObjectsActions(Player player2) {
        player = player2;
    }

    public void firstClickObject(int objectType, int objectX, int objectY) {
        player.faceUpdate(0);
        player.clickObjectType = 0;
        player.turnPlayerTo(objectX, objectY);
        player.getCompost().handleObjectClick(objectType, objectX, objectY);
        if (Farming.harvest(player, objectX, objectY)) {
            return;
        }
        if (Webs.webs(player, objectType)) {
            Webs.slashWeb(player, objectType, objectX, objectY);
            return;
        }
        if (player.stopPlayerPacket) {
            return;
        }
        if (player.getGnomeStrongHold().gnomeCourse(objectType)) {
            return;
        }
        if (player.getWildernessAgility().wildernessCourse(objectType)) {
            return;
        }
        if (player.getBarbarianAgility().barbarianCourse(objectType)) {
            return;
        }
        if (player.getPyramidAgility().pyramidCourse(objectType)) {
            return;
        }
        if (player.getApeAtollAgility().apeAtollCourse(objectType)) {
            return;
        }
        if (player.getWerewolfAgility().werewolfCourse(objectType)) {
            return;
        }
        if (Boundary.isIn(player, Boundary.PARTY_ROOM) && objectType >= 115 && objectType <= 122) {
            PartyRoom.popBalloon(player, objectX, objectY);
            return;
        }
        if (objectType >= 5103 && objectType <= 5107) {
            BrimhavenVines.handleBrimhavenVines(player, objectType);
            return;
        }
        ClimbOther.handleOpenOther(player, objectType);
        for (ClimbData t : ClimbData.values()) {
            if (objectType == t.getOpen()) {
                ClimbOther.useOther(player, objectType);
            }
        }
        OtherObjects.interactCurtain(player, objectType, objectX, objectY);
        OtherObjects.searchSpecialObject(player, objectType);
        Searching.searchObject(player, objectType);
        Levers.pullLever(player, objectType);
        ThieveOther.lockedDoor(player, objectType);
        player.getSingleGates().useSingleGate(player, objectType);
        player.getDoubleGates().useDoubleGate(player, objectType);
        PassDoor.processDoor(player, objectType);
        AbyssalHandler.handleAbyssalTeleport(player, objectType);
        OpenObject.interactObject(player, objectType);
         if (Stalls.isObject(objectType)) {
            Stalls.attemptStall(player, objectType, objectX, objectY);
            return;
        }
        switch (objectType) {
            case 6969: // Swamp Boaty
                if (player.objectX == 3523 && player.objectY == 3284)
                    player.getPlayerAssistant().movePlayer(3499, 3380, 0);
                break;
            case 6970: // Swamp Boaty
                if (player.objectX == 3498 && player.objectY == 3377)
                    player.getPlayerAssistant().movePlayer(3522, 3284, 0);
                break;
            case 6615:
                if (player.absY == 2809) {
                    player.getPlayerAssistant().movePlayer(player.absX, 2810, 0);
                } else if (player.absY == 2810) {
                    player.getPlayerAssistant().movePlayer(player.absX, 2809, 0);
                }
                break;
            case Ectofuntus.GRINDER:
                Ectofuntus.useBoneGrinder(player);
                break;

            case Ectofuntus.BIN:
                Ectofuntus.emptyBin(player);
                break;
            case 6:
                player.getCannon().clickCannon(objectX, objectY);
                break;
            case 6702:
            case 6703:
            case 6704:
            case 6705:
            case 6706:
            case 6707:
                player.getBarrows().useStairs();
                break;

            case 10284:
                player.getBarrows().useChest();
                break;

            case 6823:
                if (player.barrowsNpcs[0][1] == 0) {
                    NpcHandler.spawnNpc(player, 2030, player.getX(), player.getY() - 1, 3, 0, 120, 25, 200, 200, true, true);
                    player.barrowsNpcs[0][1] = 1;
                } else {
                    player.getPacketSender().sendMessage("You have already searched in this sarcophagus.");
                }
                break;

            case 6772:
                if (player.barrowsNpcs[1][1] == 0) {
                    NpcHandler.spawnNpc(player, 2029, player.getX() + 1, player.getY(), 3, 0, 120, 20, 200, 200, true, true);
                    player.barrowsNpcs[1][1] = 1;
                } else {
                    player.getPacketSender().sendMessage("You have already searched in this sarcophagus.");
                }
                break;

            case 6822:
                if (player.barrowsNpcs[2][1] == 0) {
                    NpcHandler.spawnNpc(player, 2028, player.getX(), player.getY() - 1, 3, 0, 90, 17, 200, 200, true, true);
                    player.barrowsNpcs[2][1] = 1;
                } else {
                    player.getPacketSender().sendMessage("You have already searched in this sarcophagus.");
                }
                break;

            case 6773:
                if (player.barrowsNpcs[3][1] == 0) {
                    NpcHandler.spawnNpc(player, 2027, player.getX(), player.getY() - 1, 3, 0, 120, 23, 200, 200, true, true);
                    player.barrowsNpcs[3][1] = 1;
                } else {
                    player.getPacketSender().sendMessage("You have already searched in this sarcophagus.");
                }
                break;

            case 6771:
                player.getDialogueHandler().sendDialogues(3222, 2026);
                break;

            case 6821:
                if (player.barrowsNpcs[5][1] == 0) {
                    NpcHandler.spawnNpc(player, 2025, player.getX() - 1, player.getY(), 3, 0, 90, 19, 200, 200, true, true);
                    player.barrowsNpcs[5][1] = 1;
                } else {
                    player.getPacketSender().sendMessage("You have already searched in this sarcophagus.");
                }
                break;

            case 2145:
                if (player.objectX == 3249 && player.objectY == 3192) {
                    player.getPacketSender().object(2146, 3249, 3192, 0, 0, 10);
                    Region.addObject(2146, 3249, 3192, 0, 10, 0, false);
                }
                break;

            case 2146:
                if (player.objectX == 3249 && player.objectY == 3192) {
                    player.getPacketSender().object(2145, 3249, 3192, 0, 0, 10);
                }
                break;

            case 399:
                if (player.objectX == 3096 && player.objectY == 3469) {
                    player.getPacketSender().object(398, 3096, 3469, 0, 3, 10);
                    Region.addObject(398, 3096, 3469, 0, 10, 3, false);
                }
                break;

            case 398:
                if (player.objectX == 3096 && player.objectY == 3469) {
                    player.getPacketSender().object(399, 3096, 3469, 0, 3, 10);
                }
                break;

            case 3828:
                if (player.objectX == 3509 && player.objectY == 9497) {
                    player.getPlayerAssistant().movePlayer(3507, 9494, 0);
                } else {
                    player.getPlayerAssistant().movePlayer(3484, 9509, 2);
                }
                break;

            case 2271:
                player.getPacketSender().object(2272, 2984, 3336, 1, 10);
                Region.addObject(2272, 2984, 3336, 2, 10, 1, false);
                player.getPacketSender().sendMessage("You open the cupboard.");
                break;

            case 2272:
                if (player.knightS == 5) {
                    player.getPacketSender().sendMessage("You search the cupboard...");
                    player.getDialogueHandler().sendDialogues(659, -1);
                    player.knightS = 6;
                } else {
                    player.getPacketSender().sendMessage("You search the cupboard...");
                    player.getPacketSender().sendMessage("and don't find anything interesting.");
                }
                break;

            case 9038:
            case 9039:
                if (!player.getItemAssistant().playerHasItem(6306, 100) && player.absX == 2816) {
                    player.getDialogueHandler().sendStatement("You need 100 trading sticks to enter here.");
                    player.nextChat = 0;
                    return;
                }
                if (player.absY == 3082 || player.absY == 3085) {
                    player.getDialogueHandler().sendStatement("You can't enter from here.");
                    player.nextChat = 0;
                    return;
                }
                if (player.absX == 2816 && player.getItemAssistant().playerHasItem(6306, 100)) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1, player.absY, 0);
                    player.getItemAssistant().deleteItem(6306, 100);
                } else if (player.absX == 2817) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1, player.absY, 0);
                }
                break;

            case 12047:
            case 12045:
                if (player.absY == 4439 || player.absY == 4436 || player.absX == 2467 || player.absX == 2464) {
                    player.getDialogueHandler().sendStatement("You can't enter the gate from here.");
                    player.nextChat = 0;
                    return;
                }
                if (!player.getItemAssistant().playerHasItem(1601, 1)) {
                    if (player.absX == 2469 || player.absY == 4434) {
                        player.getDialogueHandler().sendStatement("You need 1 cut diamond to enter.");
                        player.nextChat = 0;
                        return;
                    }
                } else if (player.absX == 2470) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1, player.absY, 0);
                    player.getPacketSender().sendMessage("You pass through the gate.");
                } else if (player.absY == 4433) {
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY + 1, 0);
                    player.getPacketSender().sendMessage("You pass through the gate.");
                } else if (player.absX == 2469) {
                    player.getItemAssistant().deleteItem(1601, 1);
                    player.getPlayerAssistant().movePlayer(player.absX + 1, player.absY, 0);
                    player.getPacketSender().sendMessage("You pass through the gate.");
                } else if (player.absY == 4434) {
                    player.getItemAssistant().deleteItem(1601, 1);
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY - 1, 0);
                    player.getPacketSender().sendMessage("You pass through the gate.");
                }
                break;

            case 2039:
            case 2041:
                if (player.absY == 3356) {
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY + 1, 0);
                } else if (player.absY == 3357) {
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY - 1, 0);
                }
                player.getPacketSender().sendMessage("You pass through the gate.");
                break;

            case 69:
            case 2178:
                //if (c.objectX == 2675 && c.objectY == 3170) {
                //c.getDH().sendDialogues(79, 0);
                //} else {
                if (player.playerLevel[GameConstants.FISHING] <= 50) {
                    player.getPacketSender().sendMessage("You need a fishing level of 50 or higher to play Fishing Trawler.");
                    return;
                }
                GameEngine.trawler.getWaitingRoom().join(player);
                //}
                break;

            case 2179:
            case 70:
                GameEngine.trawler.getWaitingRoom().leave(player);
                break;
            case 2167:
                GameEngine.trawler.fixHole(player, objectX, objectY);
                break;
            case 2166:
                GameEngine.trawler.showReward(player);
                break;
            case 2159:
            case 2160:
                player.trawlerFade(2676, 3170, 0);
                break;
            case 2175:
                GameEngine.trawler.downLadder(player, objectX, objectY);
                break;
            case 2174:
                GameEngine.trawler.upLadder(player, objectX, objectY);
                break;

            case 2230:
            case 2265:
                player.getPacketSender().sendMessage("You look at hajedys cart.");
                break;

            case 10041:
                player.getPacketSender().sendMessage("You can't chop this tree.");
                break;

            case 12163:
            case 12164:
            case 12165:
            case 12166:
                Woodcutting.handleCanoe(player, player.objectId);
                break;

            case 5947:
                if (player.inWild()) {
                    return;
                }
                if (player.getItemAssistant().playerHasItem(954)
                        && LightSources.playerHasLightSource(player)) {
                    player.getItemAssistant().deleteItem(954, 1);
                    player.getPlayerAssistant().movePlayer(3168, 9572, 0);
                    return;
                } else if (player.getItemAssistant().playerHasItem(954)
                        && !LightSources.playerHasLightSource(player)) {
                    player.getItemAssistant().deleteItem(954, 1);
                    player.getPlayerAssistant().movePlayer(3168, 9572, 0);
                    return;
                } else {
                    player.getPacketSender().sendMessage(
                            "You need a rope to go down there.");
                }
                break;

            case 5946:
                if (player.inWild()) {
                    return;
                }
                LightSources.brightness3(player);
                player.getPlayerAssistant().movePlayer(3168, 3172, 0);
                break;

            case 4490:
            case 4487:// slayer tower doors
                if (player.absY == 3535) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 3536) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;

            case 5163:
                player.getPacketSender().sendMessage("This chest is empty.");
                break;

            case 1506:
            case 1508:
                if (player.absX == 3291 || player.absX == 3294) {
                    return;
                }
                if (player.absY == 3167) {
                    player.getPlayerAssistant().movePlayer(player.absX, 3166, 0);
                } else if (player.absY == 3166) {
                    player.getPlayerAssistant().movePlayer(player.absX, 3167, 0);
                }
                break;

            case 3832:
                player.getPlayerAssistant().movePlayer(3509, 9496, 2);
                break;

            case 2896:
            case 2897:
                if (player.playerRights < 3) {
                    player.getPacketSender()
                            .sendMessage("You can't open that!");
                    player.getPlayerAssistant().movePlayer(2728, 3349, 0);
                }
                break;

            case 5581: // take axe from log
                AxeInLog.pullAxeFromLog(player, objectX, objectY);
                break;

            case 2112:
                if (player.absY == 9756
                        && player.playerLevel[GameConstants.MINING] >= 60) {
                    player.getPlayerAssistant().movePlayer(3046, 9757, 0);
                    player.getPacketSender()
                            .sendMessage("You enter the guild.");
                } else if (player.absY == 9757
                        && player.playerLevel[GameConstants.MINING] >= 60) {
                    player.getPlayerAssistant().movePlayer(3046, 9756, 0);
                    player.getPacketSender()
                            .sendMessage("You enter the guild.");
                } else if (player.playerLevel[GameConstants.MINING] < 60) {
                    player.getPacketSender().sendMessage(
                            "You need 60 mining to enter this guild");
                }
                break;

            case 5008:
                player.getPlayerAssistant().movePlayer(2838, 10124, 0);
                break;

            case 5998:
                player.getPlayerAssistant().movePlayer(2730, 3713, 0);
                break;

            case 7258:
                player.getPlayerAssistant().movePlayer(2906, 3537, 0);
                break;

            case 10177:
                player.getPlayerAssistant().movePlayer(1798, 4407, 3);
                break;

            case 10193:
                player.getPlayerAssistant().movePlayer(2545, 10143, 0);
                break;

            case 8966:
                player.getPlayerAssistant().movePlayer(2523, 3740, 0);
                break;

            case 10194:
                player.getPlayerAssistant().movePlayer(2542, 3740, 0);
                break;

            case 10195:
                player.getPlayerAssistant().movePlayer(1809, 4405, 2);
                break;

            case 10196:
                player.getPlayerAssistant().movePlayer(1807, 4405, 3);
                break;

            case 10197:
                player.getPlayerAssistant().movePlayer(1823, 4404, 2);
                break;

            case 10198:
                player.getPlayerAssistant().movePlayer(1825, 4404, 3);
                break;

            case 10199:
                player.getPlayerAssistant().movePlayer(1834, 4388, 2);
                break;

            case 10200:
                player.getPlayerAssistant().movePlayer(1834, 4390, 3);
                break;

            case 10201:
                player.getPlayerAssistant().movePlayer(1811, 4394, 1);
                break;

            case 10202:
                player.getPlayerAssistant().movePlayer(1812, 4394, 2);
                break;

            case 10203:
                player.getPlayerAssistant().movePlayer(1799, 4386, 2);
                break;

            case 10204:
                player.getPlayerAssistant().movePlayer(1799, 4388, 1);
                break;

            case 10205:
                player.getPlayerAssistant().movePlayer(1796, 4382, 1);
                break;

            case 10206:
                player.getPlayerAssistant().movePlayer(1796, 4382, 2);
                break;

            case 10207:
                player.getPlayerAssistant().movePlayer(1800, 4369, 2);
                break;

            case 10208:
                player.getPlayerAssistant().movePlayer(1802, 4370, 1);
                break;

            case 10209:
                player.getPlayerAssistant().movePlayer(1827, 4362, 1);
                break;

            case 10210:
                player.getPlayerAssistant().movePlayer(1825, 4362, 2);
                break;

            case 10211:
                player.getPlayerAssistant().movePlayer(1863, 4373, 2);
                break;

            case 10212:
                player.getPlayerAssistant().movePlayer(1863, 4371, 1);
                break;

            case 10213:
                player.getPlayerAssistant().movePlayer(1864, 4389, 1);
                break;

            case 10214:
                player.getPlayerAssistant().movePlayer(1864, 4387, 2);
                break;

            case 10215:
                player.getPlayerAssistant().movePlayer(1890, 4407, 0);
                break;

            case 10216:
                player.getPlayerAssistant().movePlayer(1890, 4406, 1);
                break;

            case 10217:
                player.getPlayerAssistant().movePlayer(1957, 4373, 1);
                break;

            case 10218:
                player.getPlayerAssistant().movePlayer(1957, 4371, 0);
                break;

            case 10219:
                player.getPlayerAssistant().movePlayer(1824, 4379, 3);
                break;

            case 10220:
                player.getPlayerAssistant().movePlayer(1824, 4381, 2);
                break;

            case 10221:
                player.getPlayerAssistant().movePlayer(1838, 4375, 2);
                break;

            case 10222:
                player.getPlayerAssistant().movePlayer(1838, 4377, 3);
                break;

            case 10223:
                player.getPlayerAssistant().movePlayer(1850, 4386, 1);
                break;

            case 10224:
                player.getPlayerAssistant().movePlayer(1850, 4387, 2);
                break;

            case 10225:
                player.getPlayerAssistant().movePlayer(1932, 4378, 1);
                break;

            case 10226:
                player.getPlayerAssistant().movePlayer(1932, 4380, 2);
                break;

            case 10227:
                if (player.objectX == 1961 && player.objectY == 4392)
                    player.getPlayerAssistant().movePlayer(1961, 4392, 2);
                else
                    player.getPlayerAssistant().movePlayer(1932, 4377, 1);
                break;

            case 10228:
                player.getPlayerAssistant().movePlayer(1961, 4393, 3);
                break;

            case 10229:
                player.getPlayerAssistant().movePlayer(1912, 4367, 0);
                break;

            case 10230:
                player.getPlayerAssistant().movePlayer(2899, 4449, 0);
                break;

            case 2620:
                if (player.gertCat == 6) {
                    player.getPacketSender().sendMessage("You have already found fluffs kitten.");
                    return;
                }
                if (player.gertCat == 5) {
                    player.getPacketSender().sendMessage("You search the crate...");
                    if (Misc.random(25) == 1) {
                        player.getItemAssistant().addItem(1554, 1);
                        player.gertCat = 6;
                        player.getPacketSender().sendMessage("You find the kitten you should go back to fluffs.");
                    } else {
                        player.getPacketSender().sendMessage("and find nothing...");
                    }
                    player.getPacketSender().sendMessage("and find nothing...");
                }
                break;

            case 14921:
            case 9390:
            case 2781:
            case 2785:
            case 2966:
            case 3294:
            case 3413:
            case 4304:
            case 4305:
            case 6189:
            case 6190:
            case 11009:
            case 11010:
            case 11666:
            case 12100:
            case 12809:
                Smelting.startSmelting(player, objectType);
                break;

            case 2156:// wizard tower (draynor)
                player.getPlayerAssistant().startTeleport(3109, 3168, 0, "modern");
                break;

            case 2157:// dark wizard tower (falador)
                player.getPlayerAssistant().startTeleport(2906, 3335, 0, "modern");
                break;

            case 2158:// thormac sorcer tower (cammy)
                player.getPlayerAssistant().startTeleport(2702, 3398, 0, "modern");
                break;

            case 10596:
                if (player.playerLevel[GameConstants.SLAYER] < 72) {
                    player.getPacketSender().sendMessage(
                            "You need 72 slayer to enter.");
                    return;
                } else {
                    player.getPacketSender().sendMessage(
                            "You enter the icy cavern.");
                    player.getPlayerAssistant().movePlayer(3056, 9555, 0);
                }
                break;

            case 10595:
                player.getPacketSender().sendMessage(
                        "You leave the icy cavern.");
                player.getPlayerAssistant().movePlayer(3056, 9562, 0);
                break;
			
            case 5259:
                if (player.absY == 3507)
                {
                    player.getPacketSender().sendMessage(
                            "You pass through the energy barrier.");
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY + 2, 0);
                }
                else if (player.absY == 3509)
                {

                    player.getPacketSender().sendMessage(
                            "You pass through the energy barrier.");
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY - 2, 0);
                }
		        break;
			
            case 5262:
                if (player.heightLevel == 0)
                {
                    player.getPlayerAssistant().movePlayer(3687, 9888, 1);
                }
                else if (player.heightLevel == 1)
                {
                    player.getPlayerAssistant().movePlayer(3671, 9887, 2);
                }
                else
                    {
                        player.getPlayerAssistant().movePlayer(3692, 9887, 3);
                    }

                break;
            case 5263:
                if (player.heightLevel == 3)
                {
                    player.getPlayerAssistant().movePlayer(3688, 9887, 2);
                }
                else if (player.heightLevel == 2)
                    {
                        player.getPlayerAssistant().movePlayer(3675, 9888, 1);
                    }
                else
                    {
                        player.getPlayerAssistant().movePlayer(3683, 9888, 0);
                    }

                break;
            case 5264:
                player.getPlayerAssistant().movePlayer(3654, 3519, 0);
                break;
            case 5267:
                player.getPlayerAssistant().movePlayer(3669, 9888, 3);
                break;
            case 5280:
                player.getPlayerAssistant().movePlayer(3666, 3522, 1);
                break;
            case 5281:
                player.getPlayerAssistant().movePlayer(3666, 3517, 0);
                break;
            case Ectofuntus.ECTOFUNTUS: // Ectofuntus Worship
                Ectofuntus.handleEctofuntus(player);
                break;

            case 12982:
                if (player.absY == 3278) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 3, 0);
                } else if (player.absY == 3275) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 3, 0);
                }
                break;

            case 2266:
                if (player.absY == 2963) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 2964) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;

            case 2606:
                if (player.absY == 9599) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 9600) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;

            case 2634:
                if (player.absX == 2837
                        && player.playerLevel[GameConstants.MINING] >= 50) {
                    player.getPlayerAssistant().movePlayer(player.absX + 3,
                            player.absY, 0);
                } else if (player.absX == 2840
                        && player.playerLevel[GameConstants.MINING] >= 50) {
                    player.getPlayerAssistant().movePlayer(player.absX - 3,
                            player.absY, 0);
                } else if (player.playerLevel[GameConstants.MINING] < 50) {
                    player.getDialogueHandler().sendStatement("You need 50 mining to pass to this rock slide.");
                    player.nextChat = 0;
                    return;
                }
                break;

            case 1967:
            case 1968:
                if (player.absX == 2464 || player.absX == 2467) {
                    return;
                }
                if (player.absY == 3491) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 2, 0);
                } else if (player.absY == 3493) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 2, 0);
                }
                break;

            case 4577:
                if (player.absY == 3635) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 3636) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;

            case 4551:
                if (player.objectX == 2522 && player.objectY == 3597) {
                    player.getPlayerAssistant().movePlayer(2514, 3619, 0);
                    player.startAnimation(3067);
                }
                break;

            case 4558:
                if (player.objectX == 2514 && player.objectY == 3617) {
                    player.getPlayerAssistant().movePlayer(2522, 3595, 0);
                    player.startAnimation(3067);
                }
                break;

            case 2216:
                if (player.absX == 2876) {
                    player.getPlayerAssistant().movePlayer(2880, 2952, 0);
                } else if (player.absX == 2880) {
                    player.getPlayerAssistant().movePlayer(2876, 2952, 0);
                }
                break;

            case 1804:
                if (player.absY == 3449
                        && player.getItemAssistant().playerHasItem(983, 1)) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 3450
                        && player.getItemAssistant().playerHasItem(983, 1)) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                } else if (!player.getItemAssistant().playerHasItem(983, 1)) {
                    player.getDialogueHandler().sendStatement("You need a brass key to enter here.");
                    player.nextChat = 0;
                }
                break;

            case 135:
                if (player.absY == 3353) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 3354) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;


            case 95:
            case 94:
            case 90:
            case 89:
            case 5812:
            case 2341:
                player.getPacketSender().sendMessage(
                        "Will be added later with the quest!");
                break;

            case 8689:
                if (player.milking == false) {
                    MilkCow.milk(player);
                }
                break;

            case 24:
                if (player.absX == 2764) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1,
                            player.absY, 1);
                } else if (player.absX == 2765) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1,
                            player.absY, 1);
                }
                break;

            case 2706:
                if (player.absY == 3321) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 3322) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;

            case 102:
                if (player.absY == 3480) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absY == 3481) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                }
                break;

            case 9330:
            case 9328:
            case 9293:
            case 11844:
            case 9301:
            case 9302:
            case 2322:
            case 2323:
            case 2296:
            case 5100:
            case 5110:
            case 5111:
            case 14922:
            case 3067:
            case 9309:
            case 9310:
            case 2618:
            case 2332:
            case 5088:
            case 5090:
            case 4615:
            case 4616:
            case 3933:
            case 12127:
            case 9294:
            case 9326:
            case 9321:
            case 993:
            case 9307:
            case 9308:
                AgilityShortcut.processAgilityShortcut(player);
                break;

            case 2612:
                player.getPacketSender().object(2613, 3096, 3269, 1, 0, 10);
                Region.addObject(2613, 3096, 3269, 1, 10, 0, false);
                player.getPacketSender().sendMessage("You open the cupboard.");
                break;

            case 2613:
                player.getItemAssistant().addItem(1550, 1);
                break;


            case 9391:
            case 62:
            case 416:
            case 6545:
            case 3500:
                player.getPacketSender().sendMessage(
                        "This feature is currently disabled.");
                break;

            case 2670:
                DesertCactus.cutCactus(player, DesertCactus.getCacCutter(player), objectType,
                        objectX, objectY);
                break;

            /**
             * tutorial island objects
             */

            case 1519:
            case 1516:
                if (player.tutorialProgress == 28 && player.absX == 3129) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1,
                            player.absY, player.heightLevel);
                } else if (player.tutorialProgress == 28 && player.absX == 3128) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1,
                            player.absY, player.heightLevel);
                }
                break;

            case 3015:
            case 3016:
                if (player.tutorialProgress == 7 || player.diedOnTut) {
                    if (player.diedOnTut) {
                        player.getPlayerAssistant().movePlayer(player.absX - 1,
                                player.absY, 0);
                        player.getPacketSender().createArrow(3078, 3084,
                                player.getH(), 2);
                        player.getDialogueHandler().sendStatement(
                                "You have died and have already beat this step",
                                "you may continue.");
                    } else if (player.diedOnTut == false) {
                        player.getPlayerAssistant().movePlayer(player.absX - 1,
                                player.absY, 0);
                        player.getDialogueHandler().sendDialogues(3020, -1);
                    } else {
                        player.getPacketSender().sendMessage(
                                "You aren't on this part yet.");
                        return;
                    }
                }
                break;

            case 3018: // door again
                if (player.tutorialProgress > 9) {
                    PassDoor.passThroughDoor(player, 3018, 1, 2, 0, -1, 0, 0);
                    if (player.diedOnTut) {
                        player.getDialogueHandler().sendStatement(
                                "You have died and have already beat this step",
                                "you may continue.");
                        player.getPacketSender().createArrow(3086, 3126,
                                player.getH(), 2);
                    } else {
                        player.getDialogueHandler().sendDialogues(3038, -1);
                    }
                }
                break;

            case 3017:// door tutorial island
                if (player.tutorialProgress > 6 || player.diedOnTut) {
                    if (player.diedOnTut && Position.checkPosition(player, 3079, 3084, 0)) {
                        PassDoor.passThroughDoor(player, 3017, 3, 0, 0, -1, 0, 0);
                        player.getDialogueHandler().sendStatement("You have died and have already beat this step", "you may continue.");
                        player.getPacketSender().createArrow(3072, 3090, player.getH(), 2);
                    } else if (player.diedOnTut == false && Position.checkPosition(player, 3079, 3084, 0)) {
                        PassDoor.passThroughDoor(player, 3017, 3, 0, 0, -1, 0, 0);
                        player.getPacketSender().drawHeadicon(1, 3, 0, 0);
                    }
                } else {
                    player.getPacketSender().sendMessage("You aren't on this part yet.");
                    return;
                }
                break;

            case 3025:
                if (player.tutorialProgress >= 28) {
                    if (Position.checkPosition(player, 3129, 3124, 0)) {
                        PassDoor.passThroughDoor(player, 3025, 3, 0, 0, 1, 0, 0);
                    }
                    // client.getPacketDispatcher().tutorialIslandInterface(70,
                    // 15);
                    player.getPacketSender().chatbox(6180);
                    player.getDialogueHandler()
                            .chatboxText(
                                    "Follow the path to the chapel and enter it.",
                                    "Once inside talk to the monk. He'll tell you all about the skill.",
                                    "", "", "Prayer");
                    player.getPacketSender().chatbox(6179);
                    player.getPacketSender().drawHeadicon(1, 8, 0, 0); // sends
                    // to
                    // prayer
                    // dude
                }

                break;
            case 3026:
                if (player.tutorialProgress >= 32) {
                    // client.getPacketDispatcher().tutorialIslandInterface(80,
                    // 17);
                    player.getPacketSender().drawHeadicon(1, 9, 0, 0); // sends
                    // to
                    // prayer
                    // dude
                    if (Position.checkPosition(player, 3122, 3103, 0)) {
                        PassDoor.passThroughDoor(player, 3026, 0, 1, 0, 0, -1, 0);
                    }
                }
                break;

            case 3024:
                if (player.tutorialProgress >= 27) {
                    if (Position.checkPosition(player, 3124, 3124, 0)) {
                        PassDoor.passThroughDoor(player, 3024, 3, 0, 0, 1, 0, 0);
                    }
                    // client.getPacketDispatcher().tutorialIslandInterface(65,
                    // 14);
                    player.getPacketSender().chatbox(6180);
                    player.getDialogueHandler()
                            .chatboxText(
                                    "The guide here will tell you all about making cash. Just click on",
                                    "him to hear what he's got to say.", "", "",
                                    "Financial advice");
                    player.getPacketSender().chatbox(6179);
                    player.getPacketSender().drawHeadicon(1, 7, 0, 0);
                }
                break;

            case 3045:
                if (player.tutorialProgress == 26) {
                    player.getPacketSender().openUpBank();
                    // client.getPacketDispatcher().tutorialIslandInterface(60,
                    // 13);
                    player.getPacketSender().createArrow(3125, 3124,
                            player.getH(), 2);
                    player.getPacketSender().chatbox(6180);
                    player.getDialogueHandler()
                            .chatboxText(
                                    "You can store stuff here for safekeeping. If you die anything",
                                    "in your bank will be saved. To deposit something, rich click it",
                                    "and select 'store'. Once you've had a good look, close the",
                                    "window and move on through the door indicated.",
                                    "This is your bank box");
                    player.getPacketSender().chatbox(6179);
                    player.tutorialProgress = 27;
                    player.getPacketSender().createArrow(1, 7);
                } else if (player.tutorialProgress >= 27) {
                    player.getDialogueHandler().sendDialogues(1013, 494);
                }
                break;

            case 3039:
                if (player.getItemAssistant().playerHasItem(2307) && player.tutorialProgress >= 8) {
                    player.startAnimation(896);
                    player.getPlayerAssistant().requestUpdates();
                    player.getItemAssistant().deleteItem(2307, 1);
                    player.getItemAssistant().addItem(2309, 1);
                    player.getDialogueHandler().sendDialogues(3037, -1);
                }
                break;

            case 3019:
                if (player.tutorialProgress >= 11 || player.diedOnTut) {
                    if (player.diedOnTut && Position.checkPosition(player, 3086, 3126, 0)) {
                        PassDoor.passThroughDoor(player, 3019, 2, 3, 0, 0, -1, 0);
                        player.getDialogueHandler().sendStatement(
                                "You have died and have already beat this step",
                                "you may continue.");
                        player.getPacketSender().createArrow(3088, 3119,
                                player.getH(), 2);
                    } else {
                        if (Position.checkPosition(player, 3086, 3126, 0)) {
                            player.getDialogueHandler().sendDialogues(3042, -1);
                        }
                    }
                }
                break;


            case 3014:
                if (Position.checkPosition(player, 3097, 3107, 0) && player.tutorialProgress >= 2) {
                    PassDoor.passThroughDoor(player, 3014, 1, 0, 0, 1, 0, 0);
                    player.getDialogueHandler().sendDialogues(3011, -1);
                    player.getPacketSender().createArrow(1, 2);
                } else if (Position.checkPosition(player, 3097, 3107, 0) && player.diedOnTut) {
                    player.getPacketSender().createArrow(3089, 3092, player.getH(), 2);
                    player.getDialogueHandler().sendStatement("You have died and have already beat this step", "you may continue.");
                } else if (player.tutorialProgress < 2 && player.diedOnTut != true) {
                    player.getPacketSender().sendMessage("You aren't on this step yet.");
                    return;
                }
                break;

            case 9299: //Lumbridge squeeze-through fence
                if (player.absX == 3240) {
                    if (player.absY == 3191) {
                        player.getPlayerAssistant().walkTo(0, -1);
                        player.getPacketSender().sendFrame36(173, 0);
                        player.playerWalkIndex = 749;
                        player.getPlayerAssistant().requestUpdates();
                        //PlayerAssistant.sendFrame36(c, 173,1);

                    } else {
                        player.getPlayerAssistant().walkTo(0, 1);
                        player.playerWalkIndex = 749;
                        player.getPlayerAssistant().requestUpdates();
                    }
                    CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
                        @Override
                        public void execute(CycleEventContainer container) {
                            // TODO Auto-generated method stub
                            player.getPlayerAssistant().setAnimationBack();
                            player.stopPlayerPacket = false;
                            container.stop();
                        }

                        @Override
                        public void stop() {
                            // TODO Auto-generated method stub

                        }

                    }, 1);
                } else {
                    player.getPacketSender().sendMessage("You can't do that from here.");
                }
                break;

            case 3020:
            case 3021:
                if (player.diedOnTut && (player.getY() == 9502 || player.getY() == 9503)) {
                    player.getDialogueHandler()
                            .sendStatement(
                                    "You have died so now all you need to do is continue",
                                    "onto the next step.");
                    player.getPacketSender().createArrow(3111, 9518,
                            player.getH(), 2);
                } else if (player.diedOnTut == false && player.tutorialProgress >= 21 && (player.getY() == 9502 || player.getY() == 9503)) {
                    player.getPacketSender().chatbox(6180);
                    player.getDialogueHandler()
                            .chatboxText(
                                    "In this area you will find out about combat with swords and",
                                    "bows. Speak to the guide and he will tell you all about it.",
                                    "", "", "Combat");
                    player.getPacketSender().chatbox(6179);
                    player.getPacketSender().object(-1, 3094, 9502, 0, 0);
                    player.getPacketSender().object(3021, 3095, 9502, 7, 0);

                    player.getPacketSender().object(-1, 3094, 9503, 0, 0);
                    player.getPacketSender().object(3020, 3095, 9503, 1, 0);

                    player.getPlayerAssistant().walkTo(1, 0);
                    CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
                        @Override
                        public void execute(CycleEventContainer container) {
                            player.getPacketSender().object(3020, 3094, 9503,
                                    2, 0);
                            player.getPacketSender().object(3021, 3094, 9502,
                                    2, 0);
                            // others
                            player.getPacketSender().object(-1, 3095, 9502, 0,
                                    0);
                            player.getPacketSender().object(-1, 3095, 9503, 0,
                                    0);
                            player.getPacketSender().createArrow(1, 6); // draws
                            // headicon
                            // to
                            // combat dude

                            container.stop();
                        }

                        @Override
                        public void stop() {

                        }
                    }, 2);
                }
                break;

            case 3023:
            case 3022:
                if (player.tutorialProgress >= 24
                        && (player.getY() == 9519 || player.getY() == 9518)
                        || player.diedOnTut) {
                    if (player.diedOnTut) {
                        player.getDialogueHandler()
                                .sendStatement("Be more careful this time",
                                        "now continue to kill the rat and talk to the guide.");
                    }
                    player.getPacketSender().chatbox(6180);
                    player.getDialogueHandler()
                            .chatboxText(
                                    "",
                                    "To attack the rat, right click it and select the attack option. you",
                                    "will then walk over to it and start hitting it.",
                                    "", "Attacking");
                    player.getPacketSender().chatbox(6179);
                    player.getPacketSender().object(-1, 3111, 9518, 0, 0);
                    player.getPacketSender().object(3022, 3110, 9518, 7, 0);

                    player.getPacketSender().object(-1, 3111, 9519, 0, 0);
                    player.getPacketSender().object(3023, 3110, 9519, 1, 0);

                    CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
                        @Override
                        public void execute(CycleEventContainer container) {

                            player.getPacketSender().object(3022, 3111, 9518,
                                    0, 0);
                            player.getPacketSender().object(3023, 3111, 9519,
                                    0, 0);
                            // others
                            player.getPacketSender().object(-1, 3110, 9518, 7,
                                    0);
                            player.getPacketSender().object(-1, 3110, 9519, 1,
                                    0);
                            player.getPacketSender().createArrow(1, 6); // draws
                            // headicon
                            // to combat ude

                            container.stop();
                        }

                        @Override
                        public void stop() {

                        }
                    }, 4);
                } else if (player.tutorialProgress >= 25
                        && (player.getY() == 9519 || player.getY() == 9518)) {
                    player.getPacketSender().object(-1, 3111, 9518, 0, 0);
                    player.getPacketSender().object(3022, 3110, 9518, 7, 0);

                    player.getPacketSender().object(-1, 3111, 9519, 0, 0);
                    player.getPacketSender().object(3023, 3110, 9519, 1, 0);

                    CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
                        @Override
                        public void execute(CycleEventContainer container) {

                            player.getPacketSender().object(3022, 3111, 9518,
                                    0, 0);
                            player.getPacketSender().object(3023, 3111, 9519,
                                    0, 0);
                            // others
                            player.getPacketSender().object(-1, 3110, 9518, 7,
                                    0);
                            player.getPacketSender().object(-1, 3110, 9519, 1,
                                    0);

                            container.stop();
                        }

                        @Override
                        public void stop() {

                        }
                    }, 4);
                }
                break;

            // tutorial stuff end

            case 12349:
            case 12350:
                if (player.absX == 3213) {
                    if (player.absY == 3221 || player.absY == 3222) {
                        player.getPlayerAssistant().movePlayer(player.absX - 1, player.absY, 0);
                    }
                } else if (player.absX == 3212) {
                    if (player.absY == 3221 || player.absY == 3222) {
                        player.getPlayerAssistant().movePlayer(player.absX + 1, player.absY, 0);
                    }
                }
                break;

            case 11716:
            case 11721:
                if (player.absX == 2964) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1,
                            player.absY, 0);
                } else if (player.absX == 2965) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1,
                            player.absY, 0);
                } else if (player.absY == 3337) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                } else if (player.absY == 3338) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absX == 2981) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1,
                            player.absY, 0);
                } else if (player.absX == 2982) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1,
                            player.absY, 0);
                }
                break;

            case 11717:
            case 11719:
                if (player.absY == 3342) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 2);
                } else if (player.absY == 3343) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 2);
                } else if (player.absY == 3335) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 2);
                } else if (player.absY == 3334) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 2);
                }
                break;

            case 4500:// fremennik dung
                if (player.objectX == 2809 && player.objectY == 10001) {
                    player.getPlayerAssistant().movePlayer(2796, 3615, 0);
                }
                break;

            // case 5008://near rock crabs not sure where it leads to think its
            // the boating place somewhere
            case 4499:
                if (player.objectX == 2797 && player.objectY == 3614) {
                    player.getPlayerAssistant().movePlayer(2808, 10002, 0);
                }
                break;

            case 9295:
                if (player.playerLevel[GameConstants.AGILITY] < 51) {
                    player.getPacketSender().sendMessage(
                            "You need 51 agility to use this shortcut.");
                    return;
                } else if (player.absX == 3155) {
                    player.turnPlayerTo(player.objectX, player.objectY);
                    player.getPlayerAssistant().movePlayer(3149, 9906, 0);
                    player.startAnimation(844);
                } else if (player.absX == 3149) {
                    player.turnPlayerTo(player.objectX, player.objectY);
                    player.getPlayerAssistant().movePlayer(3155, 9906, 0);
                    player.startAnimation(844);
                }
                break;

            case 8717:
                player.getPacketSender()
                        .sendMessage(
                                "Feature currently disabled will be added in a later release.");
                break;

            case 7057:
                if (player.absY == 3250) {
                    return;
                }
                player.getPlayerAssistant().movePlayer(3093, 3251, 1);
                break;

            case 7056:
                player.getPlayerAssistant().movePlayer(3089, 3251, 0);
                break;

            case 2186:
                if (player.absY == 3161) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                } else if (player.absY == 3160) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                }
                break;

            case 3029:
                if (player.tutorialProgress >= 14 || player.diedOnTut) {
                    if (player.diedOnTut) {
                        player.startAnimation(828);
                        player.getPlayerAssistant().movePlayer(3088, 9520, 0);
                        player.getPacketSender().createArrow(3094, 9503,
                                player.getH(), 2);
                        player.getDialogueHandler().sendStatement(
                                "You have died and have already beat this step",
                                "you may continue.");
                    } else if (player.diedOnTut == false) {
                        player.getDialogueHandler().sendDialogues(3051, -1);
                        player.startAnimation(828);
                        player.getPlayerAssistant().movePlayer(3088, 9520, 0);
                    } else {
                        player.getPacketSender().sendMessage(
                                "You aren't on this part yet.");
                        return;
                    }
                }
                break;

            case 3028:
                if (player.tutorialProgress >= 14) {
                    player.getPacketSender().sendMessage(
                            "You have already completed this step.");
                    return;
                }
                break;

            case 9300:
                if (player.absY == 3335) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                } else if (player.absY == 3334) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                }
                break;

            case 2492:
                if (player.objectX == 2911 && player.objectY == 3614) {
                    return;
                }
                player.getPlayerAssistant().movePlayer(3253, 3399, 0);
                break;

            case 5083:
                if (!player.hasPaidBrim) {
                    player.getDialogueHandler().sendDialogues(1048, 1595);
                } else {
                    player.getPlayerAssistant().movePlayer(2709, 9564, 0);
                    player.hasPaidBrim = false;
                }
                break;

            case 5084:
                player.getPlayerAssistant().movePlayer(2744, 3152, 0);
                break;
            case 5094:
                player.getPlayerAssistant().movePlayer(2643, 9594, 2);
                break;
            case 5098:
                player.getPlayerAssistant().movePlayer(2637, 9517, 0);
                break;
            case 5097:
                player.getPlayerAssistant().movePlayer(2636, 9510, 2);
                break;

            case 2287:
                if (player.playerLevel[GameConstants.AGILITY] < 35) {
                    player.getPacketSender().sendMessage(
                            "You need 35 agility to enter here!");
                    return;
                }
                if (player.absX == 2552 && player.absY == 3561) {
                    player.getPlayerAssistant().movePlayer(2552, 3558, 0);
                    player.startAnimation(844);
                } else if (player.absX == 2552 && player.absY == 3558) {
                    player.getPlayerAssistant().movePlayer(2552, 3561, 0);
                    player.startAnimation(844);
                }
                break;

            case 2514:
            case 1600:
            case 1601:
            case 2025:
            case 2113:
            case 2647:
            case 2712:
            case 2391:
            case 2392:
            case 2624:
            case 2625:
            case 2641:
            case 1805:
                Guilds.attemptGuild(player, objectType);
                break;

            case 14315:
                if (!PestControl.waitingBoat.containsKey(player) && player.absX == 2657 && player.absY > 2638 && player.absY < 2640) {
                    PestControl.addToWaitRoom(player);
                } else {
                    if (player.absX == 2657 && player.absY > 2638 && player.absY < 2641) {
                        player.getPlayerAssistant().movePlayer(2661, 2639, 0);
                    }
                }
                break;
            case 14314:
                if (Boundary.isIn(player, Boundary.PC_BOAT)) {
                    if (PestControl.waitingBoat.containsKey(player)) {
                        PestControl.leaveWaitingBoat(player);
                    } else {
                        if (player.absX == 2661 && player.absY > 2637 && player.absY < 2641) {
                            player.getPlayerAssistant().movePlayer(2657, 2639, 0);
                        }
                    }
                }
                break;
            case 9369:
                if (player.absX == 2399 && player.absY == 5177) {
                    FightPits.addPlayer(player);
                } else if (player.absX == 2399 && player.absY == 5175) {
                    FightPits.removePlayer(player, false);
                }
                break;

            case 9368:
                if (player.absX > 2397 && player.absX < 2401 && player.absY == 5167) {
                    FightPits.removePlayer(player, false);
                }
                break;

            case 3031:
                if (player.tutorialProgress == 26) {
                    player.getPacketSender().sendMessage(
                            "You have already completed this step.");
                    return;
                } else if (player.tutorialProgress > 35) {
                    UseOther.useDown(player, objectType);
                }
                break;

            case 3030:
                if (player.tutorialProgress == 26) {
                    player.getDialogueHandler().sendDialogues(3078, -1);
                    player.getPlayerAssistant().movePlayer(3111, 3125, 0);
                    player.startAnimation(828);
                } else if (player.tutorialProgress > 35) {
                    UseOther.useUp(player, objectType);
                }
                break;

            case 5493:
                player.getPlayerAssistant().movePlayer(3165, 3251, 0);
                player.getPacketSender()
                        .sendMessage("You climb up the ladder.");
                player.startAnimation(828);
                player.getPacketSender().closeAllWindows();
                break;

            case 4881:
                player.getPlayerAssistant().movePlayer(2806, 2785, 0);
                player.getPacketSender().sendMessage("You climb up the rope.");
                player.startAnimation(828);
                player.getPacketSender().closeAllWindows();
                break;

            case 4411:
            case 4415:
            case 4417:
            case 4418:
            case 4419:
            case 4420:
            case 4469:
            case 4470:
            case 4911:
            case 4912:
            case 4437:
            case 6281:
            case 6280:
            case 4472:
            case 4471:
            case 4406:
            case 4407:
            case 4458:
            case 4902:
            case 4903:
            case 4900:
            case 4901:
            case 4377:
            case 4378:
                if (!CastleWars.isInCw(player)) {
                    player.getPacketSender().sendMessage("You have to be in castle wars to use these objects.");
                    CastleWars.resetPlayer(player);
                    return;
                }
                CastleWarObjects.handleObject(player, objectType, objectX, objectY);
                break;

            case 1757:
                if (CastleWars.isInCw(player)) {
                    CastleWarObjects.handleObject(player, objectType, objectX, objectY);
                } else if (player.objectX == 2892 && player.objectY == 9907) {
                    player.getPlayerAssistant().movePlayer(2893, 3507, 0);
                } else {
                    UseOther.useUp(player, objectType);
                }
                break;

            case 4031:
                OtherObjects.initShantay(player, objectType);
                break;

            case 2883:
            case 2882:
                player.getDialogueHandler().sendDialogues(1018, 925);
                break;

            case 2320:
                long clickTimer = 0;
                if (player.absY <= 9963 && player.playerLevel[GameConstants.AGILITY] > 14 && System.currentTimeMillis() - clickTimer > 2000) {
                    player.getPlayerAssistant().movePlayer(3120, 9970, 0);
                    player.startAnimation(744);
                    player.turnPlayerTo(player.objectX, player.objectY);
                    player.getPacketSender().sendMessage("You swing on the monkey bars.");
                    player.getPlayerAssistant().addSkillXP(25, GameConstants.AGILITY);
                    clickTimer = System.currentTimeMillis();
                } else if (player.absY <= 9970 && player.playerLevel[GameConstants.AGILITY] > 14 && System.currentTimeMillis() - clickTimer > 2000) {
                    player.getPlayerAssistant().movePlayer(3120, 9963, 0);
                    player.startAnimation(744);
                    player.turnPlayerTo(player.objectX, player.objectY);
                    player.getPacketSender().sendMessage("You swing on the monkey bars.");
                    player.getPlayerAssistant().addSkillXP(25, GameConstants.AGILITY);
                    clickTimer = System.currentTimeMillis();
                } else if (player.playerLevel[GameConstants.AGILITY] < 15) {
                    player.getPacketSender().sendMessage("You need 15 agility to use these monkey bars.");
                } else {
                    player.getPacketSender().sendMessage("You can't do the monkey bars here.");
                }
                break;

            // PARTY ROOM START
            case 2417: // 26193 if falador
                //player.inPartyRoom = true;
                PartyRoom.open(player);
                break;

            case 2416:
                //player.inPartyRoom = true;
                PartyRoom.dropAll();
                break;

            case 9356:
                player.getPlayerAssistant().enterCaves();
                break;

            case 9357:
                player.getPlayerAssistant().resetTzhaar();
                break;

            case 492:
                player.getPlayerAssistant().movePlayer(2856, 9570, 0);
                break;

            case 1764:
                if (player.objectX == 2856 && player.objectY == 9569) {
                    player.getPlayerAssistant().movePlayer(2858, 3168, 0);
                }
                break;

            case 9358:
                player.getPlayerAssistant().movePlayer(2480, 5175, 0);
                break;

            case 9359:
                player.getPlayerAssistant().movePlayer(2862, 9572, 0);
                break;

            case 2610:
                player.getPlayerAssistant().movePlayer(2833, 3257, 0);
                break;

            case 2609:
                player.getPlayerAssistant().movePlayer(2834, 9657, 0);
                break;

            case 2465:
            case 2466:
            case 2467:
            case 2468:
            case 2469:
            case 2470:
            case 2471:
            case 2472:
            case 2473:
            case 2474:
            case 2475:
            case 2478:
            case 2479:
            case 2480:
            case 2481:
            case 2482:
            case 2483:
            case 2484:
            case 2485:
            case 2486:
            case 2487:
            case 2488:
            case 2452:
            case 2453:
            case 2454:
            case 2455:
            case 2456:
            case 2457:
            case 2458:
            case 2459:
            case 2460:
            case 2461:
            case 2462:
                RuneCraftingActions.handleRuneCrafting(player, objectType);
                break;
            case 3203:
                Dueling.handleForfeit(player);
                break;
            case 6481:
                player.getPlayerAssistant().movePlayer(3233, 9317, 0);
                break;

            /**
             * End
             */

            case 3829:
                player.getPlayerAssistant().movePlayer(3227, 3107, 0);
                break;

            case 4427:
                player.getPlayerAssistant().movePlayer(2373,
                        player.absY == 3120 ? 3119 : 3120, 0);
                break;

            case 4428:
                player.getPlayerAssistant().movePlayer(2372,
                        player.absY == 3120 ? 3119 : 3120, 0);
                break;

            case 4465:
                player.getPlayerAssistant().movePlayer(
                        player.absX == 2414 ? 2415 : 2414, 3073, 0);
                break;

            case 4424:
            case 4423:
                if (!CastleWars.isInCw(player)) {
                    player.getPacketSender().sendMessage("You have to be in castle wars to use these objects.");
                    CastleWars.resetPlayer(player);
                    return;
                }
                player.getPlayerAssistant().movePlayer(2427,
                        player.absY == 3087 ? 3088 : 3087, 0);
                break;


            /**
             * End
             */

            case 2079:
                if (player.getItemAssistant().playerHasItem(432, 1)) {
                    player.getItemAssistant().addItem(433, 1);
                    player.getPacketSender().sendMessage(
                            "All that's in the chest is a message...");
                    player.pirateTreasure = 4;
                } else {
                    player.getPacketSender().sendMessage(
                            "You need a key to open this chest.");
                }
                break;

            case 2071:
                if (player.pirateTreasure == 2) {
                    player.getDialogueHandler().sendStatement("You search the crate...");
                    player.getPacketSender().sendMessage(
                            "You find a bottle of rum and 10 bananas.");
                    player.getItemAssistant().addItem(431, 1);
                    player.getItemAssistant().addItem(1963, 10);
                    player.nextChat = 0;
                } else {
                    player.getPacketSender().sendMessage(
                            "You aren't on this step right now.");
                }
                break;

            case 2593:
                player.getPacketSender().sendMessage(
                        "Disabled for dragon slayer.");
                break;

            case 2024: // WP quest
                if (player.witchspot == 2) {
                    // c.getDH().sendStatement("You drink from the cauldron, it tastes horrible!",
                    // "You feel yourself imbued with power.");
                    player.witchspot = 3;
                    QuestRewards.witchFinish(player);
                } else {
                    player.getPacketSender().sendMessage(
                            "You are not on this part of the quest.");
                }
                break;

            case 2614:
                if (player.vampSlayer == 3 && player.clickedVamp == false) {
                    NpcHandler.spawnNpc(player, 757, player.getX(), player.getY(), 0, 0, 50, 10, 30, 30, true, true);
                    player.getPacketSender().sendMessage("You will need a stake and hammer to attack count draynor.");
                    player.clickedVamp = true;
                } else if (player.vampSlayer == 3 && player.clickedVamp) {
                    player.getPacketSender().sendMessage("You have already spawned the vampyre.");
                    return;
                } else if (player.vampSlayer > 3) {
                    player.getPacketSender().sendMessage("You have already killed the vampire.");
                } else if (player.vampSlayer < 3) {
                    player.getPacketSender().sendMessage("You still need to progress into vampire slayer to fight this monster.");
                }
                break;

            case 2617:
                if (player.absX > 3076 && player.absX < 3079 && player.absY == 9771) {
                    player.getPlayerAssistant().movePlayer(3115, 3356, 0);
                }
                break;

            case 2616:
                if (player.absX > 3114 && player.absX < 3117 && player.absY == 3356) {
                    player.getPlayerAssistant().movePlayer(3077, 9771, 0);
                }
                break;

            case 10093:
            case 10094:
                if (player.getItemAssistant().playerHasItem(1927, 1)) {
                    player.turnPlayerTo(player.objectX, player.objectY);
                    player.startAnimation(883);
                    player.getItemAssistant().addItem(2130, 1);
                    player.getItemAssistant().deleteItem(1927, 1);
                    player.getPlayerAssistant()
                            .addSkillXP(18, GameConstants.COOKING);
                } else {
                    player.getPacketSender().sendMessage(
                            "You need a bucket of milk to do this.");
                }
                break;

            case 2072: // crate
                if (player.getItemAssistant().playerHasItem(1963, 10)
                        && player.luthas) {
                    player.getItemAssistant().deleteItem(1963, 10);
                    player.getDialogueHandler().sendStatement(
                            "You pack your bananas in the crate...");
                    player.getPacketSender().sendMessage(
                            "Talk to luthas for your reward.");
                    player.bananas = 2;
                } else if (player.getItemAssistant().playerHasItem(431, 1)
                        && player.pirateTreasure == 1) {
                    player.getItemAssistant().deleteItem(431, 1);
                    player.getDialogueHandler().sendStatement(
                            "You stash your rum in the crate");
                    player.pirateTreasure = 2;
                } else if (player.objectX == 2746) {
                    player.getPacketSender().sendMessage("You search the crate...");
                    player.stopPlayerPacket = true;
                    CycleEventHandler.getSingleton().addEvent(player, new CycleEvent() {
                        @Override
                        public void execute(CycleEventContainer container) {
                            player.getPacketSender().sendMessage("You find nothing of interest.");
                            container.stop();
                        }

                        @Override
                        public void stop() {
                            player.stopPlayerPacket = false;
                        }
                    }, 2);
                } else {
                    player.getDialogueHandler().sendStatement(
                            "I should talk to luthas and see what to do.");
                    player.getPacketSender().sendMessage(
                            "I think I need to put some bannanas in this crate.");
                }
                break;

            case 2073: // Banana tree
            case 4754:
                if (System.currentTimeMillis() - player.waitTime > 2000) {
                    if (player.luthas) {
                        player.bananas += 1;
                        player.getItemAssistant().addItem(1963, 1);
                        player.waitTime = System.currentTimeMillis();
                    }
                    player.getItemAssistant().addItem(1963, 1);
                    player.waitTime = System.currentTimeMillis();
                } else {
                    player.getPacketSender().sendMessage("You must wait two seconds before grabbing another banana.");
                }
                break;

            case 2406:
                if (player.playerEquipment[player.playerWeapon] != 772) {
                    player.getPacketSender().sendMessage("This door is locked.");
                    return;
                }
                if (player.playerEquipment[player.playerWeapon] == 772) {
                    player.getPlayerAssistant().startTeleport(2452, 4470, 0, "modern");
                    player.getPacketSender().sendMessage("You are suddenly teleported away.");
                    if (player.lostCity == 2 || player.lostCity == 1)
                    {
                        player.getPacketSender().sendMessage("You have found the Lost City of Zanaris!");
                        QuestRewards.lostCityReward(player);
                    }

                }
                break;

            case 3759://entrance
                if (player.absX == 2893 && player.absY == 3671) {
                    player.getPlayerAssistant().movePlayer(2893, 10074, 0);
                }
                break;

            case 3760://exit
                if (player.absX == 2893 && player.absY == 10074) {
                    player.getPlayerAssistant().movePlayer(2893, 3671, 0);
                }
                break;

            case 1568:
                if (player.absX == 3098) {
                    player.getPacketSender().sendMessage("You can't use the trapdoor here.");
                    return;
                }
			/*if (objectX == 3097 && objectY == 3468) {
				player.getPlayerAssistant().movePlayer(3097, 9868, 0);*/
                if (CastleWars.isInCw(player)) {
                    CastleWarObjects.handleObject(player, objectY, objectY, objectY);
                    //} else {
                    //OtherObjects.useDown(c, c.objectId);
                }
                break;

            case 96:
            case 98:
            case 1722:
            case 1723:
            case 1733:
            case 1734:
            case 1736:
            case 1737:
            case 1742:
            case 1744:
            case 1755:
            case 2405:
            case 2711:
            case 3432:
            case 3443:
            case 4383:
            case 4755:
            case 4756:
            case 4879:
            case 5492:
            case 5096:
            case 6278:
            case 11724:
            case 11725:
            case 11727:
            case 11728:
            case 11729:
            case 11731:
            case 11732:
            case 11733:
            case 11734:
            case 11735:
            case 11736:
            case 11737:
            case 12265:
            case 2147:
            case 2148:
            case 2408:
            case 6279:
            case 7257:
            case 6439:
            case 11888:
            case 11889:
            case 11890:
            case 4568:
            case 4569:
            case 4570:
            case 4413:
            case 9582:
            case 9584:
            case 5131:
            case 5130:
            case 1725:
            case 1726:
            case 6434:
            case 6436:
            case 1738:
            case 5167:
            case 12266:
            case 272:
            case 273:
            case 245:
            case 246:
            case 1767:
                Climbing.handleClimbing(player);
                break;

            case 190:
                if (player.absY == 3385) {
                    player.getPlayerAssistant().movePlayer(player.absX, 3382, 0);
                } else if (player.absY == 3382) {
                    player.getPlayerAssistant().movePlayer(player.absX, 3385, 0);
                }
                break;

            case 1754:
                if (player.objectX == 2696 && player.objectY == 3282) {
                    player.startAnimation(827);
                    player.getPacketSender().closeAllWindows();
                    player.getPlayerAssistant().movePlayer(2696, 9683, 0);
                    player.getPacketSender().sendMessage("You climb down.");
                } else {
                    UseOther.useDown(player, player.objectId);
                }
                break;

            case 1759:
            case 9472:
            case 11867:
            case 100:
                UseOther.useDown(player, player.objectId);
                break;

            case 1739:
                Climbing.handleLadder(player);
                player.dialogueAction = 147;
                break;

            case 1748:
                if (player.objectX == 3286 && player.objectY == 3192) {
                    Climbing.climbDown(player);
                } else {
                    Climbing.handleLadder(player);
                    player.dialogueAction = 147;
                }
                break;

            case 12537:
            case 2884:
            case 12965:
            case 14747:
                Climbing.handleLadder(player);
                player.dialogueAction = 147;
                break;

            case 12536:
            case 12964:
            case 1750:
            case 2833:
            case 2796:
            case 4772:
            case 1752:
            case 11739:
            case 14745:
            case 9558:
                Climbing.climbUp(player);
                break;

            case 1747:
                if (player.objectX == 2642 && player.objectY == 3428 && player.absX == 2643 && player.absY == 3429) {
                    return;
                }
                if (player.absX > 3081 && player.absX < 3085 && player.absY == 3514) {
                    return;
                }
                if (player.objectX == 2532 && player.objectY == 3545) {
                    player.getAgility().climbUp(player.getX(), player.getY(), 1);
                } else {
                    Climbing.climbUp(player);
                }
                break;

            case 1740:
            case 12538:
            case 1746:
            case 4778:
            case 12966:
            case 2797:
            case 1749:
            case 11742:
            case 11741:
            case 14746:
            case 9559:
                Climbing.climbDown(player);
                break;

            /**
             * Bank Booths
             */
            case 11338:
            case 2214:
            case 10517:
                // case 3045:
            case 5276:
            case 6084:
            case 11758:
            case 14367:
            case 2213:
                player.getDialogueHandler().sendDialogues(1013, 494);
                break;

            case 9398:// deposit box
                player.getPacketSender().sendString("The Bank of " + GameConstants.SERVER_NAME + " - Deposit Box", 7421);
                player.getPacketSender().sendFrame248(4465, 197);
                player.getItemAssistant().resetItems(7423);
                break;

            case 3194: // Bank Chest open
            case 4483: // Bank Chest
            case 104: // shantay chest open
                player.getPacketSender().openUpBank();
                break;

            case 2403:// should be 2418 but not working
                if (player.shieldArrav >= 6 && player.getItemAssistant().playerHasItem(759)) {
                    GameEngine.objectHandler.createAnObject(player, 2604, objectX, objectY, player.heightLevel, 0);
                    Region.addObject(2604, objectX, objectY, 0, 0, 0, false);
                } else {
                    player.getPacketSender().sendMessage("It's locked, maybe I can get the key from somewhere.");
                }
                break;

            case 2604:
                if (player.objectX == 3235 && player.objectY == 9761 && player.shieldArrav >= 6) {
                    player.getDialogueHandler().sendDialogues(742, -1);
                } else {
                    player.getPacketSender().openUpBank();
                }
                break;

            case 3193:
                if (player.objectX == 3382 && player.objectY == 3270) {
                    player.getPacketSender().object(3194, 3382, 3270, 0, 1, 10);
                    Region.addObject(3194, 3382, 3270, 0, 10, 1, false);
                } else if (player.objectX == 3381 && player.objectY == 3269) {
                    player.getPacketSender().object(3194, 3381, 3269, 0, 2, 10);
                    Region.addObject(3194, 3381, 3269, 0, 10, 2, false);
                } else {
                    GameEngine.objectHandler.createAnObject(player, 3194, objectX, objectY, player.heightLevel, -1);
                }
                break;

            case 2412:
                if (player.objectX == 3048 && player.objectY == 3233) {
                    player.getPlayerAssistant().movePlayer(3048, 3231, 1);
                    player.getPacketSender().sendMessage("You cross the Gangplank.");
                }
                break;

            case 2413:
                if (player.objectX == 3048 && player.objectY == 3232) {
                    player.getPlayerAssistant().movePlayer(3048, 3234, 0);
                }
                break;

            case 2083:
                if (player.objectX == 3030 && player.objectY == 3217) {
                    player.getPlayerAssistant().movePlayer(3032, 3217, 1);
                    player.getPacketSender().sendMessage("You cross the Gangplank.");
                }
                break;

            case 2084:
                if (player.objectX == 3031 && player.objectY == 3217) {
                    player.getPlayerAssistant().movePlayer(3029, 3217, 0);
                }
                break;

            case 2081:
                if (player.objectX == 2956 && player.objectY == 3145) {
                    player.getPlayerAssistant().movePlayer(2956, 3143, 1);
                }
                break;

            case 2082:
                if (player.objectX == 2956 && player.objectY == 3144) {
                    player.getPlayerAssistant().movePlayer(2956, 3146, 0);
                }
                break;

            case 2415:
                if (player.objectX == 2834 && player.objectY == 3333) {
                    player.getPlayerAssistant().movePlayer(2834, 3335, 0);
                }
                break;

            case 2414:
                if (player.objectX == 2834 && player.objectY == 3334) {
                    player.getPlayerAssistant().movePlayer(2834, 3332, 1);
                }
                break;

            case 14304:
                // Sailing.startTravel(c, 14);
                player.getPlayerAssistant().movePlayer(2659, 2676, 0);
                player.getDialogueHandler().sendStatement("You arrive safely.");
                break;

            case 14306:
                // Sailing.startTravel(c, 15);
                player.getPlayerAssistant().movePlayer(3041, 3202, 0);
                player.getDialogueHandler().sendStatement("You arrive safely.");
                break;

            case 1782:// full flour bin
                FlourMill.emptyFlourBin(player);
                break;

            case 2718: // Hopper
                FlourMill.hopperControl(player);
                break;

            case 8972:
                if (!player.canLeaveArea) {
                    player.getDialogueHandler().sendDialogues(3, 2458);
                } else {
                    FreakyForester.leaveArea(player);
                }
                break;

            case 1765://down
                if (player.inWild() && player.absX > 3015 && player.absX < 3019) {
                    player.getPlayerAssistant().movePlayer(3067, 10256, 0);
                }
                break;

            case 1766://up
                if (player.inWild() && player.absX > 3067 && player.absX < 3070) {
                    player.getPlayerAssistant().movePlayer(3016, 3849, 0);
                }
                break;

            case 6552:
                if (player.playerMagicBook == 0) {
                    player.playerMagicBook = 1;
                    player.getPacketSender().setSidebarInterface(6, 12855);
                    player.getPacketSender().sendMessage("An ancient wisdomin fills your mind.");
                    player.getPlayerAssistant().resetAutocast();
                } else {
                    player.getPacketSender().setSidebarInterface(6, 1151); // modern
                    player.playerMagicBook = 0;
                    player.getPacketSender().sendMessage("You feel a drain on your memory.");
                    player.getPlayerAssistant().resetAutocast();
                }
                break;

            case 8958:
                if (player.getX() == 2490 && (player.getY() == 10162 || player.getY() == 10164)) {
                    new Object(6951, player.objectX, player.objectY, player.heightLevel, 1, 10, 8958, 15);
                }
                break;

            case 8959:
                if (player.getX() == 2490 && (player.getY() == 10146 || player.getY() == 10148)) {
                    new Object(6951, player.objectX, player.objectY, player.heightLevel, 1, 10, 8959, 15);
                }
                break;

            case 8960:
                if (player.getX() == 2490 && (player.getY() == 10132 || player.getY() == 10130)) {
                    new Object(6951, player.objectX, player.objectY, player.heightLevel, 1, 10, 8960, 15);
                }
                break;

            case 14235:
            case 14233:
                if (player.absX == 2670) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1,
                            player.absY, 0);
                } else if (player.absX == 2671) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1,
                            player.absY, 0);
                } else if (player.absY == 2585) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY - 1, 0);
                } else if (player.absY == 2584) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY + 1, 0);
                } else if (player.absX == 2643) {
                    player.getPlayerAssistant().movePlayer(player.absX - 1,
                            player.absY, 0);
                } else if (player.absX == 2642) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1,
                            player.absY, 0);
                }
                break;

            case 14829:
            case 14830:
            case 14827:
            case 14828:
            case 14826:
            case 14831:
                // Server.objectHandler.startObelisk(objectType);
                GameEngine.objectManager.startObelisk(objectType);
                break;

            /*
             * Doors
             */
            case 6749:
                if (objectX == 3562 && objectY == 9678) {
                    player.getPacketSender().object(6749, 3562, 9678, -3, 0);
                    Region.addObject(6749, 3562, 9678, 0, 0, -3, false);
                    player.getPacketSender().object(6730, 3562, 9677, -1, 0);
                    Region.addObject(6730, 3562, 9677, 0, 0, -1, false);
                } else if (objectX == 3558 && objectY == 9677) {
                    player.getPacketSender().object(6749, 3558, 9677, -1, 0);
                    Region.addObject(6749, 3558, 9677, 0, 0, -1, false);
                    player.getPacketSender().object(6730, 3558, 9678, -3, 0);
                    Region.addObject(6730, 3558, 9677, 0, 0, -3, false);
                }
                break;
            case 6730:
                if (objectX == 3558 && objectY == 9677) {
                    player.getPacketSender().object(6749, 3562, 9678, -3, 0);
                    Region.addObject(6749, 3562, 9678, 0, 0, -3, false);
                    player.getPacketSender().object(6730, 3562, 9677, -1, 0);
                    Region.addObject(6730, 3562, 9677, 0, 0, -1, false);
                } else if (objectX == 3558 && objectY == 9678) {
                    player.getPacketSender().object(6749, 3558, 9677, -1, 0);
                    Region.addObject(6749, 3558, 9677, 0, 0, -1, false);
                    player.getPacketSender().object(6730, 3558, 9678, -3, 0);
                    Region.addObject(6730, 3558, 9678, 0, 0, -3, false);
                }
                break;
            case 6727:
                if (objectX == 3551 && objectY == 9684) {
                    player.getPacketSender().sendMessage(
                            "You cant open this door..");
                }
                break;
            case 6746:
                if (objectX == 3552 && objectY == 9684) {
                    player.getPacketSender().sendMessage(
                            "You cant open this door..");
                }
                break;
            case 6748:
                if (objectX == 3545 && objectY == 9678) {
                    player.getPacketSender().object(6748, 3545, 9678, -3, 0);
                    Region.addObject(6748, 3545, 9678, 0, 0, -3, false);
                    player.getPacketSender().object(6729, 3545, 9677, -1, 0);
                    Region.addObject(6729, 3545, 9677, 0, 0, -1, false);
                } else if (objectX == 3541 && objectY == 9677) {
                    player.getPacketSender().object(6748, 3541, 9677, -1, 0);
                    Region.addObject(6748, 3541, 9677, 0, 0, -1, false);
                    player.getPacketSender().object(6729, 3541, 9678, -3, 0);
                    Region.addObject(6729, 3541, 9678, 0, 0, -3, false);
                }
                break;
            case 6729:
                if (objectX == 3545 && objectY == 9677) {
                    player.getPacketSender().object(6748, 3545, 9678, -3, 0);
                    Region.addObject(6748, 3545, 9678, 0, 0, -3, false);
                    player.getPacketSender().object(6729, 3545, 9677, -1, 0);
                    Region.addObject(6729, 3545, 9677, 0, 0, -1, false);
                } else if (objectX == 3541 && objectY == 9678) {
                    player.getPacketSender().object(6748, 3541, 9677, -1, 0);
                    Region.addObject(6748, 3541, 9677, 0, 0, -1, false);
                    player.getPacketSender().object(6729, 3541, 9678, -3, 0);
                    Region.addObject(6729, 3541, 9678, 0, 0, -3, false);
                }
                break;
            case 6726:
                if (objectX == 3534 && objectY == 9684) {
                    player.getPacketSender().object(6726, 3534, 9684, -4, 0);
                    Region.addObject(6726, 3534, 9684, 0, 0, -4, false);
                    player.getPacketSender().object(6745, 3535, 9684, -2, 0);
                    Region.addObject(6745, 3535, 9684, 0, 0, -4, false);
                } else if (objectX == 3535 && objectY == 9688) {
                    player.getPacketSender().object(6726, 3535, 9688, -2, 0);
                    Region.addObject(6726, 3535, 9688, 0, 0, -2, false);
                    player.getPacketSender().object(6745, 3534, 9688, -4, 0);
                    Region.addObject(6745, 3534, 9688, 0, 0, -4, false);
                }
                break;
            case 6745:
                if (objectX == 3535 && objectY == 9684) {
                    player.getPacketSender().object(6726, 3534, 9684, -4, 0);
                    Region.addObject(6726, 3534, 9684, 0, 0, -4, false);
                    player.getPacketSender().object(6745, 3535, 9684, -2, 0);
                    Region.addObject(6745, 3535, 9684, 0, 0, -2, false);
                } else if (objectX == 3534 && objectY == 9688) {
                    player.getPacketSender().object(6726, 3535, 9688, -2, 0);
                    Region.addObject(6726, 3535, 9688, 0, 0, -2, false);
                    player.getPacketSender().object(6745, 3534, 9688, -4, 0);
                    Region.addObject(6745, 3534, 9688, 0, 0, -4, false);
                }
                break;
            case 6743:
                if (objectX == 3545 && objectY == 9695) {
                    player.getPacketSender().object(6724, 3545, 9694, -1, 0);
                    Region.addObject(6724, 3545, 9694, 0, 0, -1, false);
                    player.getPacketSender().object(6743, 3545, 9695, -3, 0);
                    Region.addObject(6743, 3545, 9695, 0, 0, -3, false);
                } else if (objectX == 3541 && objectY == 9694) {
                    player.getPacketSender().object(6724, 3541, 9694, -1, 0);
                    Region.addObject(6724, 3541, 9694, 0, 0, -1, false);
                    player.getPacketSender().object(6743, 3541, 9695, -3, 0);
                    Region.addObject(6743, 3541, 9695, 0, 0, -3, false);
                }
                break;
            case 6724:
                if (objectX == 3545 && objectY == 9694) {
                    player.getPacketSender().object(6724, 3545, 9694, -1, 0);
                    Region.addObject(6724, 3545, 9694, 0, 0, -1, false);
                    player.getPacketSender().object(6743, 3545, 9695, -3, 0);
                    Region.addObject(6743, 3545, 9695, 0, 0, -3, false);
                } else if (objectX == 3541 && objectY == 9695) {
                    player.getPacketSender().object(6724, 3541, 9694, -1, 0);
                    Region.addObject(6724, 3541, 9694, 0, 0, -1, false);
                    player.getPacketSender().object(6743, 3541, 9695, -3, 0);
                    Region.addObject(6743, 3541, 9695, 0, 0, -3, false);
                }
                break;

            case 9319:
                if (player.heightLevel == 0) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY, 1);
                } else if (player.heightLevel == 1) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY, 2);
                }
                break;

            case 9320:
                if (player.heightLevel == 1) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY, 0);
                } else if (player.heightLevel == 2) {
                    player.getPlayerAssistant().movePlayer(player.absX,
                            player.absY, 1);
                }
                break;

            case 4496:
            case 4494:
                if (player.heightLevel == 2) {
                    player.getPlayerAssistant().movePlayer(player.absX - 5,
                            player.absY, 1);
                } else if (player.heightLevel == 1) {
                    player.getPlayerAssistant().movePlayer(player.absX + 5,
                            player.absY, 0);
                }
                break;

            case 4493:
                if (player.heightLevel == 0 && player.absY > 3536 && player.absY < 3539 && player.absX == 3438) {
                    player.getPlayerAssistant().movePlayer(player.absX - 5, player.absY, 1);
                } else if (player.heightLevel == 1 && player.absY > 3536 && player.absY < 3539 && player.absX == 3433) {
                    player.getPlayerAssistant().movePlayer(player.absX + 5, player.absY, 2);
                }
                break;

            case 4495:
                if (player.heightLevel == 1 && player.absX == 3412) {
                    player.getPlayerAssistant().movePlayer(player.absX + 5, player.absY, 2);
                }
                break;

            case 5126:
                if (player.absY == 3554) {
                    player.getPlayerAssistant().walkTo(0, 1);
                } else {
                    player.getPlayerAssistant().walkTo(0, -1);
                }
                break;

            case 409:
            case 4859:
            case 61:
            case 10638:
            case 411:
            case 412:
                if (player.playerLevel[GameConstants.PRAYER] < player.getPlayerAssistant()
                        .getLevelForXP(player.playerXP[GameConstants.PRAYER])) {
                    player.startAnimation(645);
                    player.playerLevel[GameConstants.PRAYER] = player.getPlayerAssistant()
                            .getLevelForXP(player.playerXP[GameConstants.PRAYER]);
                    player.getPacketSender().sendMessage(
                            "You recharge your prayer points.");
                    player.getPlayerAssistant().refreshSkill(GameConstants.PRAYER);
                } else {
                    player.getPacketSender().sendMessage(
                            "You already have full prayer points.");
                }
                break;

            case 2640:
                if (player.inWild()) {
                    player.getPacketSender().sendMessage(
                            "You can't use this in the wilderness.");
                    return;
                }
                if (player.playerLevel[GameConstants.PRAYER] < player.getPlayerAssistant()
                        .getLevelForXP(player.playerXP[GameConstants.PRAYER])) {
                    player.startAnimation(645);
                    player.playerLevel[GameConstants.PRAYER] = player.getPlayerAssistant()
                            .getLevelForXP(player.playerXP[GameConstants.PRAYER]) + 2;
                    player.getPacketSender().sendMessage(
                            "You recharge your prayer points.");
                    player.getPlayerAssistant().refreshSkill(GameConstants.PRAYER);
                } else {
                    player.getPacketSender().sendMessage(
                            "You already have full prayer points.");
                }
                break;

            case 2407:
                if (player.inWild()) {
                    player.getPacketSender().sendMessage(
                            "You can't use this in the wilderness.");
                    return;
                } else {
                    player.getPacketSender().sendMessage(
                            "You feel the world around you dissolve...");
                    player.getPlayerAssistant().movePlayer(3171,
                            3609 + Misc.random(10), 0);
                }
                break;

            case 2879:
                player.getPlayerAssistant().movePlayer(2538, 4716, 0);
                break;
            case 2878:
                if (player.inWild()) {
                    player.getPacketSender().sendMessage(
                            "You can't use this in the wilderness.");
                    return;
                } else {
                    player.getPlayerAssistant().movePlayer(2509, 4689, 0);
                }
                break;

            case 9706:
                player.getPlayerAssistant().startTeleport2(3105, 3951, 0);
                break;
            case 9707:
                player.getPlayerAssistant().startTeleport2(3105, 3956, 0);
                break;

            case 2558:
                player.getPacketSender().sendMessage("This door is locked.");
                break;

            case 10529:
            case 10527:
                if (player.absY <= player.objectY) {
                    player.getPlayerAssistant().walkTo(0, 1);
                } else {
                    player.getPlayerAssistant().walkTo(0, -1);
                }
                break;
			
            case 10721:
                if (player.absY == 3298)
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY + 2, 0);
                else if (player.absY == 3300)
                    player.getPlayerAssistant().movePlayer(player.absX, player.absY - 2, 0);
                break;
            case 10725: // Bone Pile
            case 10726: // Bone Pile
            case 10727: // Bone Pile
            case 10728: // Bone Pile
                player.getMageTrainingArena().graveyard.searchBonePile(objectType);
                break;
            case 10734: // Coin Collector
                player.getMageTrainingArena().alchemy.collectCoins();
                break;
            case 10735: // Food Chute
                player.getMageTrainingArena().graveyard.depositFood();
                break;
            case 10771:
                player.getPlayerAssistant().movePlayer(3369, 3307, 1);
                break;
            case 10773:
                player.getPlayerAssistant().movePlayer(3366, 3306, 0);
                break;
            case 10775:
                player.getPlayerAssistant().movePlayer(3357, 3307, 1);
                break;
            case 10776:
                player.getPlayerAssistant().movePlayer(3360, 3306, 0);
                break;
            case 10778:
                // TODO: Require Pizazz progress hat equiped
                player.getMageTrainingArena().telekinetic.goToMaze();
                break;
            case 10779:
                // TODO: Require Pizazz progress hat equiped
                player.getPlayerAssistant().startTeleport2(3363, 9639, 0); // Enchantment training
                break;
            case 10780:
                // TODO: Require Pizazz progress hat equiped
                if (player.getItemAssistant().playerHasItem(995)) {
                    player.getDialogueHandler().sendStatement("You cannot bring coins with you.");
                    return;
                }
                player.getPlayerAssistant().startTeleport2(3365, 9624, 2); // Alchemy training
                break;
            case 10781:
                // TODO: Require Pizazz progress hat equiped
                player.getPlayerAssistant().startTeleport2(3364, 9639, 1); // Graveyard training
                break;
            case 10782: // Leave mage training rooms
                player.getPlayerAssistant().startTeleport2(3363, 3318, 0);
                break;
            case 10799: // Mage training arena - Enchantment room objects
                player.getItemAssistant().addItem(6899, 1);
                break;
            case 10800: // Mage training arena - Enchantment room objects
                player.getItemAssistant().addItem(6898, 1);
                break;
            case 10801: // Mage training arena - Enchantment room objects
                player.getItemAssistant().addItem(6900, 1);
                break;
            case 10802: // Mage training arena - Enchantment room objects
                player.getItemAssistant().addItem(6901, 1);
                break;
            case 10803: // Mage training arena - Enchantment room deposit hole
                player.getMageTrainingArena().enchanting.deposit();
                break;
            case 2873:
                if (player.getItemAssistant().hasFreeSlots(1))
                    player.getItemAssistant().addItem(2412, 1);
                break;
            case 2874:
                if (player.getItemAssistant().hasFreeSlots(1))
                    player.getItemAssistant().addItem(2414, 1);
                break;
            case 2875:
                if (player.getItemAssistant().hasFreeSlots(1))
                    player.getItemAssistant().addItem(2413, 1);
                break;
            case 11209:
                player.getPlayerAssistant().movePlayer(3712, 3496, 1);
                break;
            case 11210:
                player.getPlayerAssistant().movePlayer(3709, 3496, 0);
                break;
            case 11211:
                player.getPlayerAssistant().movePlayer(3684, 2950, 1);
                break;
            case 11212:
                player.getPlayerAssistant().movePlayer(3684, 2953, 0);
                break;
            case 11289:
                if (objectX == 3686 && objectY == 2946)
                    player.getPlayerAssistant().movePlayer(3687, 2946, 2);
                if (objectX == 3686 && objectY == 2950)
                    player.getPlayerAssistant().movePlayer(3687, 2950, 2);
                if (objectX == 3712 && objectY == 3494)
                    player.getPlayerAssistant().movePlayer(3712, 3493, 2);
                if (objectX == 3716 && objectY == 3494)
                    player.getPlayerAssistant().movePlayer(3716, 3493, 2);
                break;
            case 11290:
                if (objectX == 3686 && objectY == 2946)
                    player.getPlayerAssistant().movePlayer(3685, 2946, 1);
                if (objectX == 3686 && objectY == 2950)
                    player.getPlayerAssistant().movePlayer(3685, 2950, 1);
                if (objectX == 3712 && objectY == 3494)
                    player.getPlayerAssistant().movePlayer(3712, 3495, 1);
                if (objectX == 3716 && objectY == 3494)
                    player.getPlayerAssistant().movePlayer(3716, 3495, 1);
                break;
            case 11308:
                if (objectX == 3714 && objectY == 3502)
                    player.getPlayerAssistant().movePlayer(3714, 3503, 1);
                if (objectX == 3678 && objectY == 2948)
                    player.getPlayerAssistant().movePlayer(3677, 2948, 1);
                break;
            case 11309:
                if (objectX == 3714 && objectY == 3502)
                    player.getPlayerAssistant().movePlayer(3714, 3503, 0);
                if (objectX == 3678 && objectY == 2948)
                    player.getPlayerAssistant().movePlayer(3677, 2948, 0);
                break;
            case 10783:
            case 10785:
            case 10787:
            case 10789:
            case 10791:
            case 10793:
            case 10795:
            case 10797:
                player.getMageTrainingArena().alchemy.searchCupboard(objectType);
                break;

        }
    }

    public void secondClickObject(int objectType, int obX, int obY) {
        player.faceUpdate(0);
        player.clickObjectType = 0;
        player.turnPlayerTo(obX, obY);
        if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
            return;
        }
        if (Farming.inspectObject(player, obX, obY)) {
            return;
        }
        switch (objectType) {
            case 6:
                player.getCannon().loadCannon(obX, obY);
                break;

            case 389:
            case 378:
                Searching.searchObject(player, objectType);
                break;

            case 2145:
                if (player.restGhost == 2 && player.playerEquipment[player.playerAmulet] == 552) {
                    NpcHandler.spawnNpc(player, 457, player.getX(), player.getY() + 2, 0, 0, 0, 0, 0, 0, false, false);
                    player.getPacketSender().sendMessage("You search the coffin.");
                } else if (player.restGhost == 4 && player.getItemAssistant().playerHasItem(553, 1)) {
                    player.getItemAssistant().deleteItem(553, 1);
                    player.getPacketSender().sendMessage("You have freed the ghost!");
                    QuestRewards.restFinish(player);
                    NpcHandler.spawnNpc(player, 457, player.getX(), player.getY() + 2, 0, 0, 0, 0, 0, 0, false, false);
                } else if (player.restGhost == 2 && player.playerEquipment[player.playerAmulet] != 552) {
                    player.getDialogueHandler().sendStatement("You need the ghost speak amulet for this part.");
                    player.nextChat = 0;
                } else if (player.restGhost == 4 && !player.getItemAssistant().playerHasItem(553, 1)) {
                    player.getDialogueHandler().sendStatement("You need the skull for this part.");
                    player.nextChat = 0;
                } else if (player.restGhost == 0) {
                    player.getPacketSender().sendMessage("You have not started this quest yet.");
                } else if (player.restGhost == 5) {
                    player.getPacketSender().sendMessage("You have already finished this quest.");
                }
                break;

            case 2402:
                if (player.shieldArrav == 1)
                    player.getDialogueHandler().sendDialogues(696, -1);
                else
                    player.getPacketSender().sendMessage("The bookcase is empty.");
                break;

            case 2550:
                ThieveOther.pickLock(player, 1, 3.5, 2674, 3306, 1, false);
                break;
            case 2551:
                ThieveOther.pickLock(player, 14, 15, 2674, 3303, 2, false);
                break;
            case 2566:
                SearchForTraps.searchForTraps(player, 2566); // uzdeti 28 thv
                break;
            case 2568:
                SearchForTraps.searchForTraps(player, 2568);
                break;
            case 2567:
                SearchForTraps.searchForTraps(player, 2567);
                break;
            case 2570:
                SearchForTraps.searchForTraps(player, 2570);
                break;
            case 2272:
                player.getPacketSender().object(2271, 2984, 3336, 1, 10);
                player.getPacketSender().sendMessage("You close the cupboard.");
                break;
            case 2613:
                player.getPacketSender().object(2612, 3096, 3269, 0, 10);
                player.getPacketSender().sendMessage("You close the cupboard.");
                break;
            case 9038:
            case 9039:
                if (!player.getItemAssistant().playerHasItem(6306, 100) && player.absX == 2816) {
                    player.getDialogueHandler().sendStatement("You need 100 trading sticks to enter here.");
                    player.nextChat = 0;
                    return;
                }
                if (player.absY == 3082 || player.absY == 3085) {
                    player.getDialogueHandler().sendStatement("You can't enter from here.");
                    player.nextChat = 0;
                    return;
                }
                if (player.absX == 2816 && player.getItemAssistant().playerHasItem(6306, 100)) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1, player.absY, 0);
                    player.getItemAssistant().deleteItem(6306, 100);
                } else if (player.absX == 2817) {
                    player.getPlayerAssistant().movePlayer(player.absX + 1, player.absY, 0);
                }
                break;
            case 4569:
                if (player.objectX == 2506 && player.objectY == 3640) {
                    Climbing.climbUp(player);
                }
                break;
            case 2230:
            case 2265:
                if (player.absY > 3209 && player.absY < 3215) {
                    player.getDialogueHandler().sendDialogues(3173, 510);
                } else {
                    player.getDialogueHandler().sendDialogues(3178, 510);
                }
                break;
            case 10041:
                player.getPacketSender().sendMessage("You can't chop this tree.");
                break;
            case 10177:
                player.getPlayerAssistant().movePlayer(2544, 3743, 0);
                break;

            case 11889:
                Climbing.handleClimbing(player);
                break;

            case 2884:
            case 14747:
            case 12537:
                Climbing.climbUp(player);
                break;
            
            case Ectofuntus.GRINDER:
                if (player.ectofuntusBoneCrusherState.equals("Empty")) {
                    player.getPacketSender().sendMessage("You need to load some bones.");
                } else if (player.ectofuntusBoneCrusherState.equals("Loaded")) {
                    player.getPacketSender().sendMessage(ItemAssistant.getItemName(player.ectofuntusBoneUsed) + " loaded and ready to be grinded.");
                } else if (player.ectofuntusBoneCrusherState.equals("Bin")) {
                    player.getPacketSender().sendMessage("Bonemeal is ready to be collected from the bin.");
                } else {
                    player.getPacketSender().sendMessage("Ghostly forces are playing with the machinery.");
                }
                break;

            case 14921:
            case 9390:
            case 2781:
            case 2785:
            case 2966:
            case 3294:
            case 3413:
            case 4304:
            case 4305:
            case 6189:
            case 6190:
            case 11009:
            case 11010:
            case 11666:
            case 12100:
            case 12809:
                Smelting.startSmelting(player, objectType);
                break;

            case 2644:
                Spinning.showSpinning(player);
                break;

            case 1739:
                Climbing.climbUp(player);
                break;

            case 1748:
            case 12965:
                Climbing.climbUp(player);
                break;

            case 2090:
            case 2091:
            case 3042:
                Mining.prospectRock(player, "copper ore");
                break;
            case 2094:
            case 2095:
            case 3043:
                Mining.prospectRock(player, "tin ore");
                break;
            case 2110:
                Mining.prospectRock(player, "blurite ore");
                break;
            case 2092:
            case 2093:
                Mining.prospectRock(player, "iron ore");
                break;
            case 2100:
            case 2101:
                Mining.prospectRock(player, "silver ore");
                break;
            case 2098:
            case 2099:
                Mining.prospectRock(player, "gold ore");
                break;
            case 2096:
            case 2097:
                Mining.prospectRock(player, "coal");
                break;
            case 2102:
            case 2103:
                Mining.prospectRock(player, "mithril ore");
                break;
            case 2104:
            case 2105:
                Mining.prospectRock(player, "adamantite ore");
                break;
            case 2106:
            case 2107:
                Mining.prospectRock(player, "runite ore");
                break;
            case 10947:
                Mining.prospectRock(player, "granite");
                break;
            case 10946:
                Mining.prospectRock(player, "sandstone");
                break;
            case 2111:
                Mining.prospectRock(player, "gem rocks");
                break;

            case 11338: // Bank Booth
            case 2214: // Bank Booth
            case 3045: // Bank Booth
            case 5276: // Bank Booth
            case 6084: // Bank Booth
            case 11758: // Bank Booth
            case 14367: // Bank Booth
            case 4483: // open bank chest
            case 3194: // open bank chest
            case 10517:
            case 2213:
                player.getPacketSender().openUpBank();
                break;

            case 1161:
            case 2646:
            case 313:
            case 5585:
            case 5584:
            case 312:
            case 3366:
                Pickable.pickObject(player, player.objectId, player.objectX, player.objectY);
                break;

            case 2558:
                if (System.currentTimeMillis() - player.lastLockPick < 3000
                        || player.freezeTimer > 0) {
                    break;
                }
                if (player.getItemAssistant().playerHasItem(1523, 1)) {
                    player.lastLockPick = System.currentTimeMillis();
                    if (Misc.random(10) <= 3) {
                        player.getPacketSender().sendMessage(
                                "You fail to pick the lock.");
                        break;
                    }
                    if (player.objectX == 3044 && player.objectY == 3956) {
                        if (player.absX == 3045) {
                            player.getPlayerAssistant().walkTo2(-1, 0);
                        } else if (player.absX == 3044) {
                            player.getPlayerAssistant().walkTo2(1, 0);
                        }

                    } else if (player.objectX == 3038 && player.objectY == 3956) {
                        if (player.absX == 3037) {
                            player.getPlayerAssistant().walkTo2(1, 0);
                        } else if (player.absX == 3038) {
                            player.getPlayerAssistant().walkTo2(-1, 0);
                        }
                    } else if (player.objectX == 3041 && player.objectY == 3959) {
                        if (player.absY == 3960) {
                            player.getPlayerAssistant().walkTo2(0, -1);
                        } else if (player.absY == 3959) {
                            player.getPlayerAssistant().walkTo2(0, 1);
                        }
                    }
                } else {
                    player.getPacketSender().sendMessage("I need a lockpick to pick this lock.");
                }
                break;

        }
    }

    public void thirdClickObject(int objectType, int obX, int obY) {
        player.clickObjectType = 0;
        if (player.playerRights == 3) {
            player.getPacketSender().sendMessage("Object type: " + objectType);
        }
        if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
            return;
        }
        OpenObject.interactObject(player, objectType);
        switch (objectType) {
            case 6:
                player.getCannon().pickup(obX, obY);
                break;
            case 3194:
                if (player.objectX == 3382 && player.objectY == 3270) {
                    player.getPacketSender().object(3193, 3382, 3270, 0, 1, 10);
                } else if (player.objectX == 3381 && player.objectY == 3269) {
                    player.getPacketSender().object(3193, 3381, 3269, 0, 2, 10);
                }
                break;
            case 4569:
                if (player.objectX == 2506 && player.objectY == 3640) {
                    Climbing.climbDown(player);
                }
                break;
            case 11890:
                Climbing.handleClimbing(player);
                break;
            case 1739:
            case 1748:
            case 12965:
            case 2884:
            case 14747:
            case 12537:
                Climbing.climbDown(player);
                break;
        }
    }

    public void fourthClickObject(int objectType, int obX, int obY) {
        player.clickObjectType = 0;
        if (player.playerRights == 3) {
            player.getPacketSender().sendMessage("Object type: " + objectType);
        }
        if (!Region.objectExists(objectType, obX, obY, player.heightLevel)) {
            return;
        }
    }
}
