Some object clicking doesn't seem to work...

Things like.. Slayer tower stairs don't work and When i click jad cave it doesn't go in

Everything it set nd all


Heres my actionhandler class

Code:
package game.player;

import engine.util.Misc;
import game.Client;
import game.Config;
import game.Server;
import game.content.travel.ShipSailing;
import game.npc.NPCHandler;
import game.object.Object;


/*
 * Project Insanity - Evolved v.3
 * ActionHandler.java
 */

public class ActionHandler {

	private final Client c;

	public ActionHandler(final Client Client) {
		c = Client;
	}

	public void firstClickNpc(int i) {
		c.clickNpcType = 0;
		c.npcClickIndex = 0;
		switch (i) {

		/**
		 * NPC First Click Options
		 */
		// Runecrafting - mage of Zammy teleport
		case 2258:
			c.getPA().startTeleport(3040, 4842, 0, "modern");
		break;

		// Gnome Glider - Operators
		case 170:
			c.getPA().showInterface(802);
		break;

		case 706:
			c.getDH().sendDialogues(9, i);
		break;
		
		 case 2566: 
	            c.getShops().openSkillCape();
	            break;
	            
		 case 528: 
	            c.getShops().openShop(1);
	            break;
	           
		
		 case 522:
		 case 523:
		 case 520:
	            c.getShops().openShop(1);
	            break;
	      
		 case 549: 
	            c.getShops().openShop(4);
	            break;

	      
	            
	        case 461: 
	            c.getShops().openShop(2);
	            break;

	        case 541:
	        	c.getShops().openShop(5);
	        	break;
	        	
	        case 683: 
	            c.getShops().openShop(3);
	            break;
				
			case 604:
				c.getShops().openShop(48);
				break;

	        case 586: 
	            c.getShops().openShop(4);
	            break;
				
			case 280: 
	            c.getShops().openShop(12);
	            break;
				
			case 636: 
	            c.getShops().openShop(10);
	            break;

	        case 555: 
	            c.getShops().openShop(6);
	            break;

	        case 519: 
	            c.getShops().openShop(8);
	            break;

	        case 1700: 
	            c.getShops().openShop(19);
	            break;

	        case 251: 
	            c.getShops().openShop(60);
	            break;

		

		// Slayer Master - Dialogue
		case 1597:
			if (c.slayerTask <= 0) {
				c.getDH().sendDialogues(11, i);
			} else {
				c.getDH().sendDialogues(13, i);
			}
		break;

		// Amulet of Glory - Options
		case 1304:
			c.getDH().sendOption5("Home", "Edgeville", "Island", "Dagannoth Kings", "Next Page");
			c.teleAction = 1;
		break;

		// Void Knight Shop
		case 3788:
			c.getShops().openVoid();
		break;

		// Bank
		case 494:
			c.getPA().openUpBank();
		break;

		// Pest Control - Point
		case 3789:
		case 3778: 
            c.getShops().openShop(18);
			c.sendMessage(new StringBuilder().append("You currently have ").append(c.pcPoints).append(" pest control points.").toString());
		break;

		case 905:
			c.getDH().sendDialogues(5, i);
		break;

		case 460:
			c.getDH().sendDialogues(3, i);
		break;

		case 462:
			c.getDH().sendDialogues(7, i);
		break;

		// Fishing
		case 324: // lobs
			c.getFishing().attemptdata(c, 3);
		break;
		case 316: // shrimp
			c.getFishing().attemptdata(c, 1);
		break;
		case 334: // mantas
			c.getFishing().attemptdata(c, 5);
		break;
		case 314: // salmon
			c.getFishing().attemptdata(c, 2);
		break;
		case 326: // monks
			c.getFishing().attemptdata(c, 4);
		break;

		// Make Over mage
		case 599:
			c.getPA().showInterface(3559);
			c.canChangeAppearance = true;
		break;

		// Mage Arena Points
		case 904:
			c.sendMessage(new StringBuilder().append("You have ").append(c.magePoints).append(" points.").toString());
		break;
		}
	}

	public void firstClickObject(int objectType, int obX, int obY) {
		c.clickObjectType = 0;
		//c.sendMessage("Object type: " + objectType);
		switch(objectType) {
		case 7129:
			if (c.objectX == 3029 && c.objectY == 4830) {
				c.getPA().movePlayer(2584, 4836, 0);
			}
		break;
		case 7132:
			if (c.objectX == 3028 && c.objectY == 4837) {
				c.getPA().movePlayer(2162, 4833, 0);
			}
		break;
	
		case 9356:
			Misc.println("firstclickobject");
		c.getPA().enterCaves();
		break;
		
		case 7133:
			if (c.objectX == 3035 && c.objectY == 4842) {
				c.getPA().movePlayer(2162, 4833, 0);
			}
		break;
		case 7134:
			if (c.objectX == 3044 && c.objectY == 4842) {
				c.getPA().movePlayer(2269, 4843, 0);
			}
		break;
		case 7135:
			if (c.objectX == 3049 && c.objectY == 4839) {
				c.getPA().movePlayer(2464, 4834, 0);
			}
		break;
		case 7136:
			if (c.objectX == 3050 && c.objectY == 4837) {
				c.getPA().movePlayer(2207, 4836, 0);
			}
		break;
		case 7137:
			if (c.objectX == 3051 && c.objectY == 4833) {
				c.getPA().movePlayer(2714, 4836, 0);
			}
		break;

		// Flax Picking
		case 2646:
			if (System.currentTimeMillis() - c.buryDelay > 1500) {
				c.getItems().addItem(1779, 1);
				c.turnPlayerTo(c.objectX, c.objectY);
				c.startAnimation(2292);
				c.getPA().object(-1, 2739, 3444, 0, 10);
				c.sendMessage("You pick some flax.");
				c.buryDelay = System.currentTimeMillis();

			}
		break;

		// Cow Milking
		case 8689:
			if (System.currentTimeMillis() - c.buryDelay > 1500) {
				if (c.getItems().playerHasItem(1925, 1)) {
					c.turnPlayerTo(c.objectX, c.objectY);
					c.startAnimation(2292);
					c.getItems().addItem(1927, 1);
					c.getItems().deleteItem(1925, 1);
					c.buryDelay = System.currentTimeMillis();
				} else {
					c.sendMessage("You need a bucket to milk a cow!");
				}
			}
		break;

		// Sailing - Gang Planks
		case 2412:
			ShipSailing.startTravel(c, 1);
		break;
		case 2414:
			ShipSailing.startTravel(c, 2);
		break;
		case 2083:
			ShipSailing.startTravel(c, 5);
		break;
		case 2081:
			ShipSailing.startTravel(c, 6);
		break;
		case 14304:
			ShipSailing.startTravel(c, 14);
		break;
		case 14306:
			ShipSailing.startTravel(c, 15);
		break;

		// Woodcutting Trees
		case 1276:
			c.getWoodcutting().startWoodcutting(0, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1278:
			c.getWoodcutting().startWoodcutting(1, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1286:
			c.getWoodcutting().startWoodcutting(2, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1281:
			c.getWoodcutting().startWoodcutting(3, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1308:
			c.getWoodcutting().startWoodcutting(4, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 5552:
			c.getWoodcutting().startWoodcutting(5, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1307:
			c.getWoodcutting().startWoodcutting(6, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1309:
			c.getWoodcutting().startWoodcutting(7, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 1306:
			c.getWoodcutting().startWoodcutting(8, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 5551:
			c.getWoodcutting().startWoodcutting(9, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 5553:
			c.getWoodcutting().startWoodcutting(10, c.objectX, c.objectY, c.clickObjectType);
		break;

		// Mining Rocks
		case 2091:
			c.getMining().startMining(0, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2095:
			c.getMining().startMining(1, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2093:
			c.getMining().startMining(2, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2097:
			c.getMining().startMining(3, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2103:
			c.getMining().startMining(4, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2105:
			c.getMining().startMining(5, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2107:
			c.getMining().startMining(6, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2090:
			c.getMining().startMining(7, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2094:
			c.getMining().startMining(8, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2092:
			c.getMining().startMining(9, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2096:
			c.getMining().startMining(10, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2102:
			c.getMining().startMining(11, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2104:
			c.getMining().startMining(12, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2106:
			c.getMining().startMining(13, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2100:
			c.getMining().startMining(14, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2101:
			c.getMining().startMining(15, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2098:
			c.getMining().startMining(16, c.objectX, c.objectY, c.clickObjectType);
		break;
		case 2099:
			c.getMining().startMining(17, c.objectX, c.objectY, c.clickObjectType);
		break;

		// God Wars Teleport
		case 2492:
			if (c.killCount >= 20) {
				c.getDH().sendOption4("Armadyl", "Bandos", "Saradomin", "Zamorak");
				c.dialogueAction = 20;
			} else {
				c.sendMessage("You need 20 kill count before teleporting to a boss chamber.");
			}
		break;

		case 1765:
			c.getPA().movePlayer(3067, 10256, 0);
		break;

		case 2882:
		case 2883:
			if (c.objectX == 3268) {
				if (c.absX < c.objectX) {
					c.getPA().walkTo(1, 0);
				} else {
					c.getPA().walkTo(-1, 0);
				}
			}
		break;
		case 272:
			c.getPA().movePlayer(c.absX, c.absY, 1);
		break;

		case 273:
			c.getPA().movePlayer(c.absX, c.absY, 0);
		break;
		case 245:
			c.getPA().movePlayer(c.absX, c.absY + 2, 2);
		break;
		case 246:
			c.getPA().movePlayer(c.absX, c.absY - 2, 1);
		break;
		case 1766:
			c.getPA().movePlayer(3016, 3849, 0);
		break;

		/*
		 * Spell Book Changing
		 */
		// Ancient
		case 6552:
			if (c.playerMagicBook == 0) {
				c.playerMagicBook = 1;
				c.setSidebarInterface(6, 12855);
				c.sendMessage("An ancient wisdomin fills your mind.");
				c.getPA().resetAutocast();
			} else {
				c.setSidebarInterface(6, 1151); // modern
				c.playerMagicBook = 0;
				c.sendMessage("You feel a drain on your memory.");
				c.autocastId = -1;
				c.getPA().resetAutocast();
			}
		break;
		// Lunar
		case 410:
			if (c.playerMagicBook == 0) {
				c.playerMagicBook = 2;
				c.setSidebarInterface(6, 29999);
				c.sendMessage("Lunar wisdom fills your mind.");
				c.getPA().resetAutocast();
			} else {
				c.setSidebarInterface(6, 1151); // modern
				c.playerMagicBook = 0;
				c.sendMessage("You feel a drain on your memory.");
				c.autocastId = -1;
				c.getPA().resetAutocast();
			}
		break;
		
		case 411:
			if(c.ancientpray == 0) {
				c.ancientpray = 1;
				c.setSidebarInterface(5, 22500);
				c.sendMessage("The gods bless you with new prayers!");
			} else {
				c.ancientpray = 0;
				c.setSidebarInterface(5, 5608);
				c.sendMessage("Your Prayer book turns normal");
			}
		break;
		
		case 1816:
			c.getPA().startTeleport2(2271, 4680, 0);
		break;
		case 1817:
			c.getPA().startTeleport(3067, 10253, 0, "modern");
		break;

		// Ardounge Leaver
		case 1814:
			c.getPA().startTeleport(3153, 3923, 0, "modern");
		break;

		// Fight Cave Enterance

		
		case 1733:
			c.getPA().movePlayer(c.absX, c.absY + 6393, 0);
		break;
		case 1734:
			c.getPA().movePlayer(c.absX, c.absY - 6396, 0);
		break;
		case 9357:
			c.getPA().resetTzhaar();
		break;

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

		// Banking
		case 2213:
		case 14367:
		case 11758:
		case 3193:
			c.getPA().openUpBank();
		break;

		case 10177:
			c.getPA().movePlayer(1890, 4407, 0);
		break;
		case 10230:
			c.getPA().movePlayer(2900, 4449, 0);
		break;
		case 10229:
			c.getPA().movePlayer(1912, 4367, 0);
		break;
		case 2623:
			if (c.absX >= c.objectX) {
				c.getPA().walkTo(-1, 0);
			} else {
				c.getPA().walkTo(1, 0);
			}
		break;

		// Pest Control Boat boat
		case 14315:
			c.getPA().movePlayer(2661, 2639, 0);
		break;
		case 14314:
			c.getPA().movePlayer(2657, 2639, 0);
		break;
		

		case 14235:
		case 14233:
			if (c.objectX == 2670) {
				if (c.absX <= 2670) {
					c.absX = 2671;
				} else {
					c.absX = 2670;
				}
			}
			if (c.objectX == 2643) {
				if (c.absX >= 2643) {
					c.absX = 2642;
				} else {
					c.absX = 2643;
				}
			}
			if (c.absX <= 2585) {
				c.absY += 1;
			} else {
				c.absY -= 1;
			}
			c.getPA().movePlayer(c.absX, c.absY, 0);
		break;

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

		/*
		 * Castle Wars
		 */
		case 4387:
		// Server.castleWars.joinWait(c,1);
		break;
		case 4388:
		// Server.castleWars.joinWait(c,2);
		break;
		case 4408:
		// Server.castleWars.joinWait(c,3);
		break;
		case 4411:
		case 4415:
		case 4417:
		case 4418:
		case 4419:
		case 4420:
		case 4469:
		case 4470:
		case 4911:
		case 4912:
		case 1757:
		// Server.castleWars.handleObjects(c, objectType, obX, obY);
		break;

		case 9369:
			if (c.getY() > 5175) {
				c.getPA().movePlayer(2399, 5175, 0);
			} else {
				c.getPA().movePlayer(2399, 5177, 0);
			}
		break;

		// Fight Pits
		case 9368:
			if (c.getY() < 5169) {
				Server.fightPits.removePlayerFromPits(c.playerId);
				c.getPA().movePlayer(2399, 5169, 0);
			}
		break;

		case 2286:
		case 154:
		case 4058:
		case 2295:
		case 2285:
		case 2313:
		case 2312:
		case 2314:
			c.getAgility().handleGnomeCourse(objectType, obX, obY);
		break;

		/*
		 * Barrows
		 */
		// Chest
		case 10284:
			if (c.barrowsKillCount < 5) {
				c.sendMessage("You haven't killed all the brothers");
			}
			if (c.barrowsKillCount == 5 && c.barrowsNpcs[c.randomCoffin][1] == 1) {
				c.sendMessage("I have already summoned this npc.");
			}
			if (c.barrowsNpcs[c.randomCoffin][1] == 0 && c.barrowsKillCount >= 5) {
				NPCHandler.spawnNpc(c, c.barrowsNpcs[c.randomCoffin][0], 3551, 9694 - 1, 0, 0, 120, 30, 200, 200, true, true);
				c.barrowsNpcs[c.randomCoffin][1] = 1;
			}
			if ((c.barrowsKillCount > 5 || c.barrowsNpcs[c.randomCoffin][1] == 2) && c.getItems().freeSlots() >= 2) {
				c.getPA().resetBarrows();
				c.getItems().addItem(c.getPA().randomRunes(), Misc.random(150) + 100);
				if (Misc.random(2) == 1) {
					c.getItems().addItem(c.getPA().randomBarrows(), 1);
				}
				c.getPA().startTeleport(3564, 3288, 0, "modern");
			} else if (c.barrowsKillCount > 5 && c.getItems().freeSlots() <= 1) {
				c.sendMessage("You need at least 2 inventory slot opened.");
			}
		break;
		// coffins
		case 6707: // verac
			c.getPA().movePlayer(3556, 3298, 0);
		break;
		case 6823:
			if (game.minigame.Barrows.selectCoffin(c, objectType)) {
				return;
			}
			if (c.barrowsNpcs[0][1] == 0) {
				NPCHandler.spawnNpc(c, 2030, c.getX(), c.getY() - 1, -1, 0, 120, 25, 200, 200, true, true);
				c.barrowsNpcs[0][1] = 1;
			} else {
				c.sendMessage("You have already searched in this sarcophagus.");
			}
		break;
		case 6706: // torag
			c.getPA().movePlayer(3553, 3283, 0);
		break;
		case 6772:
			if (game.minigame.Barrows.selectCoffin(c, objectType)) {
				return;
			}
			if (c.barrowsNpcs[1][1] == 0) {
				NPCHandler.spawnNpc(c, 2029, c.getX() + 1, c.getY(), -1, 0, 120, 20, 200, 200, true, true);
				c.barrowsNpcs[1][1] = 1;
			} else {
				c.sendMessage("You have already searched in this sarcophagus.");
			}
		break;
		case 6705: // karil stairs
			c.getPA().movePlayer(3565, 3276, 0);
		break;
		case 6822:
			if (game.minigame.Barrows.selectCoffin(c, objectType)) {
				return;
			}
			if (c.barrowsNpcs[2][1] == 0) {
				NPCHandler.spawnNpc(c, 2028, c.getX(), c.getY() - 1, -1, 0, 90, 17, 200, 200, true, true);
				c.barrowsNpcs[2][1] = 1;
			} else {
				c.sendMessage("You have already searched in this sarcophagus.");
			}
		break;
		case 6704: // guthan stairs
			c.getPA().movePlayer(3578, 3284, 0);
		break;
		case 6773:
			if (game.minigame.Barrows.selectCoffin(c, objectType)) {
				return;
			}
			if (c.barrowsNpcs[3][1] == 0) {
				NPCHandler.spawnNpc(c, 2027, c.getX(), c.getY() - 1, -1, 0, 120, 23, 200, 200, true, true);
				c.barrowsNpcs[3][1] = 1;
			} else {
				c.sendMessage("You have already searched in this sarcophagus.");
			}
		break;
		case 6703: // dharok stairs
			c.getPA().movePlayer(3574, 3298, 0);
		break;
		case 6771:
			if (game.minigame.Barrows.selectCoffin(c, objectType)) {
				return;
			}
			if (c.barrowsNpcs[4][1] == 0) {
				NPCHandler.spawnNpc(c, 2026, c.getX(), c.getY() - 1, -1, 0, 120, 45, 250, 250, true, true);
				c.barrowsNpcs[4][1] = 1;
			} else {
				c.sendMessage("You have already searched in this sarcophagus.");
			}
		break;
		case 6702: // ahrim stairs
			c.getPA().movePlayer(3565, 3290, 0);
		break;
		case 6821:
			if (game.minigame.Barrows.selectCoffin(c, objectType)) {
				return;
			}
			if (c.barrowsNpcs[5][1] == 0) {
				NPCHandler.spawnNpc(c, 2025, c.getX(), c.getY() - 1, -1, 0, 90, 19, 200, 200, true, true);
				c.barrowsNpcs[5][1] = 1;
			} else {
				c.sendMessage("You have already searched in this sarcophagus.");
			}
		break;

		// Farming patch
		case 8143:
			if (c.farm[0] > 0 && c.farm[1] > 0) {
				c.getFarming().pickHerb();
			}
		break;

		// DOORS
		case 1516:
		case 1519:
			if (c.objectY == 9698) {
				if (c.absY >= c.objectY) {
					c.getPA().walkTo(0, -1);
				} else {
					c.getPA().walkTo(0, 1);
				}
				break;
			}
		case 1530:
		case 1531:
		case 1533:
		case 1534:
		case 11712:
		case 11711:
		case 11707:
		case 11708:
		case 6725:
		case 3198:
		case 3197:
			Server.objectHandler.doorHandling(objectType, c.objectX, c.objectY, 0);
		break;
		
		case 1596:
		case 1597:
		if (c.getY() >= c.objectY)
			c.getPA().walkTo(0,-1);
		else
			c.getPA().walkTo(0,1);
		break;

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

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

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

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

		case 1755:
			if (c.objectX == 2884 && c.objectY == 9797) {
				c.getPA().movePlayer(c.absX, c.absY - 6400, 0);
			}
		break;
		case 1759:
			if (c.objectX == 2884 && c.objectY == 3397) {
				c.getPA().movePlayer(c.absX, c.absY + 6400, 0);
			}
		break;

		// Alter recharging
		case 409:
			if (c.playerLevel[5] < c.getPA().getLevelForXP(c.playerXP[5])) {
				c.startAnimation(645);
				c.playerLevel[5] = c.getPA().getLevelForXP(c.playerXP[5]);
				c.sendMessage("You recharge your prayer points.");
				c.getPA().refreshSkill(5);
			} else {
				c.sendMessage("You already have full prayer points.");
			}
		break;

		/*
		 * Mage arena cape gifts
		 */
		case 2873:
			if (!c.getItems().ownsCape()) {
				c.startAnimation(645);
				c.sendMessage("Saradomin blesses you with a cape.");
				c.getItems().addItem(2412, 1);
			}
		break;
		case 2875:
			if (!c.getItems().ownsCape()) {
				c.startAnimation(645);
				c.sendMessage("Guthix blesses you with a cape.");
				c.getItems().addItem(2413, 1);
			}
		break;
		case 2874:
			if (!c.getItems().ownsCape()) {
				c.startAnimation(645);
				c.sendMessage("Zamorak blesses you with a cape.");
				c.getItems().addItem(2414, 1);
			}
		break;


		case 2878:
			c.getPA().movePlayer(2509, 4689, 0);
		break;
		
		case 2879:
			c.getPA().movePlayer(2542, 4718, 0);
		break;

		case 5960:
			c.getPA().startTeleport2(3090, 3956, 0);
		break;

		case 1815:
			c.getPA().startTeleport2(Config.EDGEVILLE_X, Config.EDGEVILLE_Y, 0);
		break;

		case 9706:
			c.getPA().startTeleport2(3105, 3951, 0);
		break;
		case 9707:
			c.getPA().startTeleport2(3105, 3956, 0);
		break;

		case 5959:
			c.getPA().startTeleport2(2539, 4712, 0);
		break;

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

		case 9294:
			if (c.absX < c.objectX) {
				c.getPA().movePlayer(c.objectX + 1, c.absY, 0);
			} else if (c.absX > c.objectX) {
				c.getPA().movePlayer(c.objectX - 1, c.absY, 0);
			}
		break;

		case 9293:
			if (c.absX < c.objectX) {
				c.getPA().movePlayer(2892, 9799, 0);
			} else {
				c.getPA().movePlayer(2886, 9799, 0);
			}
		break;

		case 10529:
		case 10527:
			if (c.absY <= c.objectY) {
				c.getPA().walkTo(0, 1);
			} else {
				c.getPA().walkTo(0, -1);
			}
		break;

		case 3044:
			c.getSmithing().sendSmelting();
		break;

		// Web Slashing
		case 733:
			c.startAnimation(451);
			if (Misc.random(1) == 1) {
				c.getPA().removeObject(c.objectX, c.objectY);
				c.sendMessage("You slash the web.");
			} else {
				c.sendMessage("You fail to slash the webs.");
			}
			if (c.objectX == 3158 && c.objectY == 3951) {
				new Object(734, c.objectX, c.objectY, c.heightLevel, 1, 10, 733, 50);
			} else {
				new Object(734, c.objectX, c.objectY, c.heightLevel, 0, 10, 733, 50);
			}
		break;
		}
	}

	public void secondClickNpc(final int i) {
		c.clickNpcType = 0;
		c.npcClickIndex = 0;
		switch (i) {

		/**
		 * NPC Second Click Options
		 */
		// Fishing
		case 334: // sharks
			c.getFishing().attemptdata(c, 7);
		break;
		case 324: // tuna
			c.getFishing().attemptdata(c, 6);
		break;

		case 3788:
			c.getShops().openVoid();
		break;

		case 494:
			c.getPA().openUpBank();
		break;

		// NPC Thieving
		case 1:
		case 9:
		case 18:
		case 20:
		case 21:
		case 26:
			c.getThieving().stealFromNPC(i);
		break;

		}
	}

	public void secondClickObject(final int objectType, final int obX, final int obY) {
		c.clickObjectType = 0;
		if (Config.SERVER_DEBUG = true) {
			if (c.playerRights >= 4) {
				Misc.println("Object type: " + objectType);
			}
		}
		switch (objectType) {

		/**
		 * Second Click Object Action
		 */

		// Flax Picking
		case 2646:
			if (System.currentTimeMillis() - c.buryDelay > 1500) {
				c.getItems().addItem(1779, 1);
				c.turnPlayerTo(c.objectX, c.objectY);
				c.startAnimation(2292);
				c.getPA().object(-1, 2739, 3444, 0, 10);
				c.sendMessage("You pick some flax.");
				c.buryDelay = System.currentTimeMillis();

			}
		break;

		// Cow Milking
		case 8689:
			if (System.currentTimeMillis() - c.buryDelay > 1500) {
				if (c.getItems().playerHasItem(1925, 1)) {
					c.turnPlayerTo(c.objectX, c.objectY);
					c.startAnimation(2292);
					c.getItems().addItem(1927, 1);
					c.getItems().deleteItem(1925, 1);
					c.buryDelay = System.currentTimeMillis();
				} else {
					c.sendMessage("You need a bucket to milk a cow!");
				}
			}
		break;

		// Smithing
		case 11666:
		case 3044:
			c.getSmithing().sendSmelting();
		break;

		// Bank
		case 2213:
		case 14367:
		case 11758:
			c.getPA().openUpBank();
		break;

		// Thieving Stalls
		case 2561:
			c.getThieving().stealFromStall(1897, 10, 1, objectType, obX, obY);
		break;
		case 2562:
			c.getThieving().stealFromStall(950, 30, 25, objectType, obX, obY);
		break;
		case 2563:
			c.getThieving().stealFromStall(1635, 60, 50, objectType, obX, obY);
		break;
		case 2564:
			c.getThieving().stealFromStall(7650, 100, 75, objectType, obX, obY);
		break;
		case 2565:
			c.getThieving().stealFromStall(1613, 170, 90, objectType, obX, obY);
		break;

		// Lock Picking
		case 2558:
			if (System.currentTimeMillis() - c.lastLockPick < 3000 || c.freezeTimer > 0) {
				break;
			}
			if (c.getItems().playerHasItem(1523, 1)) {
				c.lastLockPick = System.currentTimeMillis();
				if (Misc.random(10) <= 3) {
					c.sendMessage("You fail to pick the lock.");
					break;
				}
				if (c.objectX == 3044 && c.objectY == 3956) {
					if (c.absX == 3045) {
						c.getPA().walkTo2(-1, 0);
					} else if (c.absX == 3044) {
						c.getPA().walkTo2(1, 0);
					}
				} else if (c.objectX == 3038 && c.objectY == 3956) {
					if (c.absX == 3037) {
						c.getPA().walkTo2(1, 0);
					} else if (c.absX == 3038) {
						c.getPA().walkTo2(-1, 0);
					}
				} else if (c.objectX == 3041 && c.objectY == 3959) {
					if (c.absY == 3960) {
						c.getPA().walkTo2(0, -1);
					} else if (c.absY == 3959) {
						c.getPA().walkTo2(0, 1);
					}
				}
			} else {
				c.sendMessage("I need a lockpick to pick this lock.");
			}
		break;
		}
	}

	public void thirdClickNpc(final int npcType) {
		c.clickNpcType = 0;
		c.npcClickIndex = 0;
		switch (npcType) {

		/**
		 * Third Click NPC Option
		 */

		default:
			if (Config.SERVER_DEBUG = true) {
				if (c.playerRights >= 4) {
					Misc.println("Third Click NPC : " + npcType);
				}
			}
		break;
		}
	}

	public void thirdClickObject(final int objectType, final int obX, final int obY) {
		c.clickObjectType = 0;
		if (Config.SERVER_DEBUG = true) {
			if (c.playerRights >= 3) {
				Misc.println("Object type: " + objectType);
			}
		}
		switch (objectType) {

		/**
		 * Third Click Object Actions
		 */

		}
	}

}

My click Object class


Code:
package engine.packet;

import engine.event.CycleEvent;
import engine.event.CycleEventContainer;
import engine.event.CycleEventHandler;
import engine.util.Misc;
import game.Client;
import game.Config;
import game.object.SingleDoorHandler;
import game.player.Player;
import game.player.*;
import game.skill.RuneCraft;


/*
 * Project Insanity - Evolved v.3
 * ClickObject.java
 */

public class ClickObject

implements PacketType {

	
	
	public static final int FIRST_CLICK = 132;
	public static final int SECOND_CLICK = 252;
	public static final int THIRD_CLICK = 70;
	

	public ClickObject() {
	}

	public void handleSpecialCase(final Client client, final int i, final int j, final int k) {
	}

	@Override
	public void processPacket(final Client client, final int i, final int j) {
		client.clickObjectType = client.objectX = client.objectId = client.objectY = 0;
		client.objectYOffset = client.objectXOffset = 0;
		client.getPA().resetFollow();
		switch (i) {
		
		case FIRST_CLICK:
			client.objectX = client.getInStream().readSignedWordBigEndianA();
			client.objectId = client.getInStream().readUnsignedWord();
			client.objectY = client.getInStream().readUnsignedWordA();
			client.objectDistance = 1;
			if (client.goodDistance(client.getX(), client.getY(), client.objectX, client.objectY, 1)) 
				client.getActions().firstClickObject(client.objectId, client.objectX, client.objectY);
				SingleDoorHandler.getSingleton().handleDoor(client.objectId, client.objectX, client.objectY, client.heightLevel);
			if (Config.SERVER_DEBUG = true) {
				if (client.playerRights >= 3) {
					Misc.println(new StringBuilder().append("First: objectId: ").append(client.objectId).append("  ObjectX: ").append(client.objectX).append("  objectY: ").append(client.objectY).append(" Xoff: ").append(client.getX() - client.objectX).append(" Yoff: ").append(client.getY() - client.objectY).toString());
				}
			}
			if (Math.abs(client.getX() - client.objectX) > 25 || Math.abs(client.getY() - client.objectY) > 25) {
				client.resetWalkingQueue();
				switch (client.objectId) {

				case 9356:
					client.objectXOffset = 2;
					client.objectYOffset = 2;
					client.objectDistance = 3;
				break;
				
				case 410:
					if (client.playerMagicBook == 0) {
						client.setSidebarInterface(6, 29999);
						client.playerMagicBook = 2;
						client.autocasting = false;
						client.sendMessage("An ancient wisdomin fills your mind.");
						client.autocastId = -1;
						client.getPA().resetAutocast();
					} else {
						client.setSidebarInterface(6, 1151);
						client.playerMagicBook = 0;
						client.autocasting = false;
						client.sendMessage("You feel a drain on your memory.");
						client.autocastId = -1;
						client.getPA().resetAutocast();
					}
				break;			
				case 1733:
					client.objectYOffset = 2;
				break;

				case 3044:
					client.objectDistance = 3;
				break;

				case 245:
					client.objectYOffset = -1;
					client.objectDistance = 0;
				break;

				case 272:
					client.objectYOffset = 1;
					client.objectDistance = 0;
				break;

				case 273:
					client.objectYOffset = 1;
					client.objectDistance = 0;
				break;

				case 246:
					client.objectYOffset = 1;
					client.objectDistance = 0;
				break;

				case 4493:
				case 4494:
				case 4495:
				case 4496:
					client.objectDistance = 5;
				break;

				case 6522:
				case 10229:
					client.objectDistance = 2;
				break;

				case 8959:
					client.objectYOffset = 1;
				break;

				case 4417:
					if (client.objectX == 2425 && client.objectY == 3074) {
						client.objectYOffset = 2;
					}
				break;

				case 4420:
					if (client.getX() >= 2383 && client.getX() <= 2385) {
						client.objectYOffset = 1;
					} else {
						client.objectYOffset = -2;
					}
					// fall through
					break;

				case 409:
				case 6552:
					client.objectDistance = 2;
				break;

				case 2878:
				case 2879:
					client.objectDistance = 3;
				break;

				case 2558:
					client.objectDistance = 0;
					if (client.absX > client.objectX && client.objectX == 3044) {
						client.objectXOffset = 1;
					}
					if (client.absY > client.objectY) {
						client.objectYOffset = 1;
					}
					if (client.absX < client.objectX && client.objectX == 3038) {
						client.objectXOffset = -1;
					}
				break;

				case 1815:
				case 1816:
				case 5959:
				case 5960:
					client.objectDistance = 1;
				break;

				case 9293:
					client.objectDistance = 2;
				break;

				case 4418:
					if (client.objectX == 2374 && client.objectY == 3131) {
						client.objectYOffset = -2;
					} else if (client.objectX == 2369 && client.objectY == 3126) {
						client.objectXOffset = 2;
					} else if (client.objectX == 2380 && client.objectY == 3127) {
						client.objectYOffset = 2;
					} else if (client.objectX == 2369 && client.objectY == 3126) {
						client.objectXOffset = 2;
					} else if (client.objectX == 2374 && client.objectY == 3131) {
						client.objectYOffset = -2;
					}
				break;

				case 9706:
					client.objectDistance = 0;
					client.objectXOffset = 1;
				break;

				case 9707:
					client.objectDistance = 0;
					client.objectYOffset = -1;
				break;

				case 4419:
				case 6707:
					client.objectYOffset = 3;
				break;

				case 6823:
					client.objectDistance = 2;
					client.objectYOffset = 1;
				break;

				case 6706:
					client.objectXOffset = 2;
				break;

				case 6772:
					client.objectDistance = 2;
					client.objectYOffset = 1;
				break;

				case 6705:
					client.objectYOffset = -1;
				break;

				case 6822:
					client.objectDistance = 2;
					client.objectYOffset = 1;
				break;

				case 6704:
					client.objectYOffset = -1;
				break;

				case 6773:
					client.objectDistance = 2;
					client.objectXOffset = 1;
					client.objectYOffset = 1;
				break;

				case 6703:
					client.objectXOffset = -1;
				break;

				case 6771:
					client.objectDistance = 2;
					client.objectXOffset = 1;
					client.objectYOffset = 1;
				break;

				case 6702:
					client.objectXOffset = -1;
				break;

				case 6821:
					client.objectDistance = 2;
					client.objectXOffset = 1;
					client.objectYOffset = 1;
				break;

				case 1276:
				case 1278:
				case 1281:
				case 1306:
				case 1307:
				case 1308:
				case 1309:
					client.objectDistance = 3;
				break;

				default:
					client.objectDistance = 2;
					client.objectXOffset = 0;
					client.objectYOffset = 0;
				break;
				}
				if (client.goodDistance(client.objectX + client.objectXOffset, client.objectY + client.objectYOffset, client.getX(), client.getY(), client.objectDistance)) {
					client.getActions().firstClickObject(client.objectId, client.objectX, client.objectY);
				} else {
					client.clickObjectType = 1;
					client.walkToX = client.objectX;
					client.walkToY = client.objectY;
				}
			}
		break;

		case 252:
			client.objectId = client.getInStream().readUnsignedWordBigEndianA();
			client.objectY = client.getInStream().readSignedWordBigEndian();
			client.objectX = client.getInStream().readUnsignedWordA();
			client.objectDistance = 1;
			if (Config.SERVER_DEBUG = true) {
				if (client.playerRights >= 3) {
					Misc.println(new StringBuilder().append("objectId: ").append(client.objectId).append("  ObjectX: ").append(client.objectX).append("  objectY: ").append(client.objectY).append(" Xoff: ").append(client.getX() - client.objectX).append(" Yoff: ").append(client.getY() - client.objectY).toString());
				}
			}
			switch (client.objectId) {
			
			/*
			 * RuneCrafting Alters
			 */
			case 2478: // Air alter
				RuneCraft.craftRunes(client, 556);
			break;
			case 2479: // Mind Alter
				if (client.playerLevel[20] >= 2) {
					RuneCraft.craftRunes(client, 558);
				} else if (client.playerLevel[20] < 2) {
					client.sendMessage("You need a runecrafting level of 2 to craft these.");
				}
			break;
			case 2480: // Water Alter
				if (client.playerLevel[20] >= 5) {
					RuneCraft.craftRunes(client, 555);
				} else if (client.playerLevel[20] < 5) {
					client.sendMessage("You need a runecrafting level of 5 to craft these.");
				}
			break;
			case 2481: // Earth Alter
				if (client.playerLevel[20] >= 9) {
					RuneCraft.craftRunes(client, 557);
				} else if (client.playerLevel[20] < 9) {
					client.sendMessage("You need a runecrafting level of 9 to craft these.");
				}
			break;
			case 2482: // Fire Alter
				if (client.playerLevel[20] >= 14) {
					RuneCraft.craftRunes(client, 554);
				} else if (client.playerLevel[20] < 14) {
					client.sendMessage("You need a runecrafting level of 14 to craft these.");
				}
			break;
			case 2483: // Body Alter
				if (client.playerLevel[20] >= 20) {
					RuneCraft.craftRunes(client, 559);
				} else if (client.playerLevel[20] < 20) {
					client.sendMessage("You need a runecrafting level of 20 to craft these.");
				}
			break;
			case 2484: // cosmic alter
				if (client.playerLevel[20] >= 27) {
					RuneCraft.craftRunes(client, 564);
				} else if (client.playerLevel[20] < 27) {
					client.sendMessage("You need a runecrafting level of 27 to craft these.");
				}
			break;
			case 2487: // chaos alter
				if (client.playerLevel[20] >= 35) {
					RuneCraft.craftRunes(client, 562);
				} else if (client.playerLevel[20] < 35) {
					client.sendMessage("You need a runecrafting level of 35 to craft these.");
				}
			break;
			case 2486: // nats
				if (client.playerLevel[20] >= 44) {
					RuneCraft.craftRunes(client, 561);
				} else if (client.playerLevel[20] < 44) {
					client.sendMessage("You need a runecrafting level of 44 to craft these.");
				}
			break;
			case 2485: // law
				if (client.playerLevel[20] >= 54) {
					RuneCraft.craftRunes(client, 563);
				} else if (client.playerLevel[20] < 54) {
					client.sendMessage("You need a runecrafting level of 54 to craft these.");
				}
			break;
			case 2488: // death
				if (client.playerLevel[20] >= 65) {
					RuneCraft.craftRunes(client, 560);
				} else if (client.playerLevel[20] < 65) {
					client.sendMessage("You need a runecrafting level of 65 to craft these.");
				}
			break;
			case 7141: // blood
				if (client.playerLevel[20] >= 77) {
					RuneCraft.craftRunes(client, 565);
				} else if (client.playerLevel[20] < 77) {
					client.sendMessage("You need a runecrafting level of 77 to craft these.");
				}
			break;

			case 6162:
			case 6163:
			case 6164:
			case 6165:
			case 6166:
				client.objectDistance = 2;
			break;

			default:
				client.objectDistance = 1;
				client.objectXOffset = 0;
				client.objectYOffset = 0;
			break;
			}
			if (client.goodDistance(client.objectX + client.objectXOffset, client.objectY + client.objectYOffset, client.getX(), client.getY(), client.objectDistance)) {
				client.getActions().secondClickObject(client.objectId, client.objectX, client.objectY);
			} else {
				client.clickObjectType = 2;
				client.walkToX = client.objectX;
				client.walkToY = client.objectY;
			}
		break;

		case 70: // 'F'
			client.objectX = client.getInStream().readSignedWordBigEndian();
			client.objectY = client.getInStream().readUnsignedWord();
			client.objectId = client.getInStream().readUnsignedWordBigEndianA();
			if (Config.SERVER_DEBUG = true) {
				if (client.playerRights >= 4) {
					Misc.println(new StringBuilder().append("objectId: ").append(client.objectId).append("  ObjectX: ").append(client.objectX).append("  objectY: ").append(client.objectY).append(" Xoff: ").append(client.getX() - client.objectX).append(" Yoff: ").append(client.getY() - client.objectY).toString());
				}
			}
			switch (client.objectId) {

			default:
				client.objectDistance = 1;
			break;
			}
			client.objectXOffset = 0;
			client.objectYOffset = 0;
			if (client.goodDistance(client.objectX + client.objectXOffset, client.objectY + client.objectYOffset, client.getX(), client.getY(), client.objectDistance)) {
				client.getActions().secondClickObject(client.objectId, client.objectX, client.objectY);
			} else {
				client.clickObjectType = 3;
				client.walkToX = client.objectX;
				client.walkToY = client.objectY;
			}
		break;
		}
	}

}