Thread: [Ruse] Cannot interact with any object?

Results 1 to 5 of 5
  1. #1 [Ruse] Cannot interact with any object? 
    Registered Member
    Join Date
    Mar 2017
    Posts
    19
    Thanks given
    3
    Thanks received
    1
    Rep Power
    11
    Hello,

    I've been trying to figure out what I can't click any objects, I've been through the firstclick method and most of the classes related to object clicking but I still cannot seem to figure out what the problem is.

    If anyone is familiar, would you please be able to push me in the right direction.

    Thanks!

    ObjectActionPacketListener class

    Code:
    public class ObjectActionPacketListener implements PacketListener {
    
        /**
         * The PacketListener logger to debug information and print out errors.
         */
        // private final static Logger logger =
        // Logger.getLogger(ObjectActionPacketListener.class);
        private static void firstClick(final Player player, Packet packet) {
            final int x = packet.readLEShortA();
            final int id = packet.readUnsignedShort();
            final int y = packet.readUnsignedShortA();
            final Position position = new Position(x, y, player.getPosition().getZ());
            final GameObject gameObject = new GameObject(id, position);
            if (id > 0 && id != 2465 && id != 5959 && !World.objectExists(gameObject)) {
                player.getPacketSender().sendMessage("Something has gone wrong, please report this! " + x + ", " + y + ", id: " + id + ".");
                return;
            }
            int distanceX = (player.getPosition().getX() - position.getX());
            int distanceY = (player.getPosition().getY() - position.getY());
            if (distanceX < 0)
                distanceX = -(distanceX);
            if (distanceY < 0)
                distanceY = -(distanceY);
            int size = distanceX > distanceY ? GameObjectDefinition.forId(id).getSizeX()
                    : GameObjectDefinition.forId(id).getSizeY();
    
            if (size <= 0)
                size = 1;
            gameObject.setSize(size);
            if (player.getWalkingQueue().isLockMovement())
                return;
    
            if (GameSettings.DEBUG_MODE) {
                // PlayerLogs.log(player, "" + player.getUsername()
                // + " in ObjectActionPacketListener: " + id + " -
                // FIRST_CLICK_OPCODE");
            }
    
            if (player.getStaffRights().isDeveloper(player))
                player.getPacketSender().sendConsoleMessage(
                        "First click object id; [id, position, direction] : [" + id + ", " + gameObject.getRotation() + ", " + position.toString() + "]");
    
            if (!player.getDragonSpear().elapsed(3000)) {
                player.getPacketSender().sendMessage("You are stunned!");
                return;
            }
            //Fixes barb agility course exploit
            if (gameObject.getId() == 2282) {
                position.set(2551, 3554, 0);
            }
            if(gameObject != null) {
                if(gameObject.getDefinition() != null) {
                    if(gameObject.getDefinition().getName() != null) {
                        if (gameObject.getDefinition().getName().equalsIgnoreCase("ladder") || gameObject.getDefinition().getName().equalsIgnoreCase("staircase")) {
                            if (player.isFrozen()) {
                                player.getPacketSender().sendMessage("You can't use this ladder because you are frozen.");
                                return;
                            }
                        }
                    }
                }
            }
            player.setInteractingObject(gameObject)
                    .setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                        @Override
                        public void execute() {
                            if(gameObject.getId() != 4767) {
                                player.setPositionToFace(gameObject.getPosition());
                            }
                            if (WoodcuttingData.Trees.forId(id) != null) {
                                Woodcutting.cutWood(player, gameObject, false);
                                return;
                            }
                            if (MiningData.forRock(gameObject.getId()) != null) {
                                Mining.startMining(player, gameObject, null);
                                return;
                            }
                            if (Farming.isGameObject(player, gameObject, 1))
                                return;
                            if (DoorManager.isDoor(gameObject)) {
    //							if(gameObject.getName().toLowerCase().contains("gate")) {
    //								Region region = World.loadRegion(x, y);
    //								int positionX = gameObject.getPosition().getX();
    //								int positionY = gameObject.getPosition().getY();
    //								GameObject doubleDoor = region.gateAtPosition("gate", positionX, positionY);
    //								if(doubleDoor != null) {
    //									DoorManager.isDoor(doubleDoor);
    //								}
    //							}
                                return;
                            }
                            if (Runecrafting.runecraftingAltar(player, gameObject.getId())) {
                                RunecraftingData.RuneData rune = RunecraftingData.RuneData.forId(gameObject.getId());
                                if (rune == null)
                                    return;
                                Runecrafting.craftRunes(player, rune);
                                return;
                            }
                            if (Agility.handleObject(player, gameObject)) {
                                return;
                            }
                            if (Barrows.handleObject(player, gameObject)) {
                                return;
                            }
                            if (ChaosTunnelHandler.handleObjects(player, gameObject)) {
                                return;
                            }
                            if (player.getLocation() == Location.WILDERNESS
                                    && WildernessObelisks.handleObelisk(gameObject.getId())) {
                                return;
                            }
                            switch (id) {
                                //camelot stairs up
                                case 1725:
                                    player.moveTo(new Position(player.getPosition().getX(), 3513, 1));
                                    break;
                                //camelot stairs down
                                case 1726:
                                    player.moveTo(new Position(player.getPosition().getX(), 3509, 0));
                                    break;
                                case 1747: // camelot ladder up
                                    player.performAnimation(new Animation(828));
                                    player.delayedMoveTo(new Position(player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ()+1), 2);
                                    break;
                                case 1746: // camelot ladder down
                                    player.performAnimation(new Animation(827));
                                    player.delayedMoveTo(new Position(player.getPosition().getX(), player.getPosition().getY(), player.getPosition().getZ()-1), 2);
                                    break;
                                //Crystal Ball (Bolt Enchanting)
                                case 589:
                                    Enchanting.update_interface(player);
                                break;
                                case 30205:
                                    player.getDialog().sendDialog(new ChooseScoreboard(player));
                                    break;
                                case 28089:
                                    if (!GameSettings.POS_ENABLED) {
                                        player.getPacketSender().sendMessage("Player owned shops have been disabled.");
                                        return;
                                    }
                                    if (player.getGameModeAssistant().isIronMan()) {
                                        player.getPacketSender().sendMessage("Ironmen can't use the player owned shops!");
                                        return;
                                    }
                                    PlayerOwnedShops.openItemSearch(player, true);
                                    //player.setPlayerOwnedShopping(true);
                                    break;
    
                                //Kuradels dungeon
                                case 47236:
                                    break;
    
                                //Construction portal
                                case 15477:
    
                                    break;
                                //rune ess
                                case 2491:
                                    if(player.getInteractingObject() != null) {
                                        if (player.getSkillManager().getMaxLevel(Skill.MINING) <= 21) {
                                            Mining.startMining(player, new GameObject(24444, player.getInteractingObject().getPosition()), null);
                                        } else {
                                            Mining.startMining(player, new GameObject(24445, player.getInteractingObject().getPosition()), null);
                                        }
                                    }
                                    break;
                                case 47758:
                                case 47760:
                                case 47762:
                                    //Presents.pickUpPresent(player, gameObject);
                                    break;
                                case 2492:
                                    player.moveTo(new Position(3253, 3400, 0));
                                    break;
                                case 2477:
                                    if(player.getDungeoneering().getDungeonStage() == Dungeoneering.DungeonStage.KILLED_BOSS) {
                                        player.getDungeoneering().getFloor().completeFloor();
                                    } else {
                                        player.getPacketSender().sendMessage("You are not quite done with your dungeon yet!");
                                    }
                                    break;
                                case 38660:
                                case 38661:
                                case 38662:
                                case 38663:
                                case 38664:
                                case 38665:
                                case 38666:
                                case 38667:
                                case 38668:
                                    ShootingStar.getInstance().hasMenuAction(player, 1);
                                    break;
                                //Dungeoneering
                                case 48496:
                                    player.getDialog().sendDialog(new EnterDungeon(player));
                                    break;
                                case 6645:
                                    if(player.getDungeoneering().getDungeonStage() == Dungeoneering.DungeonStage.DEFAULT) {
                                        player.getPacketSender().sendMessage("You are currently not dungeoneering.");
                                        return;
                                    }
                                    player.getDialog().sendDialog(new LeaveDungeon(player));
                                    break;
                                case 52847:
                                    if(player.getPosition().getY() >= 3725) {
                                        player.getPacketSender().sendMessage("You are currently not dungeoneering.");
                                        return;
                                    }
                                    player.getDungeoneering().leaveExitRoom();
                                    break;
                                case 6643:
                                    if(!player.getDungeoneering().hasRequiredKills()) {
                                        player.getPacketSender().sendMessage("You need atleast "+player.getDungeoneering().getFloor().getRequiredKills()+" kills to fight the boss.");
                                        return;
                                    }
                                    player.getDungeoneering().getFloor().fightBoss(gameObject);
                                    break;
                                //corp lair
                                case 37929:
                                    player.performAnimation(new Animation(844));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 3) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            if (player.getPosition().getX() < 2919) {
                                                player.moveTo(new Position(2921, 4384, 0));
                                                player.setDirection(Direction.EAST);
                                                player.getPacketSender().sendMessage("You have awoken the beast.");
                                            } else {
                                                player.moveTo(new Position(2917, 4384, 0));
                                                player.setDirection(Direction.WEST);
                                            }
                                        }
                                    });
                                    break;
                                //runecrafting portals
                                case 2465:
                                case 2466:
                                case 2467:
                                case 2468:
                                case 2469:
                                case 2470:
                                case 2474:
                                case 2475:
                                    player.moveTo(new Position(3093, 3496, 0));
                                    break;
                                //Giant Crystal
                                case 62:
                                    Emotes.doEmote(player, 666);
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 7) {
                                                player.performGraphic(new Graphic(191));
                                            }
                                            if (tick == 8) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(2595, 4772, 0));
                                            player.getPacketSender().sendMessage("<img=4> To get started with Runecrafting, buy a talisman and use the locate option on it.");
                                        }
                                    });
                                    break;
                                //Well of Goodness
                                case 884:
                                    player.setNpcClickId(945);
                                    player.getDialog().sendDialog(new Well(player));
                                    break;
                                //Edgeville coffins
                                case 398:
                                    player.setNpcClickId(945);
                                    player.getDialog().sendDialog(new EdgevilleCoffins(player));
                                    break;
                                //Bounty hunter caves
                                case 28119:
                                    player.moveTo(new Position(player.getPosition().getX(), player.getPosition().getY() - 11, 0));
                                    break;
                                case 28121:
                                    player.moveTo(new Position(player.getPosition().getX(), player.getPosition().getY() + 11, 0));
                                    break;
                                //Bount hunter portal
                                case 42219:
                                    player.setNpcClickId(945);
                                    player.getDialog().sendDialog(new BountyPortal(player));
                                    break;
    
                                case 2406:
                                    if (!player.getClickDelay().elapsed(3000))
                                        return;
                                    player.getPacketSender().sendMessage(
                                            "kicks: " + player.getMinigameAttributes().getShrek1Attributes().getDoorKicks());
                                    if (player.getMinigameAttributes().getShrek1Attributes().getQuestParts() == 1) {
                                        if (player.getMinigameAttributes().getShrek1Attributes().getDoorKicks() == 0) {
                                            player.setDirection(Direction.EAST);
                                            player.performAnimation(new Animation(2555));
                                            player.getPacketSender()
                                                    .sendMessage("You hear a very intimidating voice from inside yelling.");
                                            player.getMinigameAttributes().getShrek1Attributes().setDoorKicks(1);
                                        } else if (player.getMinigameAttributes().getShrek1Attributes().getDoorKicks() == 1) {
                                            player.setDirection(Direction.EAST);
                                            player.performAnimation(new Animation(2555));
                                            // spawn shrek
                                            TaskManager.submit(new Task(2, player, false) {
                                                @Override
                                                public void execute() {
                                                    NPC n = new NPC(5872, new Position(3201, 3169, player.getPosition().getZ()))
                                                            .setSpawnedFor(player);
                                                    World.register(n);
                                                    n.getCombatBuilder().attack(player);
                                                    stop();
                                                }
                                            });
                                            // player.getMinigameAttributes().getShrek1Attributes().setDoorKicks(2);
                                        }
                                    } else {
                                        player.getPacketSender().sendMessage("Nothing interesting happens.");
                                    }
                                    // ok so player kicks door once - shrek says leave
                                    // dont come back or else...
                                    // if player kicks door again he spawns - they fight
                                    // - 100% drop ogres head
                                    player.getClickDelay().reset();
                                    break;
                                case 9299:
                                    if (player.getSkillManager().getMaxLevel(Skill.AGILITY) < 50) {
                                        player.getPacketSender()
                                                .sendMessage("You need an agility of 50 or higher to use this shortcut.");
                                        return;
                                    }
                                    if (player.getPosition().getY() > 3190) {
                                        player.setDirection(Direction.SOUTH);
                                        player.performAnimation(new Animation(2240));
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                if (tick == 4) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                player.moveTo(new Position(3240, 3190, 0));
                                                player.getPacketSender().sendMessage("You squeeze through the fence.");
                                            }
                                        });
                                    } else {
                                        player.setDirection(Direction.NORTH);
                                        player.performAnimation(new Animation(2240));
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                if (tick == 4) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                player.moveTo(new Position(3240, 3191, 0));
                                                player.getPacketSender().sendMessage("You squeeze through the fence.");
                                            }
                                        });
                                    }
                                    break;
                                case 23271:
                                    if (player.getPosition().getY() == 3520 || player.getPosition().getY() == 3519) {
                                        player.performAnimation(new Animation(6132));
                                        TaskManager.submit(new Task(1, player, false) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                if (tick == 3) {
                                                    player.moveTo(new Position(player.getPosition().getX(), 3523, 0));
                                                    stop();
                                                }
                                                tick++;
                                            }
    
                                            @Override
                                            public void stop() {
    
                                            }
    
                                        });
                                    } else if (player.getPosition().getY() == 3523 || player.getPosition().getY() == 3524) {
                                        player.performAnimation(new Animation(6132));
                                        TaskManager.submit(new Task(1, player, false) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                if (tick == 3) {
                                                    player.moveTo(new Position(player.getPosition().getX(), 3520, 0));
                                                    stop();
                                                }
                                                tick++;
                                            }
    
                                            @Override
                                            public void stop() {
                                            }
                                        });
                                    }
                                    break;
                                case 21772:
                                    player.moveTo(new Position(3236, 3458, 0));
                                    break;
                                case 10309:
                                    player.performAnimation(new Animation(828));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 4) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(2658, 3492, 0));
                                        }
                                    });
                                    break;
                                case 1754:
                                    player.performAnimation(new Animation(827));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 4) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(2962, 9650, 0));
                                        }
                                    });
                                    break;
                                case 1734:
                                    if (player.getPosition().getX() == 3045 && player.getPosition().getY() == 10323) {
                                        player.moveTo(new Position(3045, 3927, 0));
                                    } else if (player.getPosition().getX() == 3044 && player.getPosition().getY() == 10323) {
                                        player.moveTo(new Position(3044, 3927, 0));
                                    } else {
                                        player.getPacketSender().sendMessage("I can't climb them from here.");
    
                                    }
                                    break;
                                case 1733:
                                    if (player.getPosition().getX() == 3045 || player.getPosition().getY() == 3927) {
                                        player.moveTo(new Position(3045, 10323, 0));
                                    } else if (player.getPosition().getX() == 3044 || player.getPosition().getY() == 3927) {
                                        player.moveTo(new Position(3044, 10323, 0));
                                    } else {
                                        player.getPacketSender().sendMessage("I can't climb them from here.");
                                    }
                                    break;
                                case 51:
                                    player.getPacketSender().sendMessage("There is no way I could squeeze through that...");
                                    break;
                                case 52:
                                case 53:
                                    if (player.getPosition().getY() < 3470) {
                                        player.moveTo(
                                                new Position(player.getPosition().getX(), player.getPosition().getY() + 1));
                                    } else if (player.getPosition().getY() > 3469) {
                                        player.moveTo(
                                                new Position(player.getPosition().getX(), player.getPosition().getY() - 1));
                                    }
                                    break;
                                case 99:
                                    if (player.getInventory().contains(1843)) {
                                        player.moveTo(
                                                new Position(player.getPosition().getX(), player.getPosition().getY() - 1, 0));
                                    } else {
                                        player.getPacketSender()
                                                .sendMessage("The door is locked. I must need some sort of key to get in.");
                                    }
                                    break;
                                case 2932:
                                    player.moveTo(new Position(2600, 3157, 0));
                                    player.performAnimation(new Animation(2306));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 6) {
                                            } else if (tick >= 10) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(player.getPosition().getX() - 1,
                                                    player.getPosition().getY(), player.getPosition().getZ()));
                                            player.getPacketSender().sendMessage(
                                                    "You smash open the barrel by jumping on it, a lion appeared!");
                                            NPC n = new NPC(1172, new Position(player.getPosition().getX(),
                                                    player.getPosition().getY() + 2, player.getPosition().getZ()))
                                                    .setSpawnedFor(player);
                                            World.register(n);
                                        }
                                    });
                                    break;
                                case 21764:
                                case 2654:
                                    if (player.getDonatorRights().ordinal() > 2) {
                                        if (!player.getSpecTimer().elapsed(120000)) {
                                            player.getPacketSender()
                                                    .sendMessage("You can only restore your special attack every 2 minutes.");
                                            return;
                                        }
                                        player.performAnimation(new Animation(1327));
                                        player.setSpecialPercentage(100);
                                        CombatSpecial.updateBar(player);
                                        int max = player.getSkillManager().getMaxLevel(Skill.CONSTITUTION);
                                        player.setConstitution(max);
                                        player.getSkillManager().setCurrentLevel(Skill.PRAYER,
                                                player.getSkillManager().getMaxLevel(Skill.PRAYER));
                                        player.setPoisonDamage(0);
                                        player.setVenomDamage(0);
                                        player.getPacketSender().sendConstitutionOrbPoison(false);
                                        player.getPacketSender().sendConstitutionOrbVenom(false);
                                        player.getPacketSender().sendMessage(
                                                "<img=10><col=570057><shad=0> You take a drink from the fountain... and feel revived!");
                                        player.getSpecTimer().reset();
                                    } else {
                                        if (!player.getSpecTimer().elapsed(9000000)) {
                                            player.getPacketSender()
                                                    .sendMessage("You can only restore your special attack every 15 minutes.");
                                            return;
                                        }
                                        player.performAnimation(new Animation(1327));
                                        player.setSpecialPercentage(100);
                                        CombatSpecial.updateBar(player);
                                        int max = player.getSkillManager().getMaxLevel(Skill.CONSTITUTION);
                                        player.setConstitution(max);
                                        player.getSkillManager().setCurrentLevel(Skill.PRAYER,
                                                player.getSkillManager().getMaxLevel(Skill.PRAYER));
                                        player.setPoisonDamage(0);
                                        player.setVenomDamage(0);
                                        player.getPacketSender().sendConstitutionOrbPoison(false);
                                        player.getPacketSender().sendConstitutionOrbVenom(false);
                                        player.getPacketSender().sendMessage(
                                                "<icon=2><shad=ff0000> You take a drink from the fountain... and feel revived!");
                                        player.getSpecTimer().reset();
                                    }
                                    break;
                                case 81:
                                    if (player.getPosition().getX() == 2584) {
                                        if (player.getInventory().contains(993)) {
                                            player.performAnimation(new Animation(1820));
                                            TaskManager.submit(new Task(1, player, true) {
                                                int tick = 1;
    
                                                @Override
                                                public void execute() {
                                                    tick++;
                                                    if (tick == 2) {
                                                    } else if (tick >= 5) {
                                                        player.moveTo(new Position(player.getPosition().getX() + 1,
                                                                player.getPosition().getY(), 0));
                                                        stop();
                                                    }
                                                }
    
                                                @Override
                                                public void stop() {
                                                    setEventRunning(false);
                                                    player.getPacketSender()
                                                            .sendMessage("You use the key to get through the door.");
                                                }
                                            });
                                        }
                                    }
                                    break;
                                case 82:
                                    if (player.getPosition().getX() == 2606 || player.getPosition().getX() == 2607) {
                                        if (player.getInventory().contains(993)) {
                                            player.performAnimation(new Animation(1820));
                                            TaskManager.submit(new Task(1, player, true) {
                                                int tick = 1;
    
                                                @Override
                                                public void execute() {
                                                    tick++;
                                                    if (tick == 2) {
                                                    } else if (tick >= 5) {
                                                        player.moveTo(new Position(player.getPosition().getX(),
                                                                player.getPosition().getY() + 2, 0));
                                                        stop();
                                                    }
                                                }
    
                                                @Override
                                                public void stop() {
                                                    setEventRunning(false);
                                                    player.getPacketSender()
                                                            .sendMessage("You use the key to get through the door.");
                                                }
                                            });
                                        }
                                    }
                                    break;
                                case 4754:
                                case 4749:
                                    if (player.getMinigameAttributes().getClawQuestAttributes().getSamples() <= 50) {
                                        if (player.getMinigameAttributes().getClawQuestAttributes().getQuestParts() >= 6) {
                                            player.performAnimation(new Animation(2290));
                                            TaskManager.submit(new Task(1, player, true) {
                                                int tick = 1;
    
                                                @Override
                                                public void execute() {
                                                    tick++;
                                                    if (tick == 2) {
                                                        player.getMinigameAttributes().getClawQuestAttributes().addSamples(1);
                                                    } else if (tick >= 6) {
                                                        stop();
                                                    }
                                                }
    
                                                @Override
                                                public void stop() {
                                                    setEventRunning(false);
                                                    player.getPacketSender()
                                                            .sendMessage("You have collected "
                                                                    + player.getMinigameAttributes().getClawQuestAttributes()
                                                                    .getSamples()
                                                                    + " of "
                                                                    + player.getMinigameAttributes()
                                                                    .getClawQuestAttributes().SAMPLES_NEEDED
                                                                    + " samples needed.");
                                                }
                                            });
                                        } else {
                                            player.getPacketSender().sendMessage("Nothing interesting happened.");
                                        }
                                    }
                                    break;
                                case 12987:
                                    player.getPacketSender()
                                            .sendMessage("There is another way out of this stable. The gate is broken!");
                                    break;
                                case 12982:
                                    if (player.getPosition().getY() == 3275) {
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                player.performAnimation(new Animation(828));
                                                if (tick == 3) {
                                                    player.moveTo(new Position(player.getPosition().getX(),
                                                            player.getPosition().getY() + 2));
                                                } else if (tick >= 4) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                player.getPacketSender().sendMessage("You jump over the stile.");
                                            }
                                        });
                                    } else {
                                        player.getPacketSender().sendMessage("You failed to climb over, please try again.");
                                    }
                                    break;
                                case 3565:
                                    if (player.getSkillManager().getCurrentLevel(Skill.AGILITY) >= 50) {
    
                                        if (player.getLocation() == Location.BORK && player.getPosition().getY() < 2973) {
                                            TaskManager.submit(new Task(1, player, true) {
                                                int tick = 1;
    
                                                @Override
                                                public void execute() {
                                                    tick++;
                                                    player.performAnimation(new Animation(769));
                                                    if (tick == 3) {
                                                        player.moveTo(new Position(player.getPosition().getX(), player.getPosition().getY() + 3));
                                                    } else if (tick >= 4) {
                                                        stop();
                                                    }
                                                }
    
                                                @Override
                                                public void stop() {
                                                    setEventRunning(false);
                                                    Agility.addExperience(player, 13);
                                                    player.getPacketSender().sendMessage("You jump over the wall.");
                                                }
                                            });
                                        } else if (player.getLocation() == Location.BORK && player.getPosition().getY() >= 2973) {
                                            TaskManager.submit(new Task(1, player, true) {
                                                int tick = 1;
    
                                                @Override
                                                public void execute() {
                                                    tick++;
                                                    player.performAnimation(new Animation(769));
                                                    if (tick == 3) {
                                                        player.moveTo(new Position(player.getPosition().getX(), player.getPosition().getY() - 3));
                                                    } else if (tick >= 4) {
                                                        stop();
                                                    }
                                                }
    
                                                @Override
                                                public void stop() {
                                                    setEventRunning(false);
                                                    Agility.addExperience(player, 13);
                                                    player.getPacketSender().sendMessage("You jump over the wall.");
                                                }
                                            });
                                        } else if (player.getPosition().getX() <= 3349) {
                                            TaskManager.submit(new Task(1, player, true) {
                                                int tick = 1;
    
                                                @Override
                                                public void execute() {
                                                    tick++;
                                                    player.performAnimation(new Animation(769));
                                                    if (tick == 3) {
                                                        player.moveTo(new Position(3352, player.getPosition().getY()));
                                                    } else if (tick >= 4) {
                                                        stop();
                                                    }
                                                }
    
                                                @Override
                                                public void stop() {
                                                    setEventRunning(false);
                                                    Agility.addExperience(player, 13);
                                                    player.getPacketSender().sendMessage("You jump over the wall.");
                                                }
                                            });
                                        } else {
                                            player.getPacketSender().sendMessage(
                                                    "You need an Agility level of at least 50 to get past this obstacle.");
                                            player.getPacketSender().sendMessage("or an wilderness key!");
                                        }
                                    } else {
                                        player.getPacketSender().sendMessage("You need 50 agility in order to cross this...");
                                    }
                                    break;
                                case 5259:
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender().sendMessage("You are teleblocked");
                                        return;
                                    }
                                    if (player.getPosition().getX() >= 3653) { // :)
                                        player.moveTo(new Position(3652, player.getPosition().getY()));
                                    } else {
                                        player.getPacketSender().sendInterfaceRemoval();
                                        player.moveTo(new Position(3653, player.getPosition().getY()));
                                    }
                                    break;
                                case 38700:
                                    player.moveTo(new Position(3085, 3512));
                                    break;
                                case 1765:// ladder down to posion spider KBD
                                    player.performAnimation(new Animation(827));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 4) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(3069, 10255, 0));
                                        }
                                    });
                                    break;
                                case 2795: // lever KBD
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender()
                                                .sendMessage("A magical spell is blocking you from teleporting.");
                                        return;
                                    }
                                    if (player.getPosition().getY() >= 10252) {
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                player.performAnimation(new Animation(2140));
                                                if (tick >= 2) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                TeleportHandler.teleportPlayer(player, new Position(2273, 4681, 0),
                                                        TeleportType.LEVER);
                                            }
                                        });
                                    } else {
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                player.performAnimation(new Animation(2140));
                                                if (tick >= 2) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                TeleportHandler.teleportPlayer(player, new Position(3066, 10254),
                                                        TeleportType.LEVER);
                                            }
                                        });
                                    }
                                    break;
                                case 1766:// poison spider ladder KBD
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender()
                                                .sendMessage("A magical spell is blocking you from teleporting.");
                                        return;
                                    }
                                    player.performAnimation(new Animation(828));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 4) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(3017, 3850, 0));
                                        }
                                    });
                                    break;
                                case 9312: // Grand Exchange Underwall Tunnel
                                    Position position = new Position(3164, 3484, 0);
                                    break;
    //							case 2465:
    //								if (player.getLocation() == Location.EDGEVILLE) {
    //									player.getPacketSender().sendMessage(
    //											"<img=4> @blu@Welcome to the free-for-all arena! You will not lose any items on death here.");
    //									player.moveTo(new Position(2815, 5511));
    //								} else {
    //									player.getPacketSender()
    //											.sendMessage("The portal does not seem to be functioning properly.");
    //								}
    //								break;
                                case 7353:
                                    player.moveTo(new Position(2439, 4956, player.getPosition().getZ()));
                                    break;
                                case 7321:
                                    player.moveTo(new Position(2452, 4944, player.getPosition().getZ()));
                                    break;
                                case 7322:
                                    player.moveTo(new Position(2455, 4964, player.getPosition().getZ()));
                                    break;
                                case 7315:
                                    player.moveTo(new Position(2447, 4956, player.getPosition().getZ()));
                                    break;
                                case 7316:
                                    player.moveTo(new Position(2471, 4956, player.getPosition().getZ()));
                                    break;
                                case 7318:
                                    player.moveTo(new Position(2464, 4963, player.getPosition().getZ()));
                                    break;
                                case 7324:
                                    player.moveTo(new Position(2481, 4956, player.getPosition().getZ()));
                                    break;
    
                                case 7319:
                                    if (gameObject.getPosition().getX() == 2481 && gameObject.getPosition().getY() == 4956)
                                        player.moveTo(new Position(2467, 4940, player.getPosition().getZ()));
                                    break;
    
                                case 11356:
                                    if (!player.getDonatorRights().isDonator()) {
                                        player.getPacketSender().sendMessage("You are not a donator... Get out of here!");
                                        player.moveTo(new Position(3087, 3502, 0));
                                        return;
                                    }
                                    player.moveTo(new Position(2860, 9741));
                                    player.getPacketSender().sendMessage("You step through the portal..");
                                    break;
                                case 47180:
                                    if (player.getDonatorRights().ordinal() >= 3) {
                                        player.getDialog().sendDialog(new PortalDevice(player, 0));
                                    } else {
                                        player.getPacketSender().sendMessage("You need to be an Legendary Donator to use this.");
                                    }
                                    break;
                                case 10091:
                                case 8702:
                                    if (gameObject.getId() == 8702) {
                                        if (player.getDonatorRights().ordinal() < 2) {
                                            player.getPacketSender()
                                                    .sendMessage("You must be at least a Super Donator to use this.");
                                            return;
                                        }
                                    }
                                    Fishing.setupFishing(player, Spot.ROCKTAIL);
                                    break;
                                case 9319:
                                    if (player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 61) {
                                        player.getPacketSender().sendMessage(
                                                "You need an Agility level of at least 61 or higher to climb this");
                                        return;
                                    }
                                    if (player.getPosition().getZ() == 0)
                                        player.moveTo(new Position(3422, 3549, 1));
                                    else if (player.getPosition().getZ() == 1) {
                                        if (gameObject.getPosition().getX() == 3447)
                                            player.moveTo(new Position(3447, 3575, 2));
                                        else
                                            player.moveTo(new Position(3447, 3575, 0));
                                    }
                                    break;
    
                                case 9320:
                                    if (player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 61) {
                                        player.getPacketSender().sendMessage(
                                                "You need an Agility level of at least 61 or higher to climb this");
                                        return;
                                    }
                                    if (player.getPosition().getZ() == 1)
                                        player.moveTo(new Position(3422, 3549, 0));
                                    else if (player.getPosition().getZ() == 0)
                                        player.moveTo(new Position(3447, 3575, 1));
                                    else if (player.getPosition().getZ() == 2)
                                        player.moveTo(new Position(3447, 3575, 1));
                                    player.performAnimation(new Animation(828));
                                    break;
                                case 2274:
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender().sendMessage("You are teleblocked, don't die, noob.");
                                        return;
                                    }
                                    if (gameObject.getPosition().getX() == 2912 && gameObject.getPosition().getY() == 5300) {
                                        player.moveTo(new Position(2914, 5300, 1));
                                    } else if (gameObject.getPosition().getX() == 2914
                                            && gameObject.getPosition().getY() == 5300) {
                                        player.moveTo(new Position(2912, 5300, 2));
                                    } else if (gameObject.getPosition().getX() == 2919
                                            && gameObject.getPosition().getY() == 5276) {
                                        player.moveTo(new Position(2918, 5274));
                                    } else if (gameObject.getPosition().getX() == 2918
                                            && gameObject.getPosition().getY() == 5274) {
                                        player.moveTo(new Position(2919, 5276, 1));
                                    } else if (gameObject.getPosition().getX() == 3001
                                            && gameObject.getPosition().getY() == 3931
                                            || gameObject.getPosition().getX() == 3652
                                            && gameObject.getPosition().getY() == 3488) {
                                        player.moveTo(GameSettings.DEFAULT_POSITION_EDGEVILLE.copy());
                                        player.getPacketSender().sendMessage("The portal teleports you to Edgeville.");
                                    }
                                    break;
                                case 7836:
                                case 7837:
                                case 7808:
                                case 7818:
                                    int amt = player.getInventory().getAmount(6055);
                                    if (amt > 0) {
                                        player.getInventory().delete(6055, amt);
                                        player.getPacketSender().sendMessage("You put the weed in the compost bin.");
                                        player.getSkillManager().addSkillExperience(Skill.FARMING, 20 * amt);
                                        if (player.getMinigameAttributes().getFarmQuestAttributes().getQuestParts() == 2) {
                                            player.getMinigameAttributes().getFarmQuestAttributes().addProduce(amt);
                                            player.getPacketSender()
                                                    .sendMessage("You now have added " + player.getMinigameAttributes()
                                                            .getFarmQuestAttributes().getProduce()
                                                            + "/100 weeds to the compost bin.");
                                            if (player.getMinigameAttributes().getFarmQuestAttributes().getProduce() > 99) {
                                                player.getMinigameAttributes().getFarmQuestAttributes().setQuestParts(3);
                                            }
                                        }
                                    } else {
                                        player.getPacketSender().sendMessage("You do not have any weeds in your inventory.");
                                    }
                                    break;
                                case 9706:
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender()
                                                .sendMessage("A magical spell is blocking you from teleporting.");
                                        return;
                                    }
                                    if (gameObject.getPosition().getX() == 3104 && gameObject.getPosition().getY() == 3956) {
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(3105, 3951), TeleportType.LEVER);
                                    } else {
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(3105, 3951), TeleportType.LEVER);
                                    }
                                    break;
                                case 9707:
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender()
                                                .sendMessage("A magical spell is blocking you from teleporting.");
                                        return;
                                    }
                                    if (gameObject.getPosition().getX() == 3105 && gameObject.getPosition().getY() == 3952) {
                                        player.setDirection(Direction.NORTH);
                                        TeleportHandler.teleportPlayer(player, new Position(3105, 3956), TeleportType.LEVER);
                                    }
                                    break;
                                case 5960: // Levers
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender()
                                                .sendMessage("A magical spell is blocking you from teleporting.");
                                        return;
                                    }
                                    if (gameObject.getPosition().getX() == 2539 && gameObject.getPosition().getY() == 4712) {
                                        player.setDirection(Direction.SOUTH);
                                        TeleportHandler.teleportPlayer(player, new Position(3090, 3956), TeleportType.LEVER);
                                    } else if (gameObject.getPosition().getX() == 3067
                                            && gameObject.getPosition().getY() == 10253) {
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                player.performAnimation(new Animation(2140));
                                                if (tick >= 2) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                TeleportHandler.teleportPlayer(player, new Position(2272, 4680, 0),
                                                        TeleportType.LEVER);
                                            }
                                        });
                                    } else if (gameObject.getPosition().getX() == 2272
                                            && gameObject.getPosition().getY() == 4680) {
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                player.performAnimation(new Animation(2140));
                                                if (tick >= 2) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                TeleportHandler.teleportPlayer(player, new Position(3067, 10253),
                                                        TeleportType.LEVER);
                                            }
                                        });
                                    }
                                    break;
                                case 5959:
                                    if (player.getTeleblockTimer() > 0) {
                                        player.getPacketSender().sendMessage("A magical spell is blocking you from teleporting.");
                                        return;
                                    }
                                    if(player.getPosition().equals(3089,3956) || player.getPosition().equals(3089,3957) || player.getPosition().equals(3089,3955)) {
                                        return;
                                    }
                                    if (gameObject.getPosition().getX() == 3090 && gameObject.getPosition().getY() == 3956) {
                                        if(!player.getPosition().equals(3090,3956)) {
                                            return;
                                        }
                                        int x = 3090;
                                        int y = 3956;
                                        TaskManager.submit(new Task(1, player, false) {
                                            int ticks = 0;
    
                                            @Override
                                            public void execute() {
                                                ticks++;
                                                player.getWalkingQueue().walkStep(x,y);
                                                if (ticks >= 3)
                                                    player.setDirection(Direction.WEST);
                                                    TeleportHandler.teleportPlayer(player, new Position(2539, 4712), TeleportType.LEVER);
                                                    stop();
                                            }
    
                                        });
                                    } else if (gameObject.getPosition().getX() == 3090 && gameObject.getPosition().getY() == 3474) {
                                        if(!player.getPosition().equals(3090,3956)) {
                                            return;
                                        }
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(3154, 3923), TeleportType.LEVER);
                                    } else if (player.getPosition().getX() == 3090 && player.getPosition().getY() >= 3957) {
                                        if(!player.getPosition().equals(3090,3956)) {
                                            return;
                                        }
                                        player.setDirection(Direction.SOUTH);
                                        TeleportHandler.teleportPlayer(player, new Position(2539, 4712), TeleportType.LEVER);
                                    } else if (player.getPosition().getX() == 3090 && player.getPosition().getY() <= 3955) {
                                        if(!player.getPosition().equals(3090,3956)) {
                                            return;
                                        }
                                        player.setDirection(Direction.NORTH);
                                        TeleportHandler.teleportPlayer(player, new Position(2539, 4712), TeleportType.LEVER);
                                    } else if (player.getPosition().getX() == 3153 && player.getPosition().getY() <= 3923) {
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(2561, 3311), TeleportType.LEVER);
                                    } else if (gameObject.getPosition().equals(2561, 3311)) {
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(3154, 3923), TeleportType.LEVER);
                                    } else if (player.getPosition().getX() == 2561 && player.getPosition().getY() <= 3311) {
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(3153, 3923), TeleportType.LEVER);
                                    } else if (gameObject.getPosition().equals(3153, 3923)) {
                                        player.setDirection(Direction.WEST);
                                        TeleportHandler.teleportPlayer(player, new Position(2562, 3311), TeleportType.LEVER);
                                    }
                                    break;
                                case 5096:
                                    if (gameObject.getPosition().getX() == 2644 && gameObject.getPosition().getY() == 9593)
                                        player.moveTo(new Position(2649, 9591));
                                    break;
    
                                case 5094:
                                    if (gameObject.getPosition().getX() == 2648 && gameObject.getPosition().getY() == 9592)
                                        player.moveTo(new Position(2643, 9594, 2));
                                    break;
    
                                case 5098:
                                    if (gameObject.getPosition().getX() == 2635 && gameObject.getPosition().getY() == 9511)
                                        player.moveTo(new Position(2637, 9517));
                                    break;
    
                                case 5097:
                                    if (gameObject.getPosition().getX() == 2635 && gameObject.getPosition().getY() == 9514)
                                        player.moveTo(new Position(2636, 9510, 2));
                                    break;
                                case 26428:
                                case 26426:
                                case 26425:
                                case 26427:
                                    String bossRoom = "Armadyl";
                                    boolean leaveRoom = player.getPosition().getY() > 5295;
                                    int index = 0;
                                    Position movePos = new Position(2839, !leaveRoom ? 5296 : 5295, 2);
                                    if (id == 26425) {
                                        bossRoom = "Bandos";
                                        leaveRoom = player.getPosition().getX() > 2863;
                                        index = 1;
                                        movePos = new Position(!leaveRoom ? 2864 : 2863, 5354, 2);
                                    } else if (id == 26427) {
                                        bossRoom = "Saradomin";
                                        leaveRoom = player.getPosition().getX() < 2908;
                                        index = 2;
                                        movePos = new Position(leaveRoom ? 2908 : 2907, 5265, 0);
                                    } else if (id == 26428) {
                                        bossRoom = "Zamorak";
                                        leaveRoom = player.getPosition().getY() <= 5331;
                                        index = 3;
                                        movePos = new Position(2925, leaveRoom ? 5332 : 5331, 2);
                                    }
                                    int killcount = 10;
                                    switch (player.getDonatorRights()) {
                                        case PREMIUM:
                                            killcount = 8;
                                            break;
                                        case EXTREME:
                                            killcount = 5;
                                            break;
                                        case LEGENDARY:
                                            killcount = 0;
                                            break;
                                        case UBER:
                                            killcount = 0;
                                            break;
                                        case PLATINUM:
                                            killcount = 0;
                                            break;
                                    }
                                    switch (index) {
                                        case 0:
                                            if (BossPets.hasPet(player, BossPets.BossPet.PET_KREE_ARRA)) {
                                                killcount = 0;
                                            }
                                            break;
                                        case 1:
                                            if (BossPets.hasPet(player, BossPets.BossPet.PET_GENERAL_GRAARDOR)) {
                                                killcount = 0;
                                            }
                                            break;
                                        case 2:
                                            if (BossPets.hasPet(player, BossPets.BossPet.PET_ZILYANA)) {
                                                killcount = 0;
                                            }
                                            break;
                                        case 3:
                                            if (BossPets.hasPet(player, BossPets.BossPet.PET_KRIL_TSUTSAROTH)) {
                                                killcount = 0;
                                            }
                                            break;
                                    }
                                    if (!leaveRoom && (!player.getStaffRights().isManagement() && player.getMinigameAttributes()
                                            .getGodwarsDungeonAttributes().getKillcount()[index] < killcount)) {
                                        player.getPacketSender().sendMessage("You need " + Misc.anOrA(bossRoom) + " " + bossRoom
                                                + " killcount of at least " + killcount + " to enter this room.");
                                        return;
                                    }
                                    player.moveTo(movePos);
                                    player.getMinigameAttributes().getGodwarsDungeonAttributes()
                                            .setHasEnteredRoom(leaveRoom ? false : true);
                                    player.getMinigameAttributes().getGodwarsDungeonAttributes().getKillcount()[index] = 0;
                                    player.getPacketSender().sendString(16216 + index, "0");
                                    break;
                                case 26289:
                                case 26286:
                                case 26288:
                                case 26287:
                                    if (System.currentTimeMillis() - player.getMinigameAttributes()
                                            .getGodwarsDungeonAttributes().getAltarDelay() < 600000) {
                                        player.getPacketSender().sendMessage("");
                                        player.getPacketSender()
                                                .sendMessage("You can only pray at a God's altar once every 10 minutes.");
                                        player.getPacketSender().sendMessage("You must wait another "
                                                + (int) ((600 - (System.currentTimeMillis() - player.getMinigameAttributes()
                                                .getGodwarsDungeonAttributes().getAltarDelay()) * 0.001))
                                                + " seconds before being able to do this again.");
                                        return;
                                    }
                                    int itemCount = id == 26289 ? Equipment.getItemCount(player, "Bandos", false)
                                            : id == 26286 ? Equipment.getItemCount(player, "Zamorak", false)
                                            : id == 26288 ? Equipment.getItemCount(player, "Armadyl", false)
                                            : id == 26287 ? Equipment.getItemCount(player, "Saradomin", false)
                                            : 0;
                                    int toRestore = player.getSkillManager().getMaxLevel(Skill.PRAYER) + (itemCount * 10);
                                    if (player.getSkillManager().getCurrentLevel(Skill.PRAYER) >= toRestore) {
                                        player.getPacketSender()
                                                .sendMessage("You do not need to recharge your Prayer points at the moment.");
                                        return;
                                    }
                                    player.performAnimation(new Animation(645));
                                    player.getSkillManager().setCurrentLevel(Skill.PRAYER, toRestore);
                                    player.getMinigameAttributes().getGodwarsDungeonAttributes()
                                            .setAltarDelay(System.currentTimeMillis());
                                    break;
                                case 2873:
                                    player.performAnimation(new Animation(645));
                                    player.getPacketSender().sendMessage("You pray to Saradomin and recieve a holy cape...");
                                    player.getInventory().add(new Item(2412, 1));
                                    break;
                                case 2875:
                                    player.performAnimation(new Animation(645));
                                    player.getPacketSender().sendMessage("You pray to Guthix and recieve a holy cape...");
                                    player.getInventory().add(new Item(2413, 1));
                                    break;
                                case 2874:
                                    player.performAnimation(new Animation(645));
                                    player.getPacketSender().sendMessage("You pray to Zamorak and recieve a holy cape...");
                                    player.getInventory().add(new Item(2414, 1));
                                    break;
                                case 16044:
                                    if (player.getPosition().getY() < 3875) {
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                tick++;
                                                player.performAnimation(new Animation(804));
                                                if (tick == 4) {
                                                    stop();
                                                } else if (tick >= 6) {
                                                    stop();
                                                }
                                            }
    
                                            @Override
                                            public void stop() {
                                                setEventRunning(false);
                                                player.moveTo(new Position(player.getPosition().getX(),
                                                        player.getPosition().getY() + 2));
                                                player.getPacketSender().sendMessage("You teleport through the portal.");
                                                player.getPacketSender()
                                                        .sendMessage("You can only leave this zone by talking to Sir Tinley.");
                                            }
                                        });
                                    } else {
                                        player.getPacketSender()
                                                .sendMessage("You cannot leave through this portal, talk to Sir Tinley.");
                                    }
                                    break;
                                case 23093:
                                    if (player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 70) {
                                        player.getPacketSender().sendMessage(
                                                "You need an Agility level of at least 70 to go through this portal.");
                                        return;
                                    }
                                    if (!player.getClickDelay().elapsed(2000))
                                        return;
                                    int plrHeight = player.getPosition().getZ();
                                    if (plrHeight == 2)
                                        player.moveTo(new Position(2914, 5300, 1));
                                    else if (plrHeight == 1) {
                                        int x = gameObject.getPosition().getX();
                                        int y = gameObject.getPosition().getY();
                                        if (x == 2914 && y == 5300)
                                            player.moveTo(new Position(2912, 5299, 2));
                                        else if (x == 2920 && y == 5276)
                                            player.moveTo(new Position(2920, 5274, 0));
                                    } else if (plrHeight == 0)
                                        player.moveTo(new Position(2920, 5276, 1));
                                    player.getClickDelay().reset();
                                    break;
                                case 26439:
                                    if (player.getSkillManager().getMaxLevel(Skill.CONSTITUTION) <= 700) {
                                        player.getPacketSender()
                                                .sendMessage("You need a Constitution level of at least 70 to swim across.");
                                        return;
                                    }
                                    if (!player.getClickDelay().elapsed(1000))
                                        return;
                                    if (player.isCrossingObstacle())
                                        return;
                                    final String startMessage = "You jump into the icy cold water..";
                                    final String endMessage = "You climb out of the water safely.";
                                    final int jumpGFX = 68;
                                    final int jumpAnimation = 772;
                                    player.setSkillAnimation(773);
                                    player.setCrossingObstacle(true);
                                    player.getUpdateFlag().flag(Flag.APPEARANCE);
                                    player.performAnimation(new Animation(3067));
                                    final boolean goBack2 = player.getPosition().getY() >= 5344;
                                    player.getPacketSender().sendMessage(startMessage);
                                    player.moveTo(new Position(2885, !goBack2 ? 5335 : 5342, 2));
                                    player.setDirection(goBack2 ? Direction.SOUTH : Direction.NORTH);
                                    player.performGraphic(new Graphic(jumpGFX));
                                    player.performAnimation(new Animation(jumpAnimation));
                                    TaskManager.submit(new Task(1, player, false) {
                                        int ticks = 0;
    
                                        @Override
                                        public void execute() {
                                            ticks++;
                                            player.getWalkingQueue().walkStep(0, goBack2 ? -1 : 1);
                                            if (ticks >= 10)
                                                stop();
                                        }
    
                                        @Override
                                        public void stop() {
                                            player.setSkillAnimation(-1);
                                            player.setCrossingObstacle(false);
                                            player.getUpdateFlag().flag(Flag.APPEARANCE);
                                            player.getPacketSender().sendMessage(endMessage);
                                            player.moveTo(
                                                    new Position(2885, player.getPosition().getY() < 5340 ? 5333 : 5345, 2));
                                            setEventRunning(false);
                                        }
                                    });
                                    player.getClickDelay().reset((System.currentTimeMillis() + 9000));
                                    break;
                                case 26384:
                                    if (player.isCrossingObstacle())
                                        return;
                                    if (!player.getInventory().contains(2347)) {
                                        player.getPacketSender()
                                                .sendMessage("You need to have a hammer to bang on the door with.");
                                        return;
                                    }
                                    player.setCrossingObstacle(true);
                                    final boolean goBack = player.getPosition().getX() <= 2850;
                                    player.performAnimation(new Animation(377));
                                    TaskManager.submit(new Task(2, player, false) {
                                        @Override
                                        public void execute() {
                                            player.moveTo(new Position(goBack ? 2851 : 2850, 5333, 2));
                                            player.setCrossingObstacle(false);
                                            stop();
                                        }
                                    });
                                    break;
                                case 26303:
                                    if (!player.getClickDelay().elapsed(1200))
                                        return;
                                    if (player.getSkillManager().getCurrentLevel(Skill.RANGED) < 70)
                                        player.getPacketSender()
                                                .sendMessage("You need a Ranged level of at least 70 to swing across here.");
                                    else if (!player.getInventory().contains(9419)) {
                                        player.getPacketSender()
                                                .sendMessage("You need a Mithril grapple to swing across here.");
                                        return;
                                    } else {
                                        player.performAnimation(new Animation(789));
                                        TaskManager.submit(new Task(2, player, false) {
                                            @Override
                                            public void execute() {
                                                player.getPacketSender().sendMessage(
                                                        "You throw your Mithril grapple over the pillar and move across.");
                                                player.moveTo(new Position(2871,
                                                        player.getPosition().getY() <= 5270 ? 5279 : 5269, 2));
                                                stop();
                                            }
                                        });
                                        player.getClickDelay().reset();
                                    }
                                    break;
                                case 4493:
                                    if (player.getPosition().getX() >= 3432) {
                                        player.moveTo(new Position(3433, 3538, 1));
                                    }
                                    break;
                                case 4494:
                                    player.moveTo(new Position(3438, 3538, 0));
                                    break;
                                case 4495:
                                    player.moveTo(new Position(3417, 3541, 2));
                                    break;
                                case 4496:
                                    player.moveTo(new Position(3412, 3541, 1));
                                    break;
                                case 25339:
                                case 25340:
                                    player.moveTo(new Position(1778, 5346, player.getPosition().getZ() == 0 ? 1 : 0));
                                    break;
                                case 10229:
                                case 10230:
                                    boolean up = id == 10229;
                                    player.performAnimation(new Animation(up ? 828 : 827));
                                    player.getPacketSender().sendMessage("You climb " + (up ? "up" : "down") + " the ladder..");
                                    TaskManager.submit(new Task(1, player, false) {
                                        @Override
                                        protected void execute() {
                                            player.moveTo(up ? new Position(1912, 4367) : new Position(2900, 4449));
                                            stop();
                                        }
                                    });
                                    break;
                                case 1568:
                                    player.moveTo(new Position(3097, 9868));
                                    break;
                                case 5103: // Brimhaven vines
                                case 5104:
                                case 5105:
                                case 5106:
                                case 5107:
                                    if (!player.getClickDelay().elapsed(4000))
                                        return;
                                    if (player.getSkillManager().getCurrentLevel(Skill.WOODCUTTING) < 30) {
                                        player.getPacketSender()
                                                .sendMessage("You need a Woodcutting level of at least 30 to do this.");
                                        return;
                                    }
                                    if (WoodcuttingData.getHatchet(player) < 0) {
                                        player.getPacketSender().sendMessage(
                                                "You do not have a hatchet which you have the required Woodcutting level to use.");
                                        return;
                                    }
                                    final Hatchet axe = Hatchet.forId(WoodcuttingData.getHatchet(player));
                                    player.performAnimation(new Animation(axe.getAnim()));
                                    gameObject.setRotation(-1);
                                    TaskManager.submit(new Task(3 + Misc.getRandom(4), player, false) {
                                        @Override
                                        protected void execute() {
                                            if (player.moving) {
                                                stop();
                                                return;
                                            }
                                            int x = 0;
                                            int y = 0;
                                            if (player.getPosition().getX() == 2689 && player.getPosition().getY() == 9564) {
                                                x = 2;
                                                y = 0;
                                            } else if (player.getPosition().getX() == 2691
                                                    && player.getPosition().getY() == 9564) {
                                                x = -2;
                                                y = 0;
                                            } else if (player.getPosition().getX() == 2683
                                                    && player.getPosition().getY() == 9568) {
                                                x = 0;
                                                y = 2;
                                            } else if (player.getPosition().getX() == 2683
                                                    && player.getPosition().getY() == 9570) {
                                                x = 0;
                                                y = -2;
                                            } else if (player.getPosition().getX() == 2674
                                                    && player.getPosition().getY() == 9479) {
                                                x = 2;
                                                y = 0;
                                            } else if (player.getPosition().getX() == 2676
                                                    && player.getPosition().getY() == 9479) {
                                                x = -2;
                                                y = 0;
                                            } else if (player.getPosition().getX() == 2693
                                                    && player.getPosition().getY() == 9482) {
                                                x = 2;
                                                y = 0;
                                            } else if (player.getPosition().getX() == 2672
                                                    && player.getPosition().getY() == 9499) {
                                                x = 2;
                                                y = 0;
                                            } else if (player.getPosition().getX() == 2674
                                                    && player.getPosition().getY() == 9499) {
                                                x = -2;
                                                y = 0;
                                            }
                                            CustomObjects.objectRespawnTask(player,
                                                    new GameObject(-1, gameObject.getPosition().copy()), gameObject, 10);
                                            player.getPacketSender().sendMessage("You chop down the vines..");
                                            player.getSkillManager().addSkillExperience(Skill.WOODCUTTING, 45);
                                            player.performAnimation(new Animation(65535));
                                            player.getWalkingQueue().walkStep(x, y);
                                            stop();
                                        }
                                    });
                                    player.getClickDelay().reset();
                                    break;
    
                                case 29942:
                                    if (player.getSkillManager().getCurrentLevel(Skill.SUMMONING) == player.getSkillManager()
                                            .getMaxLevel(Skill.SUMMONING)) {
                                        player.getPacketSender()
                                                .sendMessage("You do not need to recharge your Summoning points right now.");
                                        return;
                                    }
                                    player.performGraphic(new Graphic(1517));
                                    player.getSkillManager().setCurrentLevel(Skill.SUMMONING,
                                            player.getSkillManager().getMaxLevel(Skill.SUMMONING), true);
                                    player.getPacketSender().sendString(18045,
                                            " " + player.getSkillManager().getCurrentLevel(Skill.SUMMONING) + "/"
                                                    + player.getSkillManager().getMaxLevel(Skill.SUMMONING));
                                    player.getPacketSender().sendMessage("You recharge your Summoning points.");
                                    break;
                                case 57225:
                                    if (!player.getMinigameAttributes().getGodwarsDungeonAttributes().hasEnteredRoom()) {
                                        player.moveTo(new Position(2911, 5204));
                                        player.getMinigameAttributes().getGodwarsDungeonAttributes().setHasEnteredRoom(true);
                                    } else {
                                        player.moveTo(new Position(2906, 5204));
                                        player.getMinigameAttributes().getGodwarsDungeonAttributes().setHasEnteredRoom(false);
                                    }
                                    break;
                                case 9294:
                                    if (player.getSkillManager().getCurrentLevel(Skill.AGILITY) < 80) {
                                        player.getPacketSender()
                                                .sendMessage("You need an Agility level of at least 80 to use this shortcut.");
                                        return;
                                    }
                                    player.performAnimation(new Animation(769));
                                    TaskManager.submit(new Task(1, player, false) {
                                        @Override
                                        protected void execute() {
                                            player.moveTo(
                                                    new Position(player.getPosition().getX() >= 2880 ? 2878 : 2880, 9813));
                                            stop();
                                        }
                                    });
                                    break;
                                case 9293:
                                    boolean back = player.getPosition().getX() > 2888;
                                    player.moveTo(back ? new Position(2886, 9799) : new Position(2891, 9799));
                                    break;
                                case 2320:
                                    back = player.getPosition().getY() == 9969 || player.getPosition().getY() == 9970;
                                    player.moveTo(back ? new Position(3120, 9963) : new Position(3120, 9969));
                                    break;
                                case 1755:
                                    player.performAnimation(new Animation(828));
                                    player.getPacketSender().sendMessage("You climb the stairs..");
                                    TaskManager.submit(new Task(1, player, false) {
                                        @Override
                                        protected void execute() {
                                            if (gameObject.getPosition().getX() == 2547
                                                    && gameObject.getPosition().getY() == 9951) {
                                                player.moveTo(new Position(2548, 3551));
                                            } else if (gameObject.getPosition().getX() == 3005
                                                    && gameObject.getPosition().getY() == 10363) {
                                                player.moveTo(new Position(3005, 3962));
                                            } else if (gameObject.getPosition().getX() == 3084
                                                    && gameObject.getPosition().getY() == 9672) {
                                                player.moveTo(new Position(3117, 3244));
                                            } else if (gameObject.getPosition().getX() == 3097
                                                    && gameObject.getPosition().getY() == 9867) {
                                                player.moveTo(new Position(3096, 3468));
                                            }
                                            stop();
                                        }
                                    });
                                    break;
                                case 1738:
                                    player.performAnimation(new Animation(828));
                                    player.getPacketSender().sendMessage("You climb the stairs..");
                                    TaskManager.submit(new Task(1, player, false) {
                                        @Override
                                        protected void execute() {
                                            if (player.getPosition().getX() > 3204 || player.getLocation() == Location.LUMBRIDGE) {
                                                if (player.getPosition().getX() < 3207)
                                                    player.moveTo(new Position(player.getPosition().getX(),
                                                            player.getPosition().getY(), 1));
                                            } else if (player.getLocation() != Location.WARRIORS_GUILD
                                                    && player.getPosition().getZ() == 0) {
                                                player.moveTo(new Position(2729, 3462, 1));
                                            } else {
                                                player.moveTo(new Position(2840, 3539, 2));
                                            }
                                            stop();
                                        }
                                    });
                                    break;
                                case 5110:
                                    player.moveTo(new Position(2647, 9557));
                                    player.getPacketSender().sendMessage("You pass the stones..");
                                    break;
                                case 5111:
                                    player.moveTo(new Position(2649, 9562));
                                    player.getPacketSender().sendMessage("You pass the stones..");
                                    break;
                                case 6434:
                                    player.performAnimation(new Animation(827));
                                    player.getPacketSender().sendMessage("You enter the trapdoor..");
                                    TaskManager.submit(new Task(1, player, false) {
                                        @Override
                                        protected void execute() {
                                            player.moveTo(new Position(3085, 9672));
                                            stop();
                                        }
                                    });
                                    break;
                                case 19187:
                                case 19175:
                                    Hunter.dismantle(player, gameObject);
                                    break;
                                case 25029:
                                    PuroPuro.goThroughWheat(player, gameObject);
                                    break;
                                case 47976:
                                    Nomad.endFight(player, false);
                                    break;
                                case 2182:
                                    if (!player.getMinigameAttributes().getRecipeForDisasterAttributes().hasFinishedPart(0)) {
                                        player.getPacketSender()
                                                .sendMessage("You have no business with this chest. Talk to the Gypsy first!");
                                        return;
                                    }
                                    RecipeForDisaster.openRFDShop(player);
                                    break;
                                case 12356:
                                    if (!player.getMinigameAttributes().getRecipeForDisasterAttributes().hasFinishedPart(0)) {
                                        player.getPacketSender()
                                                .sendMessage("You have no business with this portal. Talk to the Gypsy first!");
                                        return;
                                    }
                                    if (player.getPosition().getZ() > 0) {
                                        RecipeForDisaster.leave(player);
                                    } else {
                                        player.getMinigameAttributes().getRecipeForDisasterAttributes().setPartFinished(1,
                                                true);
                                        RecipeForDisaster.enter(player);
                                    }
                                    break;
                                case 9369:
                                    if (player.getPosition().getY() > 5175) {
                                        FightPit.addPlayer(player);
                                    } else {
                                        FightPit.removePlayer(player, "leave room");
                                    }
                                    break;
                                case 9368:
                                    if (player.getPosition().getY() < 5169) {
                                        FightPit.removePlayer(player, "leave game");
                                    }
                                    break;
                                case 9357:
                                    FightCave.leaveCave(player, false);
                                    break;
                                case 9356:
                                    FightCave.enterCave(player);
                                    break;
                                case 6704:
                                    player.moveTo(new Position(3577, 3282, 0));
                                    break;
                                case 5013:
                                    player.moveTo(new Position(2838, 10124, 0));
                                    break;
                                case 5998:
                                    player.moveTo(new Position(2799, 10134, 0));
                                    break;
                                case 6706:
                                    player.moveTo(new Position(3554, 3283, 0));
                                    break;
                                case 6705:
                                    player.moveTo(new Position(3566, 3275, 0));
                                    break;
                                case 6702:
                                    player.moveTo(new Position(3564, 3289, 0));
                                    break;
                                case 6703:
                                    player.moveTo(new Position(3574, 3298, 0));
                                    break;
                                case 6707:
                                    player.moveTo(new Position(3556, 3298, 0));
                                    break;
                                case 3203:
                                    if (player.getLocation() == Location.DUEL_ARENA && player.getDueling().duelingStatus == 5) {
                                        if (player.getDueling().timer >= 0) {
                                            player.getPacketSender()
                                                    .sendMessage("You cannot forfeit before the duel has started.");
                                            return;
                                        }
                                        if (Dueling.checkRule(player, DuelRule.NO_FORFEIT)) {
                                            player.getPacketSender().sendMessage("Forfeiting has been disabled in this duel.");
                                            return;
                                        }
                                        player.getCombatBuilder().reset(true);
                                        if (player.getDueling().duelingWith > -1) {
                                            Player duelEnemy = World.getPlayers().get(player.getDueling().duelingWith);
                                            if (duelEnemy == null)
                                                return;
                                            duelEnemy.getCombatBuilder().reset(true);
                                            duelEnemy.getWalkingQueue().clear();
                                            duelEnemy.getDueling().duelVictory();
                                        }
                                        player.moveTo(new Position(3368 + Misc.getRandom(5), 3267 + Misc.getRandom(3), 0));
                                        player.getDueling().reset();
                                        player.getCombatBuilder().reset(true);
                                        player.restart();
                                    }
                                    break;
                                case 14315:
                                    PestControl.boardBoat(player);
                                    break;
                                case 14314:
                                    if (player.getLocation() == Location.PEST_CONTROL_BOAT) {
                                        player.getLocation().leave(player);
                                    }
                                    break;
                                case 1739:
                                    player.getDialog().sendDialog(new LumbyStairs(player));
                                    break;
                                case 1740:
                                    player.moveTo(new Position(player.getPosition().getX(),
                                            player.getPosition().getY(), player.getPosition().getZ() - 1));
                                    break;
                                case 15638:
                                    player.moveTo(new Position(2840, 3539, 0));
                                    break;
                                case 15644:
                                case 15641:
                                    switch (player.getPosition().getZ()) {
                                        case 0:
                                            player.moveTo(new Position(2855, player.getPosition().getY() >= 3546 ? 3545 : 3546));
                                            break;
                                        case 2:
                                            if (player.getPosition().getX() == 2846) {
                                                int requiredAmount = 50;
                                                if(player.getDonatorRights() != DonatorRights.PLAYER) {
                                                    requiredAmount = 25;
                                                }
                                                if (player.getInventory().getAmount(8851) < requiredAmount) {
                                                    player.getPacketSender()
                                                            .sendMessage("You need at least "+requiredAmount+" tokens to enter this area.");
                                                    return;
                                                }
                                                player.moveTo(new Position(2847, player.getPosition().getY(), 2));
                                                WarriorsGuild.handleTokenRemoval(player);
                                            } else if (player.getPosition().getX() == 2847) {
                                                WarriorsGuild.resetCyclopsCombat(player);
                                                player.moveTo(new Position(2846, player.getPosition().getY(), 2));
                                                player.getMinigameAttributes().getWarriorsGuildAttributes()
                                                        .setEnteredTokenRoom(false);
                                            }
                                            break;
                                    }
                                    break;
                                case 15653:
                                    if (player.getSkillManager().getCurrentLevel(Skill.ATTACK) + player.getSkillManager().getCurrentLevel(Skill.STRENGTH) < 130) {
                                        player.getPacketSender().sendMessage("A true warrior requires a total of 130 Strength and Attack.");
                                        return;
                                    }
                                    if (player.getPosition().getX() == 2877) {
                                        player.moveTo(new Position(2876, 3546, 0));
                                    } else {
                                        player.moveTo(new Position(2877, 3546, 0));
                                    }
                                    break;
                                case 28714:
                                    player.performAnimation(new Animation(828));
                                    player.delayedMoveTo(new Position(2806, 2785), 2);
                                    break;
                                case 1756:
                                    player.performAnimation(new Animation(827));
                                    if(gameObject.getPosition().equals(3097, 3468)) {
                                        player.delayedMoveTo(new Position(3096, 9867), 2);
                                    } else {
                                        player.delayedMoveTo(new Position(2209, 5348), 2);
                                    }
                                    player.performAnimation(new Animation(827));
                                    break;
                                case 2268:
                                    player.performAnimation(new Animation(828));
                                    player.delayedMoveTo(new Position(3229, 3610), 2);
                                    break;
    
                                case 19191:
                                case 19189:
                                case 19180:
                                case 19184:
                                case 19182:
                                case 19178:
                                case 19186:
                                    Hunter.lootTrap(player, gameObject);
                                    break;
                                case 28716:
                                    if (!player.busy()) {
                                        player.getSkillManager().updateSkill(Skill.SUMMONING);
                                        player.getPacketSender().sendInterface(63471);
                                    } else
                                        player.getPacketSender()
                                                .sendMessage("Please finish what you're doing before opening this.");
                                    break;
                                case 6:
                                    DwarfCannon cannon = player.getCannon();
                                    if (cannon == null || cannon.getOwnerIndex() != player.getIndex()) {
                                        player.getPacketSender().sendMessage("This is not your cannon!");
                                    } else {
                                        DwarfMultiCannon.startFiringCannon(player, cannon);
                                    }
                                    break;
                                case 2:
                                    if(gameObject.getPosition().equals(2792, 2771)) {
                                        player.moveTo(new Position(2384, 4706));
                                    } else if(gameObject.getPosition().equals(2383, 4704)) {
                                        player.moveTo(new Position(2794, 2773));
                                    } else if(gameObject.getPosition().equals(2509, 3874)) {
                                        player.moveTo(new Position(2336, 9794));
                                    }
                                    player.getPacketSender().sendMessage("You walk through the entrance..");
                                    break;
                                case 3223:
                                    if(gameObject.getPosition().equals(2336, 9793)) {
                                        player.moveTo(new Position(2510, 3873));
                                    }
                                    player.getPacketSender().sendMessage("You walk through the entrance..");
                                    break;
                                case 2026:
                                case 2028:
                                case 2029:
                                case 2030:
                                case 2031:
                                    player.setEntityInteraction(gameObject);
                                    Fishing.setupFishing(player, Fishing.forSpot(gameObject.getId(), false));
                                    return;
                                case 12692:
                                case 2783:
                                case 4306:
                                    player.setInteractingObject(gameObject);
                                    EquipmentMaking.handleAnvil(player);
                                    break;
                                case 41687:
                                case 2732:
                                case 4767:
                                    EnterAmountOfLogsToAdd.openInterface(player);
                                    break;
                                case 409:
                                case 27661:
                                case 2640:
                                case 36972:
                                    player.performAnimation(new Animation(645));
                                    if (player.getSkillManager().getCurrentLevel(Skill.PRAYER) < player.getSkillManager()
                                            .getMaxLevel(Skill.PRAYER)) {
                                        player.getSkillManager().setCurrentLevel(Skill.PRAYER,
                                                player.getSkillManager().getMaxLevel(Skill.PRAYER), true);
                                        player.getPacketSender().sendMessage("You recharge your Prayer points.");
                                    }
                                    break;
                                case 8749:
                                    boolean restore = player.getSpecialPercentage() < 100;
                                    if (restore) {
                                        player.setSpecialPercentage(100);
                                        CombatSpecial.updateBar(player);
                                        player.getPacketSender().sendMessage("Your special attack energy has been restored.");
                                    }
                                    for (Skill skill : Skill.values()) {
                                        int increase = skill != Skill.PRAYER && skill != Skill.CONSTITUTION
                                                && skill != Skill.SUMMONING ? 19 : 0;
                                        if (player.getSkillManager().getCurrentLevel(
                                                skill) < (player.getSkillManager().getMaxLevel(skill) + increase))
                                            player.getSkillManager().setCurrentLevel(skill,
                                                    (player.getSkillManager().getMaxLevel(skill) + increase));
                                    }
                                    player.performGraphic(new Graphic(1302));
                                    player.getPacketSender().sendMessage("Your stats have received a major buff.");
                                    break;
                                case 4859:
                                    player.performAnimation(new Animation(645));
                                    if (player.getSkillManager().getCurrentLevel(Skill.PRAYER) < player.getSkillManager()
                                            .getMaxLevel(Skill.PRAYER)) {
                                        player.getSkillManager().setCurrentLevel(Skill.PRAYER,
                                                player.getSkillManager().getMaxLevel(Skill.PRAYER), true);
                                        player.getPacketSender().sendMessage("You recharge your Prayer points.");
                                    }
                                    break;
                                case 411:
                                    if (player.getSkillManager().getMaxLevel(Skill.DEFENCE) < 30) {
                                        player.getPacketSender()
                                                .sendMessage("You need a Defence level of at least 30 to use this altar.");
                                        return;
                                    }
                                    player.performAnimation(new Animation(645));
                                    if (player.getPrayerbook() == Prayerbook.NORMAL) {
                                        player.getPacketSender()
                                                .sendMessage("You sense a surge of power flow through your body!");
                                        player.setPrayerbook(Prayerbook.CURSES);
                                        Achievements.finishAchievement(player, Achievements.AchievementData.SWITCH_PRAYBOOK);
                                    } else {
                                        player.getPacketSender()
                                                .sendMessage("You sense a surge of purity flow through your body!");
                                        player.setPrayerbook(Prayerbook.NORMAL);
                                        Achievements.finishAchievement(player, Achievements.AchievementData.SWITCH_PRAYBOOK);
                                    }
                                    player.getPacketSender().sendTabInterface(GameSettings.PRAYER_TAB,
                                            player.getPrayerbook().getInterfaceId());
                                    PrayerHandler.deactivateAll(player);
                                    CurseHandler.deactivateAll(player);
                                    break;
                                case 2515:
                                    if (player.getLocation() == Location.ROCK_CRABS) {
                                        player.performAnimation(new Animation(828));
                                        player.getPacketSender().sendString(1, "ZULRAHFADE");
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                if (tick == 2) {
                                                    player.moveTo(new Position(2690, 3706, 0));
                                                }
                                                if (tick == 5) {
                                                    player.moveTo(new Position(2691, 3771, 0));
                                                }
                                                if (tick == 8) {
                                                    stop();
                                                }
                                                tick++;
                                            }
    
                                            @Override
                                            public void stop() {
                                                player.moveTo(new Position(3102, 2959, 0));
                                            }
                                        });
                                    } else {
                                        player.performAnimation(new Animation(828));
                                        player.getPacketSender().sendString(1, "ZULRAHFADE");
                                        TaskManager.submit(new Task(1, player, true) {
                                            int tick = 1;
    
                                            @Override
                                            public void execute() {
                                                if (tick == 2) {
                                                    player.moveTo(new Position(3102, 2956, 0));
                                                }
                                                if (tick == 5) {
                                                    player.moveTo(new Position(2691, 3771, 0));
                                                }
                                                if (tick == 8) {
                                                    stop();
                                                }
                                                tick++;
                                            }
    
                                            @Override
                                            public void stop() {
                                                player.moveTo(new Position(2688, 3706, 0));
                                            }
                                        });
                                    }
                                    break;
                                case 6552:
                                    player.performAnimation(new Animation(645));
                                    player.setSpellbook(player.getSpellbook() == MagicSpellbook.ANCIENT ? MagicSpellbook.NORMAL
                                            : MagicSpellbook.ANCIENT);
                                    player.getPacketSender()
                                            .sendTabInterface(GameSettings.MAGIC_TAB, player.getSpellbook().getInterfaceId())
                                            .sendMessage("You feel a sense of energy as your spellbook changes.");
                                    Autocasting.resetAutocast(player, true);
                                    Achievements.finishAchievement(player, Achievements.AchievementData.SWITCH_SPELLBOOK);
                                    break;
                                case 410:
                                    if (player.getSkillManager().getMaxLevel(Skill.DEFENCE) < 40) {
                                        player.getPacketSender()
                                                .sendMessage("You need a Defence level of at least 40 to use this altar.");
                                        return;
                                    }
                                    player.performAnimation(new Animation(645));
                                    player.setSpellbook(player.getSpellbook() == MagicSpellbook.LUNAR ? MagicSpellbook.NORMAL
                                            : MagicSpellbook.LUNAR);
                                    player.getPacketSender()
                                            .sendTabInterface(GameSettings.MAGIC_TAB, player.getSpellbook().getInterfaceId())
                                            .sendMessage("Your magic spellbook is changed..");
                                    ;
                                    Autocasting.resetAutocast(player, true);
                                    Achievements.finishAchievement(player, Achievements.AchievementData.SWITCH_SPELLBOOK);
                                    break;
                                case 2878:
                                    player.moveTo(new Position(2509, 4689));
                                    break;
                                case 2879:
                                    player.moveTo(new Position(2542, 4718));
                                    break;
                                case 172:
                                    CrystalChest.handleChest(player, gameObject);
                                    break;
                                case 2403:
                                    WarChest.handleChest(player, gameObject);
                                    break;
                                case 10621:
                                case 18804:
                                case 24204:
                                case 29577:
                                    TreasureChest.handleChest(player, gameObject);
                                    break;
                                case 6910:
                                case 4483:
                                case 3193:
                                case 2213:
                                case 11758:
                                case 6084:
                                case 10517:
                                case 14367:
                                case 42192:
                                case 26972:
                                case 11402:
                                case 26969:
                                case 75:
                                case 2497:
                                case 16700:
                                case 21301:
                                case 36786:
                                case 2995:
                                case 45079:
                                case 27663:
                                    player.getBank(player.getCurrentBankTab()).open();
                                    break;
                                case 45091:
                                    if(player.getInventory().getAmount(444) + player.getInventory().getAmount(445) == 0 && player.getInventory().getAmount(453) + player.getInventory().getAmount(454) == 0) {
                                        player.getPacketSender().sendMessage("<col=ff0000>Small sacks needs gold or coal ore in order to turn them into minerals.");
                                        return;
                                    }
                                    player.getDialog().sendDialog(new SmallSacks(player));
                                    break;
                                case 21304:
                                    player.getDialog().sendDialog(new Spin(player));
                                    break;
                                case 21514: //ladder up at neiznot
                                    player.performAnimation(new Animation(828));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 4) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            if (player.getPosition().getY() < 3805) {
                                                player.moveTo(new Position(2329, 3802, 1));
                                            } else {
                                                player.getPacketSender().sendMessage("You cannot climb this ladder.");
                                            }
                                        }
                                    });
                                    break;
                                case 21515:// ladder down neitznot
                                    player.performAnimation(new Animation(827));
                                    TaskManager.submit(new Task(1, player, true) {
                                        int tick = 1;
    
                                        @Override
                                        public void execute() {
                                            tick++;
                                            if (tick == 4) {
                                                stop();
                                            }
                                        }
    
                                        @Override
                                        public void stop() {
                                            setEventRunning(false);
                                            player.moveTo(new Position(player.getPosition().getX() + 1, player.getPosition().getY(), 0));
                                        }
                                    });
                                    break;
                            }
                        }
                    }));
        }
    
        private static void secondClick(final Player player, Packet packet) {
            final int id = packet.readLEShortA();
            final int y = packet.readLEShort();
            final int x = packet.readUnsignedShortA();
            final Position position = new Position(x, y, player.getPosition().getZ());
            final GameObject gameObject = new GameObject(id, position);
            if (id > 0 && id != 6 && id != 2213 && !World.objectExists(gameObject) && id != 4706) {
                player.getPacketSender().sendMessage("An error occured. Error code: " + id)
                        .sendMessage("Please report the error to a staff member.");
                return;
            }
            if (player.getStaffRights().isDeveloper(player))
                player.getPacketSender()
                        .sendConsoleMessage("Second click object id; [id, position] : [" + id + ", " + position.toString() + "]");
            if(gameObject.getId() != 4767) {
                player.setPositionToFace(gameObject.getPosition());
            }
            int distanceX = (player.getPosition().getX() - position.getX());
            int distanceY = (player.getPosition().getY() - position.getY());
            if (distanceX < 0)
                distanceX = -(distanceX);
            if (distanceY < 0)
                distanceY = -(distanceY);
            int size = distanceX > distanceY ? distanceX : distanceY;
            gameObject.setSize(size);
            if (GameSettings.DEBUG_MODE) {
                // PlayerLogs.log(player, "" + player.getUsername()
                // + " in ObjectActionPacketListener: " + gameObject.getId() + " -
                // SECOND_CLICK");
            }
            if (!player.getDragonSpear().elapsed(3000)) {
                player.getPacketSender().sendMessage("You are stunned!");
                return;
            }
            player.setInteractingObject(gameObject)
                    .setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                        @Override
                        public void execute() {
                            int ran = 0;
                            if (MiningData.forRock(gameObject.getId()) != null) {
                                Prospecting.prospectOre(player, id);
                                return;
                            }
                            if (player.getThieving().stealFromStall(ThievingStall.forId(id)))
                                return;
                            if (Farming.isGameObject(player, gameObject, 2))
                                return;
                            if (Agility.handleObject(player, gameObject)) {
                                return;
                            }
                            switch (gameObject.getId()) {
                                case 38660:
                                case 38661:
                                case 38662:
                                case 38663:
                                case 38664:
                                case 38665:
                                case 38666:
                                case 38667:
                                case 38668:
                                    ShootingStar.getInstance().hasMenuAction(player, 2);
                                    break;
    
                                case 17010:
                                    if (player.getSkillManager().getMaxLevel(Skill.DEFENCE) < 40) {
                                        player.getPacketSender().sendMessage("You need a Defence level of at least 40 to use this altar.");
                                        return;
                                    }
                                    player.performAnimation(new Animation(645));
                                    player.setSpellbook(player.getSpellbook() == MagicSpellbook.LUNAR ? MagicSpellbook.NORMAL
                                            : MagicSpellbook.LUNAR);
                                    player.getPacketSender()
                                            .sendTabInterface(GameSettings.MAGIC_TAB, player.getSpellbook().getInterfaceId())
                                            .sendMessage("Your magic spellbook is changed..");
                                    Autocasting.resetAutocast(player, true);
                                    Achievements.finishAchievement(player, Achievements.AchievementData.SWITCH_SPELLBOOK);
                                    break;
                                case 2274:
                                    player.setRevsWarning(true);
                                    player.getPacketSender().sendMessage("You have re-enabled the revs warning toggle.");
                                    break;
                                case 6910:
                                case 4483:
                                case 3193:
                                case 2213:
                                case 6084:
                                case 10517:
                                case 11758:
                                case 14367:
                                case 42192:
                                case 26972:
                                case 11402:
                                case 26969:
                                case 75:
                                case 36786:
                                case 27663:
                                    player.getBank(player.getCurrentBankTab()).open();
                                    break;
                                case 884:
                                    player.setNpcClickId(945);
                                    player.getDialog().sendDialog(new DonateToWellDial(player));
                                    break;
                                case 28716:
                                    if (player.getSkillManager().getCurrentLevel(Skill.SUMMONING) == player.getSkillManager()
                                            .getMaxLevel(Skill.SUMMONING)) {
                                        player.getPacketSender()
                                                .sendMessage("You do not need to recharge your Summoning points right now.");
                                        return;
                                    }
                                    player.performGraphic(new Graphic(1517));
                                    player.getSkillManager().setCurrentLevel(Skill.SUMMONING,
                                            player.getSkillManager().getMaxLevel(Skill.SUMMONING), true);
                                    player.getPacketSender().sendString(18045,
                                            " " + player.getSkillManager().getCurrentLevel(Skill.SUMMONING) + "/"
                                                    + player.getSkillManager().getMaxLevel(Skill.SUMMONING));
                                    player.getPacketSender().sendMessage("You recharge your Summoning points.");
                                    break;
                                case 2646:
                                case 312:
                                    if (!player.getClickDelay().elapsed(1200))
                                        return;
                                    if (player.getInventory().isFull()) {
                                        player.getPacketSender().sendMessage("You don't have enough free inventory space.");
                                        return;
                                    }
                                    String type = gameObject.getId() == 312 ? "Potato" : "Flax";
                                    player.performAnimation(new Animation(827));
                                    player.getInventory().add(gameObject.getId() == 312 ? 1942 : 1779, 1);
                                    player.getPacketSender().sendMessage("You pick some " + type + "..");
                                    gameObject.setPickAmount(gameObject.getPickAmount() + 1);
                                    if (Misc.getRandom(3) == 1 && gameObject.getPickAmount() >= 1
                                            || gameObject.getPickAmount() >= 6) {
                                        player.getPacketSender().sendClientRightClickRemoval();
                                        gameObject.setPickAmount(0);
                                        CustomObjects.globalObjectRespawnTask(new GameObject(-1, gameObject.getPosition()),
                                                gameObject, 10);
                                    }
                                    player.getClickDelay().reset();
                                    break;
                                case 2644:
                                    player.getDialog().sendDialog(new Spin(player));
                                    break;
                                case 6:
                                    DwarfCannon cannon = player.getCannon();
                                    if (cannon == null || cannon.getOwnerIndex() != player.getIndex()) {
                                        player.getPacketSender().sendMessage("This is not your cannon!");
                                    } else {
                                        DwarfMultiCannon.pickupCannon(player, cannon, false);
                                    }
                                    break;
                                case 6189:
                                case 26814:
                                case 11666:
                                case 26300:
                                case 21303:
                                    Smelting.openInterface(player);
                                    break;
                                case 2152:
                                    player.performAnimation(new Animation(8502));
                                    player.performGraphic(new Graphic(1308));
                                    player.getSkillManager().setCurrentLevel(Skill.SUMMONING,
                                            player.getSkillManager().getMaxLevel(Skill.SUMMONING));
                                    player.getPacketSender().sendMessage("You renew your Summoning points.");
                                    break;
                            }
                        }
                    }));
        }
    
        private static void thirdClick(Player player, Packet packet) {
            final int id = packet.readUnsignedShortA();
            final int y = packet.readUnsignedShortA();
            final int x = packet.readShort();
            final Position position = new Position(x, y, player.getPosition().getZ());
            final GameObject gameObject = new GameObject(id, position);
            if (id > 0 && id != 6 && !World.objectExists(gameObject)) {
                // player.getPacketSender().sendMessage("An error occured.
                // Errorcode: "+id).sendMessage("Please report the error to a
                // staffmember.");
                return;
            }
            if(gameObject.getId() != 4767) {
                player.setPositionToFace(gameObject.getPosition());
            }
            int distanceX = (player.getPosition().getX() - position.getX());
            int distanceY = (player.getPosition().getY() - position.getY());
            if (distanceX < 0)
                distanceX = -(distanceX);
            if (distanceY < 0)
                distanceY = -(distanceY);
            int size = distanceX > distanceY ? distanceX : distanceY;
            gameObject.setSize(size);
            player.setInteractingObject(gameObject);
            if (player.getStaffRights().isDeveloper(player))
                player.getPacketSender()
                        .sendMessage("Third click object id; [id, position] : [" + id + ", " + position.toString() + "]");
            player.setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                @Override
                public void execute() {
                    if (Farming.isGameObject(player, gameObject, 3))
                        return;
                    switch (id) {
                    }
                }
            }));
        }
    
        private static void fourthClick(Player player, Packet packet) {
            final int id = packet.readUnsignedShortA();
            final int y = packet.readUnsignedShortA();
            final int x = packet.readShort();
            final Position position = new Position(x, y, player.getPosition().getZ());
            final GameObject gameObject = new GameObject(id, position);
            if (id > 0 && id != 6 && !World.objectExists(gameObject)) {
                // player.getPacketSender().sendMessage("An error occured.
                // Errorcode: "+id).sendMessage("Please report the error to a
                // staffmember.");
                return;
            }
            if(gameObject.getId() != 4767) {
                player.setPositionToFace(gameObject.getPosition());
            }
            int distanceX = (player.getPosition().getX() - position.getX());
            int distanceY = (player.getPosition().getY() - position.getY());
            if (distanceX < 0)
                distanceX = -(distanceX);
            if (distanceY < 0)
                distanceY = -(distanceY);
            int size = distanceX > distanceY ? distanceX : distanceY;
            gameObject.setSize(size);
            player.setInteractingObject(gameObject);
            if (player.getStaffRights().isDeveloper(player))
                player.getPacketSender()
                        .sendMessage("Fourth click object id; [id, position] : [" + id + ", " + position.toString() + "]");
            player.setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                @Override
                public void execute() {
                    if (Farming.isGameObject(player, gameObject, 4))
                        return;
    
                    switch (id) {
                    }
                }
            }));
        }
    
        private static void fifthClick(final Player player, Packet packet) {
            final int id = packet.readUnsignedShortA();
            final int y = packet.readUnsignedShortA();
            final int x = packet.readShort();
            final Position position = new Position(x, y, player.getPosition().getZ());
            final GameObject gameObject = new GameObject(id, position);
            if (id > 0 && !World.objectExists(gameObject)) {
                player.getPacketSender().sendMessage("An error occured. Error code: " + id).sendMessage("Please report the error to a staffmember.");
                return;
            }
            if (!player.getDragonSpear().elapsed(3000)) {
                player.getPacketSender().sendMessage("You are stunned!");
                return;
            }
            if(gameObject.getId() != 4767) {
                player.setPositionToFace(gameObject.getPosition());
            }
            int distanceX = (player.getPosition().getX() - position.getX());
            int distanceY = (player.getPosition().getY() - position.getY());
            if (distanceX < 0)
                distanceX = -(distanceX);
            if (distanceY < 0)
                distanceY = -(distanceY);
            int size = distanceX > distanceY ? distanceX : distanceY;
            gameObject.setSize(size);
            player.setInteractingObject(gameObject);
            player.setWalkToTask(new WalkToTask(player, position, gameObject.getSize(), new FinalizedMovementTask() {
                @Override
                public void execute() {
                    if (Farming.isGameObject(player, gameObject, 5))
                        return;
                    switch (id) {
                    }
                }
            }));
        }
    
        @Override
        public void handleMessage(Player player, Packet packet) {
            if (player.isTeleporting() || player.isPlayerLocked() || player.getWalkingQueue().isLockMovement()) {
                return;
            }
            switch (packet.getOpcode()) {
                case FIRST_CLICK:
                    firstClick(player, packet);
                    break;
                case SECOND_CLICK:
                    secondClick(player, packet);
                    break;
                case THIRD_CLICK:
                    thirdClick(player, packet);
                    break;
                case FOURTH_CLICK:
                    fourthClick(player, packet);
                    break;
                case FIFTH_CLICK:
                    fifthClick(player, packet);
                    break;
            }
        }
    
        public static final int FIRST_CLICK = 132, SECOND_CLICK = 252, THIRD_CLICK = 70, FOURTH_CLICK = 234,
                FIFTH_CLICK = 228;
    }
    Reply With Quote  
     

  2. #2  
    Jake from State Farm

    FKN Jake's Avatar
    Join Date
    Nov 2013
    Posts
    675
    Thanks given
    45
    Thanks received
    58
    Rep Power
    153
    Spawn this object and let me know what happens.
    Code:
     case 1725:
                                    player.moveTo(new Position(player.getPosition().getX(), 3513, 1));
                                    break;
    Reply With Quote  
     

  3. #3  
    Registered Member
    Join Date
    Mar 2017
    Posts
    19
    Thanks given
    3
    Thanks received
    1
    Rep Power
    11
    Quote Originally Posted by Temperature View Post
    Spawn this object and let me know what happens.
    Code:
     case 1725:
                                    player.moveTo(new Position(player.getPosition().getX(), 3513, 1));
                                    break;
    Doesn't work... Did you get my PM? What's your skype.

    Still need help with this please.
    Reply With Quote  
     

  4. #4  
    Registered Member
    Join Date
    Jun 2017
    Posts
    37
    Thanks given
    4
    Thanks received
    4
    Rep Power
    13
    Bump, having the same exact error.
    Reply With Quote  
     

  5. #5  
    Registered Member
    Join Date
    Apr 2013
    Posts
    20
    Thanks given
    2
    Thanks received
    0
    Rep Power
    11
    Are you getting the "Something went wrong..." message when you try to click on objects?

    Post your objectExists function in World.java. Mine is in RegionClipping.java. There might be a discrepancy between them.
    Reply With Quote  
     


Thread Information
Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)


User Tag List

Similar Threads

  1. interact with object when reached
    By Aoife in forum Snippets
    Replies: 3
    Last Post: 10-02-2009, 02:06 PM
  2. Replies: 6
    Last Post: 07-31-2009, 03:50 AM
  3. [Glitch Fix] Dealing with custom object delay
    By noweight in forum Tutorials
    Replies: 6
    Last Post: 05-10-2008, 04:16 PM
  4. Replies: 7
    Last Post: 04-26-2008, 10:41 AM
  5. Replies: 13
    Last Post: 03-19-2008, 07:02 PM
Posting Permissions
  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •