private void handleScreenSettings(Player player, Packet packet) { int windowType = packet.readByte() & 0xff; int windowWidth = packet.readUShort(); int windowHeight = packet.readUShort(); int junk = packet.readByte() & 0xff; player.getPackets().configureGameScreen(windowType); }
public void handlePacket(Player player, Packet packet) { int size = packet.getLength(); if(packet.getPacketId() == PacketHandlers.PacketId.WALK_2) { size -= 14; } player.getWalkingQueue().resetWalkingQueue(); int steps = (size - 5) / 2; if (steps > WalkingQueue.MAX_WALKING_WAYPOINTS) { misc.WriteError("Warning: Walk command contains too many steps (" + steps + ") currently set to 50 [maybe need increase?]"); return; } player.getWalkingQueue().setIsRunning(packet.readByteA() == 1); bool following = false; if (!canWalk(player, packet, following)) { player.getPackets().clearMapFlag(); player.getWalkingQueue().resetWalkingQueue(); return; } int firstX = packet.readUShort() - (player.getLocation().getRegionX() - 6) * 8; int firstY = packet.readShortA() - (player.getLocation().getRegionY() - 6) * 8; player.getWalkingQueue().addToWalkingQueue(firstX, firstY); for (int i = 0; i < steps; i++) //all the waypoints. player.getWalkingQueue().addToWalkingQueue((packet.readByteA() + firstX), (packet.readByteS() + firstY)); if (player.getTeleportTo() != null) //is teleporting? player.getWalkingQueue().resetWalkingQueue(); if (player.getTemporaryAttribute("homeTeleporting") != null) { player.removeTemporaryAttribute("homeTeleporting"); } SkillHandler.resetAllSkills(player); if (player.getTrade() != null) player.getTrade().decline(); if (player.getDuel() != null) { if (player.getDuel().getStatus() < 4) player.getDuel().declineDuel(); else if (player.getDuel().getStatus() == 8) player.getDuel().recieveWinnings(player); } if (player.getTarget() != null) { if (!following && player.getTarget().getAttacker() != null && player.getTarget().getAttacker().Equals(player)) player.getTarget().setAttacker(null); } if (!following) { player.getFollow().setFollowing(null); player.setTarget(null); player.removeTemporaryAttribute("autoCasting"); if (player.getEntityFocus() != 65535) player.setEntityFocus(65535); } player.getPackets().closeInterfaces(); }
private void handleExamineNPC(Player player, Packet packet) { int npcId = packet.readUShort(); if (npcId < 0 || npcId > NpcData.getTotalNpcDefinitions() || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) return; player.getPackets().sendMessage(NpcData.forId(npcId).getExamine()); }
private void handleGeSearch(Player player, Packet packet) { int item = packet.readUShort(); if (item < 0 || item > 16000) { return; } if (player.getGESession() == null) { player.getPackets().sendInterface(0, 752, 6, 137); // Removes the item search return; } player.getGESession().updateSearchItem(item); }
private void handleClickTen(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 10: interfaceId: " + interfaceId); }
private void handleActionButton3(Player player, Packet packet) { int id = packet.readUShort(); int interfaceId = packet.readUShort(); int junk = packet.readLEShort(); int logType = (int) (player.getTemporaryAttribute("fletchType") == null ? -1 : (int) player.getTemporaryAttribute("fletchType")); // Bows (Fletching). int ammoType = (int) (player.getTemporaryAttribute("ammoType") == null ? -1 : (int) player.getTemporaryAttribute("ammoType")); // Arrows (Fletching). int boltType = (int) (player.getTemporaryAttribute("ammoType2") == null ? -1 : (int) player.getTemporaryAttribute("ammoType2")); // Bolts (Fletching). int xbowType = (int) (player.getTemporaryAttribute("bowType2") == null ? -1 : (int) player.getTemporaryAttribute("bowType2")); // Xbows (Fletching). int bowType = (int) (player.getTemporaryAttribute("bowType") == null ? -1 : (int) player.getTemporaryAttribute("bowType")); // Longbow/Shortbow stringing (Fletching). int grindItem = (int) (player.getTemporaryAttribute("herbloreGrindItem") == null ? -1 : (int) player.getTemporaryAttribute("herbloreGrindItem")); // item to be grinded (Herblore) bool stringingBow = (bool) (player.getTemporaryAttribute("stringingBow") == null ? false : (bool) player.getTemporaryAttribute("stringingBow")); // Stringing bow/xbow (Fletching) int unfinishedPotion = (int) (player.getTemporaryAttribute("unfinishedPotion") == null ? -1 : (int) player.getTemporaryAttribute("unfinishedPotion")); // unfinished potion to make (Herblore) int completePotion = (int) (player.getTemporaryAttribute("completePotion") == null ? -1 : (int) player.getTemporaryAttribute("completePotion")); // unfinished potion to make (Herblore) int cookItem = (int) (player.getTemporaryAttribute("meatItem") == null ? -1 : (int) player.getTemporaryAttribute("meatItem")); // item to cook (Cooking) int dialogueStatus = (int) (player.getTemporaryAttribute("dialogue") == null ? -1 : (int) player.getTemporaryAttribute("dialogue")); // Dialogue status int craftType = (int) (player.getTemporaryAttribute("craftType") == null ? -1 : (int) player.getTemporaryAttribute("craftType")); // 'Category' of item to craft int leatherCraft = (int) (player.getTemporaryAttribute("leatherCraft") == null ? -1 : (int) player.getTemporaryAttribute("leatherCraft")); // Type of leather item to craft (high lvl hides) int boltTips = (int) (player.getTemporaryAttribute("boltTips") == null ? -1 : (int) player.getTemporaryAttribute("boltTips")); // Type of bolt tips to cut JewelleryTeleport.JewellerySlot js = (JewelleryTeleport.JewellerySlot)player.getTemporaryAttribute("jewelleryTeleport") == null ? null : (JewelleryTeleport.JewellerySlot)player.getTemporaryAttribute("jewelleryTeleport"); Console.WriteLine("ACTIONBUTTON-3 "+ id); if (JewelleryTeleport.teleport(player, id, js)) { return; } switch(id) { case 2: if (player.getDuel() != null) { if (player.getDuel().getStatus() == 6) { player.getDuel().finishDuel(true, true); player.getPackets().sendMessage("You climb through the trapdoor and forfeit the duel."); break; } break; } else if (player.getTemporaryAttribute("barrowTunnel") != null) { Barrows.verifyEnterTunnel(player); return; } else if (dialogueStatus == 1005) { Slayer.doDialogue(player, 1006); break; } else if (dialogueStatus == 1009) { Slayer.doDialogue(player, 1010); break; } else if (dialogueStatus == 1002) { Slayer.doDialogue(player, 1013); break; } else if (dialogueStatus == 1017) { Slayer.doDialogue(player, 1019); break; } else if (dialogueStatus == 1029) { Slayer.doDialogue(player, 1029); break; } else if (dialogueStatus == 1053) { Slayer.doDialogue(player, 1055); break; } else if (dialogueStatus > 1000) { Slayer.doDialogue(player, 1006); break; } else if (dialogueStatus == 7) { AgilityArena.doDialogue(player, 7); break; } else if (dialogueStatus == 29) { AgilityArena.doDialogue(player, 29); break; } else if (dialogueStatus == 37) { AgilityArena.doDialogue(player, 37); break; } else if (dialogueStatus == 46) { AgilityArena.doDialogue(player, 46); break; } else if (dialogueStatus == 79) { WarriorGuild.talkToKamfreena(player, 79); break; } else if (dialogueStatus == 103) { BrokenBarrows.showBobDialogue(player, 103); break; } else if (dialogueStatus == 109) { BrokenBarrows.showBobDialogue(player, 109); break; } else if(dialogueStatus == 159) { HomeArea.showAliDialogue(player, 159); break; } else if(dialogueStatus == 207) { AlKharid.showAliDialogue(player, 207); break; } else if(dialogueStatus == 242) { BoatOptions.showBentleyDialogue(player, 242); break; } else if (dialogueStatus == 450) { FarmingAmulet.displayAllotmentOptions(player); break; } else if (dialogueStatus == 451) { FarmingAmulet.teleportToPatch(player, 0); break; } else if (dialogueStatus == 452) { FarmingAmulet.teleportToPatch(player, 4); break; } else if (dialogueStatus == 453) { FarmingAmulet.teleportToPatch(player, 8); break; } break; case 13: if (logType != -1) { MakeBows.cutLog(player, 1, logType, 0, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay pie dish Clay.craftClay(player, 5, craftType, 1, true); break; } else if (leatherCraft != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 8)); break; } else if (craftType == 6) {// Crossbow string player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 2)); break; } break; case 12: if (logType == 0) { MakeBows.cutLog(player, 5, logType, 0, stringingBow, true); break; } else if (logType > 0){ MakeBows.cutLog(player, 1, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay pie dish Clay.craftClay(player, 10, craftType, 1, true); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 1, 4, leatherCraft, true); // Vambraces break; } else if (craftType == 6) {// Bowstring Spinning.craftSpinning(player, 1, 1, true); break; } break; case 11: if (logType == 0) { MakeBows.cutLog(player, 10, logType, 0, stringingBow, true); break; } else if (logType > 0){ MakeBows.cutLog(player, 1, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay pie dish player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 1)); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 5, 4, leatherCraft, true); // Vambraces break; } else if (craftType == 6) {// Bowstring Spinning.craftSpinning(player, 5, 1, true); break; } else if (craftType >= 120 && craftType <= 130) { // Tiara Silver.newSilverItem(player, 1, 121, true); break; } break; case 10: if (logType == 0) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 0)); break; } else if (logType > 0){ MakeBows.cutLog(player, 5, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay pot Clay.craftClay(player, 1, craftType, 0, true); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 10, 4, leatherCraft, true); // Vambraces break; } else if (craftType == 6) {// Bowstring Spinning.craftSpinning(player, 10, 1, true); break; } else if (craftType >= 120 && craftType <= 130) { // Tiara Silver.newSilverItem(player, 5, 121, true); break; } break; case 17: if (logType != -1) { MakeBows.cutLog(player, 1, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay Bowl Clay.craftClay(player, 5, craftType, 2, true); } break; case 16: if (logType != -1) { MakeBows.cutLog(player, 5, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay Bowl Clay.craftClay(player, 10, craftType, 2, true); } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 1, 8, leatherCraft, true); // Chaps break; } else if (craftType == 6) {// Crossbow string Spinning.craftSpinning(player, 1, 2, true); break; } break; case 15: if (logType != -1) { MakeBows.cutLog(player, 10, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay Bowl player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 2)); } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 5, 8, leatherCraft, true); // Chaps break; } else if (craftType == 6) {// Crossbow string Spinning.craftSpinning(player, 5, 2, true); break; } break; case 14: if (craftType == 1 || craftType == 2) { // Clay pie dish Clay.craftClay(player, 1, craftType, 1, true); break; } else if (logType == 0 && !stringingBow) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 1)); break; } else if (logType > 0){ player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 1)); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 10, 8, leatherCraft, true); // Chaps break; } else if (craftType == 6) {// Crossbow string Spinning.craftSpinning(player, 10, 2, true); break; } break; case 9: if (logType == 0) { MakeBows.cutLog(player, 1, logType, 2, false, true); break; } else if (logType > 0){ MakeBows.cutLog(player, 10, logType, 1, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay pot Clay.craftClay(player, 5, craftType, 0, true); break; } else if (leatherCraft != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 4)); break; } else if (craftType == 6) {// Bowstring player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 1)); break; } else if (craftType >= 120 && craftType <= 130) { // Tiara Silver.newSilverItem(player, 10, 121, true); break; } break; case 8: if (logType == 0) { MakeBows.cutLog(player, 5, logType, 2, false, true); break; } else if (logType > 0){ player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 1)); break; } else if (craftType == 1 || craftType == 2) { // Clay pot Clay.craftClay(player, 10, craftType, 0, true); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 1, 0, leatherCraft, true); // Body break; } else if (craftType == 6) {// Ball of wool Spinning.craftSpinning(player, 1, 0, true); break; } else if (craftType >= 120 && craftType <= 130) { // Tiara player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(303, 121)); break; } else if (dialogueStatus < 1000) { Dialogue.doDialogue(player, dialogueStatus); break; } break; case 7: if (logType == 0) { MakeBows.cutLog(player, 10, logType, 2, false, true); break; } else if (logType > 0){ MakeBows.cutLog(player, 1, logType, 0, stringingBow, true); break; } else if (craftType == 1 || craftType == 2) { // Clay pot player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 0)); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 5, 0, leatherCraft, true); // Body break; } else if (craftType == 6) {// Ball of wool Spinning.craftSpinning(player, 5, 0, true); break; } else if (craftType >= 120 && craftType <= 130) { // Unholy symbol Silver.newSilverItem(player, 1, 120, true); break; } else if (dialogueStatus > 1000) { Slayer.doDialogue(player, dialogueStatus); break; } else if (dialogueStatus < 1000) { Dialogue.doDialogue(player, dialogueStatus); break; } break; case 6: if (logType == 0 && !stringingBow) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 2)); break; } else if (stringingBow && bowType != -1) { MakeBows.cutLog(player, 1, logType, bowType, true, true); break; } else if (boltTips > -1) { MakeAmmo.makeBoltTip(player, boltTips, 1, true); break; } else if (xbowType != -1) { MakeXbow.createXbow(player, 1, xbowType, stringingBow, true); break; } else if (grindItem != -1) { Herblore.grindIngredient(player, 1, true); break; } else if (unfinishedPotion != -1) { Herblore.makeUnfinishedPotion(player, 1, true); break; } else if (completePotion != -1) { Herblore.completePotion(player, 1, true); break; } else if (cookItem != -1) { Cooking.cookItem(player, 1, true, player.getTemporaryAttribute("cookingFireLocation") != null); break; } else if (logType > 0){ MakeBows.cutLog(player, 5, logType, 0, false, true); break; } else if (leatherCraft != -1) { Leather.craftDragonHide(player, 10, 0, leatherCraft, true); // Body break; } else if (craftType == 6) {// Ball of wool Spinning.craftSpinning(player, 10, 0, true); break; } else if (craftType >= 50 && craftType <= 60) { // Cut gem Jewellery.cutGem(player, craftType, 1, true); break; } else if (craftType >= 100 && craftType <= 110) { // String amulet Jewellery.stringAmulet(player, craftType, 1, true); break; } else if (craftType >= 120 && craftType <= 130) { // Unholy symbol Silver.newSilverItem(player, 5, 120, true); break; } else if (dialogueStatus > 1000) { Slayer.doDialogue(player, dialogueStatus); break; } else if (dialogueStatus == 7) { AgilityArena.doDialogue(player, 41); break; } else if(dialogueStatus == 242) { BoatOptions.showBentleyDialogue(player, 246); break; } else if (dialogueStatus == 451 || dialogueStatus == 452 || dialogueStatus == 453) { FarmingAmulet.showOptions(player, 12622); break; } else if (dialogueStatus < 1000) { Dialogue.doDialogue(player, dialogueStatus); break; } break; case 5: if (ammoType != -1) { MakeAmmo.createAmmo(player, 1, ammoType, false, true); break; } else if (stringingBow && bowType != -1) { MakeBows.cutLog(player, 5, logType, bowType, true, true); break; } else if (boltType != -1) { MakeAmmo.createAmmo(player, 1, boltType, true, true); break; } else if (xbowType != -1) { MakeXbow.createXbow(player, 5, xbowType, stringingBow, true); break; } else if (grindItem != -1) { Herblore.grindIngredient(player, 5, true); break; } else if (unfinishedPotion != -1) { Herblore.makeUnfinishedPotion(player, 5, true); break; } else if (completePotion != -1) { Herblore.completePotion(player, 5, true); break; } else if (cookItem != -1) { Cooking.cookItem(player, 5, true, player.getTemporaryAttribute("cookingFireLocation") != null); break; } else if (logType != -1) { MakeBows.cutLog(player, 10, logType, 0, false, true); break; } else if (dialogueStatus == 1002) { Slayer.doDialogue(player, 1024); break; } else if (dialogueStatus == 1053) { Slayer.doDialogue(player, 1061); break; } else if (dialogueStatus > 1000) { Slayer.doDialogue(player, dialogueStatus); break; } else if (dialogueStatus == 7) { AgilityArena.doDialogue(player, 34); break; } else if (leatherCraft != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 0)); break; } else if (craftType == 6) {// Ball of wool player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(304, 0)); break; } else if (craftType >= 50 && craftType <= 60) { // Cut gem Jewellery.cutGem(player, craftType, 5, true); break; } else if (craftType >= 100 && craftType <= 110) { // String amulet Jewellery.stringAmulet(player, craftType, 5, true); break; } else if (craftType >= 120 && craftType <= 130) { // Unholy symbol Silver.newSilverItem(player, 10, 120, true); break; } else if (dialogueStatus == 46) { AgilityArena.doDialogue(player, 54); break; } else if(dialogueStatus == 242) { BoatOptions.showBentleyDialogue(player, 245); break; } else if (dialogueStatus == 451) { FarmingAmulet.teleportToPatch(player, 3); break; } else if (dialogueStatus == 452) { FarmingAmulet.teleportToPatch(player, 7); break; } else if (dialogueStatus == 453) { FarmingAmulet.teleportToPatch(player, 11); break; } else if (dialogueStatus == 450) { player.getPackets().closeInterfaces(); break; } else if (dialogueStatus != -1 && dialogueStatus < 1000){ Dialogue.doDialogue(player, dialogueStatus); break; } else if (boltTips > -1) { MakeAmmo.makeBoltTip(player, boltTips, 5, true); break; } break; case 4: if (ammoType != -1) { MakeAmmo.createAmmo(player, 5, ammoType, false, true); break; } else if (boltType != -1) { MakeAmmo.createAmmo(player, 5, boltType, true, true); break; } else if (xbowType != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 0)); break; } else if (stringingBow && bowType != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 1)); break; } else if (grindItem != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 2)); break; } else if (unfinishedPotion != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 3)); break; } else if (completePotion != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 4)); break; } else if (cookItem != -1) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 5)); break; } else if (logType != -1){ player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 0)); break; } else if (craftType >= 50 && craftType <= 60) { // Cut gem player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, craftType)); break; } else if (craftType >= 100 && craftType <= 110) { // String amulet player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, craftType)); break; } else if (craftType >= 120 && craftType <= 130) { // Unholy symbol player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(303, 120)); break; } else if (dialogueStatus == 1053) { Slayer.doDialogue(player, 1059); break; } else if (dialogueStatus == 1002) { Slayer.doDialogue(player, 1025); break; } else if (dialogueStatus == 7) { AgilityArena.doDialogue(player, 24); break; } else if (dialogueStatus == 46) { AgilityArena.doDialogue(player, 51); break; } else if (dialogueStatus == 109) { BrokenBarrows.showBobDialogue(player, 114); break; } else if (dialogueStatus == 140 || dialogueStatus == 141) { player.getPackets().closeInterfaces(); break; } else if(dialogueStatus == 159) { HomeArea.showAliDialogue(player, 177); break; } else if(dialogueStatus == 242) { BoatOptions.showBentleyDialogue(player, 244); break; } else if (boltTips > -1) { // Cut bolt tips player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(309, 6)); break; } else if (dialogueStatus == 451) { FarmingAmulet.teleportToPatch(player, 2); break; } else if (dialogueStatus == 452) { FarmingAmulet.teleportToPatch(player, 6); break; } else if (dialogueStatus == 450) { FarmingAmulet.displayFruitTreeOptions(player); break; } else if (dialogueStatus == 453) { FarmingAmulet.teleportToPatch(player, 10); break; } break; case 3: if (player.getDuel() != null) { player.getPackets().closeChatboxInterface(); break; } else if (ammoType != -1) { MakeAmmo.createAmmo(player, 10, ammoType, false, true); break; } else if (boltType != -1) { MakeAmmo.createAmmo(player, 10, boltType, true, true); break; } else if (stringingBow && bowType != -1) { MakeBows.cutLog(player, player.getInventory().getItemAmount(1777), logType, bowType, true, true); break; } else if (xbowType != -1) { MakeXbow.createXbow(player, player.getInventory().getItemAmount(9438), xbowType, stringingBow, true); break; } else if (grindItem != -1) { Herblore.grindIngredient(player, 28, true); break; } else if (unfinishedPotion != -1) { Herblore.makeUnfinishedPotion(player, 28, true); break; } else if (completePotion != -1) { Herblore.completePotion(player, 28, true); break; } else if (cookItem != -1) { Cooking.cookItem(player, 28, true, player.getTemporaryAttribute("cookingFireLocation") != null); break; } else if (bowType != -1 && logType != -1) { MakeBows.cutLog(player, 10, logType, bowType, false, true); break; } else if (craftType >= 50 && craftType <= 60) { // Cut gem Jewellery.cutGem(player, craftType, 27, true); break; } else if (craftType >= 100 && craftType <= 110) { // String amulet Jewellery.stringAmulet(player, craftType, 27, true); break; } else if (craftType >= 120 && craftType <= 130) { // Unholy symbol Silver.newSilverItem(player, 27, 120, true); break; } else if (dialogueStatus == 1017) { Slayer.doDialogue(player, 1017); break; } else if (dialogueStatus == 1053) { Slayer.doDialogue(player, 1057); break; } else if (dialogueStatus == 1002) { Slayer.doDialogue(player, 1021); break; } else if (dialogueStatus > 1000) { Slayer.doDialogue(player, dialogueStatus); break; } else if (dialogueStatus == 7) { AgilityArena.doDialogue(player, 17); break; } else if (dialogueStatus == 29) { AgilityArena.doDialogue(player, 33); break; } else if (dialogueStatus == 37) { AgilityArena.doDialogue(player, 39); break; } else if (dialogueStatus == 46) { AgilityArena.doDialogue(player, 48); break; } else if (dialogueStatus == 79) { WarriorGuild.talkToKamfreena(player, 80); break; } else if (dialogueStatus == 103) { BrokenBarrows.showBobDialogue(player, 105); break; } else if (dialogueStatus == 109) { BrokenBarrows.showBobDialogue(player, 111); break; } else if(dialogueStatus == 159) { HomeArea.showAliDialogue(player, 162); break; } else if(dialogueStatus == 207) { AlKharid.showAliDialogue(player, 210); break; } else if(dialogueStatus == 242) { BoatOptions.showBentleyDialogue(player, 243); break; } else if (boltTips > -1) { MakeAmmo.makeBoltTip(player, boltTips, player.getInventory().getItemAmount((int)FletchingData.GEMS[boltTips][0]), true); break; } else if (dialogueStatus == 451) { FarmingAmulet.teleportToPatch(player, 1); break; } else if (dialogueStatus == 450) { FarmingAmulet.displayTreeOptions(player); break; } else if (dialogueStatus == 452) { FarmingAmulet.teleportToPatch(player, 5); break; } else if (dialogueStatus == 453) { FarmingAmulet.teleportToPatch(player, 9); break; } break; case 21: if (logType == 0) { MakeBows.cutLog(player, 1, logType, 3, false, true); break; } else if (craftType == 1 || craftType == 2) { // Clay plant pot Clay.craftClay(player, 5, craftType, 3, true); break; } break; case 20: if (logType == 0) { MakeBows.cutLog(player, 5, logType, 3, false, true); break; } else if (craftType == 1 || craftType == 2) { // Clay plant pot Clay.craftClay(player, 10, craftType, 3, true); break; } break; case 19: if (logType == 0) { MakeBows.cutLog(player, 10, logType, 3, false, true); break; } else if (craftType == 1 || craftType == 2) { // Clay plant pot player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 3)); break; } break; case 18: if (logType == 0) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(305, 3)); break; } else if (craftType == 1 || craftType == 2) { // Clay Bowl Clay.craftClay(player, 1, craftType, 2, true); break; } break; case 22: if (craftType == 1 || craftType == 2) { // Clay plant pot Clay.craftClay(player, 1, craftType, 3, true); break; } break; case 26: if (craftType == 1 || craftType == 2) { // Clay lid Clay.craftClay(player, 1, craftType, 4, true); break; } break; case 25: if (craftType == 1 || craftType == 2) { // Clay lid Clay.craftClay(player, 5, craftType, 4, true); break; } break; case 24: if (craftType == 1 || craftType == 2) { // Clay lid Clay.craftClay(player, 10, craftType, 4, true); break; } break; case 23: if (craftType == 1 || craftType == 2) { // Clay lid player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(306, 4)); break; } break; case 1: switch(id) { case 1: if (dialogueStatus == 1002) { Slayer.doDialogue(player, dialogueStatus); break; } else if (dialogueStatus == 1053) { Slayer.doDialogue(player, dialogueStatus); break; } break; } break; default: Console.WriteLine("ACTIONBUTTON3 = " + id); break; } if (dialogueStatus == -1) { player.getPackets().closeInterfaces(); } }
private void handleClickFive(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 5: interfaceId: " + interfaceId); switch(interfaceId) { case 763: // Bank inventory - X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 762: // Bank - X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 336: // Trade inventory - trade X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 335: // Trade interface - remove X. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; case 631: // Duel interface - remove All if (player.getDuel() != null) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); break; } break; case 620: // Shop - buy X/buy 50. if (player.getShopSession().isInMainStock()) { player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(interfaceId, slot)); } else { player.getShopSession().buyItem(slot, 50); } break; case 621: // Shop - Sell 50. player.getShopSession().sellItem(slot, 50); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - sergeant. clan.setEnterRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - sergeant. clan.setTalkRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - sergeant. clan.setKickRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - sergeant. clan.setLootRights(Clan.ClanRank.SERGEANT); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleClickSeven(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 7: interfaceId: " + interfaceId); switch(interfaceId) { case 762: // Bank - All but one. player.getBank().withdraw(slot, player.getBank().getAmountInSlot(slot) - 1); player.getBank().refreshBank(); break; case 336: // Trade inventory - trade all. //player.getTrade().lendItem(slot); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - captain. clan.setEnterRights(Clan.ClanRank.CAPTAIN); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - captain. clan.setTalkRights(Clan.ClanRank.CAPTAIN); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - captain. clan.setKickRights(Clan.ClanRank.CAPTAIN); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - captain. clan.setLootRights(Clan.ClanRank.CAPTAIN); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handlePickupItem(Player player, Packet packet) { int x = packet.readLEShort(); int id = packet.readUShort(); int y = packet.readLEShortA(); Location l = new Location(x, y, player.getLocation().getZ()); SkillHandler.resetAllSkills(player); if (x < 1000 || y < 1000 | id < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } player.getPackets().closeInterfaces(); if(player.getLocation().Equals(l)) { Server.getGroundItems().pickupItem(player, id, player.getLocation()); return; } CoordinateEvent pickupItemCoordinateEvent = new CoordinateEvent(player, l); pickupItemCoordinateEvent.setAction(() => { Server.getGroundItems().pickupItem(player, id, player.getLocation()); }); Server.registerCoordinateEvent(pickupItemCoordinateEvent); }
private void handleClickThree(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 3: interfaceId: " + interfaceId); switch(interfaceId) { case 154: // Craft normal leather. Leather.craftNormalLeather(player, child, player.getInventory().getItemAmount(1741), true); break; case 542: // Glassblowing. int totalGlass = player.getInventory().getItemAmount(1775); switch(child) { case 40: // Make all beer glass. Glass.craftGlass(player, totalGlass, 0, true); break; case 41: // Make all candle lantern. Glass.craftGlass(player, totalGlass, 1, true); break; case 42: // Make all oil lamp. Glass.craftGlass(player, totalGlass, 2, true); break; case 38: // Make all vial. Glass.craftGlass(player, totalGlass, 3, true); break; case 44: // Make all Fishbowl Glass.craftGlass(player, totalGlass, 4, true); break; case 39: // Make all orb. Glass.craftGlass(player, totalGlass, 5, true); break; case 43: // Make all lantern lens Glass.craftGlass(player, totalGlass, 6, true); break; case 45: // Make all dorgeshuun light orb. Glass.craftGlass(player, totalGlass, 7, true); break; } break; case 763: // Bank inventory - 10. player.getBank().deposit(slot, 10); player.getBank().refreshBank(); break; case 762: // Bank - 10. player.getBank().withdraw(slot, 10); player.getBank().refreshBank(); break; case 336: // Trade/stake inventory - trade 10. if (player.getTrade() != null) { player.getTrade().tradeItem(slot, 10); break; } if (player.getDuel() != null) { player.getDuel().stakeItem(slot, 10); break; } break; case 335: // Trade interface - remove 10. player.getTrade().removeItem(slot, 10); break; case 631: // Duel interface - remove 10. if (player.getDuel() != null) { player.getDuel().removeItem(slot, 5); break; } break; case 620: // Shop - buy 5. player.getShopSession().buyItem(slot, 5); break; case 621: // Shop - sell 5. player.getShopSession().sellItem(slot, 5); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - recruit. clan.setEnterRights(Clan.ClanRank.RECRUIT); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - recruit. clan.setTalkRights(Clan.ClanRank.RECRUIT); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 26: // "Who can share loot" - recruit. clan.setLootRights(Clan.ClanRank.RECRUIT); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleItemOnGroundItem(Player player, Packet packet) { int objectX = packet.readLEShortA(); int itemSlot = packet.readLEShort(); int itemIdInInventory = packet.readLEShort(); int itemIdOnGround = packet.readLEShort(); int objectY = packet.readLEShortA(); int interfaceId = packet.readLEShort(); int child = packet.readUShort(); if (itemSlot > 28 || itemSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) return; if (Firemaking.isFiremaking(player, itemIdInInventory, itemIdOnGround, itemSlot, -1)) return; else player.getPackets().sendMessage("Nothing interesting happens."); }
private void handleDropItem(Player player, Packet packet) { int item = packet.readShortA(); int slot = packet.readShortA(); int interfaceId = packet.readLEShort(); int childId = packet.readUShort(); if (slot > 28 || slot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } SkillHandler.resetAllSkills(player); if (player.getInventory().getItemInSlot(slot) == item) { player.getPackets().closeInterfaces(); if (ItemData.isPlayerBound(player.getInventory().getItemInSlot(slot))) { Item[] items = {new Item(player.getInventory().getItemInSlot(slot), 1)}; //player.getPackets().sendItems(94, 0, 93, items); player.getPackets().modifyText("Are you sure you want to destroy this item?", 94, 3); // Title //player.getPackets().modifyText("Yes", 94, 4); // Yes //player.getPackets().modifyText("No", 94, 5); // No player.getPackets().modifyText("", 94, 10); // Line 1 player.getPackets().modifyText("If you wish to get another Fire cape, you must", 94, 11); // Line 2 player.getPackets().modifyText("complete the Fight cave minigame again.", 94, 12); // Line 3 player.getPackets().modifyText("Fire Cape", 94, 13); // Item name player.getPackets().sendChatboxInterface(94); return; } int id = player.getInventory().getItemInSlot(slot); int amt = player.getInventory().getAmountInSlot(slot); GroundItem i = new GroundItem(id, amt, new Location(player.getLocation().getX(), player.getLocation().getY(), player.getLocation().getZ()), player); if (player.getInventory().deleteItem(id, slot, amt)) { if (!Server.getGroundItems().addToStack(id, amt, player.getLocation(), player)) { Server.getGroundItems().newEntityDrop(i); } } } }
private void handleItemOnObject(Player player, Packet packet) { int objectX = packet.readShortA(); int item = packet.readUShort(); int objectY = packet.readLEShort(); int slot = packet.readUShort(); int interfaceId = packet.readLEShort(); int child = packet.readUShort(); int objectId = packet.readShortA(); if (slot > 28 || slot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } Console.WriteLine("Item on object = " + objectId + " " + objectX + " " + objectY); SkillHandler.resetAllSkills(player); player.getPackets().closeInterfaces(); player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ())); if (player.getInventory().getItemInSlot(slot) == item) { if (Crafting.wantsToCraftOnObject(player, player.getInventory().getItemInSlot(slot), objectId)) { return; } else if (Farming.interactWithPatch(player, objectId, objectX, objectY, player.getInventory().getItemInSlot(slot))) { return; } else if (WarriorGuild.useAnimator(player, player.getInventory().getItemInSlot(slot), objectId, objectX, objectY)) { return; } if (player.getInventory().getItemInSlot(slot) == 7936) { if (RuneCraft.wantToRunecraft(player, objectId, objectX, objectY)) { return; } if (RuneCraft.useTalisman(player, objectId, objectX, objectY)) { return; } } switch(objectId) { case 6: // Cannon: DwarfCannon cannon = player.getCannon(); Location l = new Location(objectX, objectY, player.getLocation().getZ()); if (cannon == null || (cannon != null & !l.withinDistance(cannon.getLocation(), 2))) { player.getPackets().sendMessage("This isn't your cannon!"); break; } cannon.loadCannon(); break; case 36781: // Lumbridge fountain. case 24214: // Fountain in east Varrock. case 24265: // Varrock main fountain. case 11661: // Falador waterpump. case 11759: // Falador south fountain. case 879: // Camelot fountains. case 29529: // Sink. case 874: // Sink. if (FillVial.fillingVial(player, new Location(objectX, objectY, player.getLocation().getZ())) && player.getInventory().getItemInSlot(slot) == 229) { break; } break; case 2728: // Range in Catherby if (Cooking.isCooking(player, player.getInventory().getItemInSlot(slot), false, -1, -1)) { break; } break; case 2732: // Fire if (Cooking.isCooking(player, player.getInventory().getItemInSlot(slot), true, objectX, objectY)) { break; } break; case 36956: // Lumbridge furnace case 11666: // Falador furnace if (Smelting.wantToSmelt(player, player.getInventory().getItemInSlot(slot))) { break; } else if (Crafting.wantsToCraftOnObject(player, player.getInventory().getItemInSlot(slot), objectId)) { break; } break; case 2783: // Anvil if (Smithing.wantToSmithOnAnvil(player, player.getInventory().getItemInSlot(slot), new Location(objectX, objectY, player.getLocation().getZ()))) { break; } break; default: player.getPackets().sendMessage("Nothing interesting happens."); break; } } }
private void handleItemOnItem(Player player, Packet packet) { int itemSlot = packet.readUShort(); int unused = packet.readInt(); int withSlot = packet.readLEShort(); int unused2 = packet.readInt(); int itemUsed = packet.readLEShortA(); int usedWith = packet.readLEShortA(); if (itemSlot > 28 || itemSlot < 0 || withSlot > 28 || withSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } SkillHandler.resetAllSkills(player); player.getPackets().closeInterfaces(); if (player.getInventory().getSlot(itemSlot).getItemId() == itemUsed && player.getInventory().getSlot(withSlot).getItemId() == usedWith) { if (Fletching.isFletching(player, itemUsed, usedWith)) { return; } else if (Herblore.doingHerblore(player, itemUsed, usedWith)) { return; } else if (Herblore.mixDoses(player, itemUsed, usedWith, itemSlot, withSlot)) { return; } else if (Crafting.wantsToCraft(player, itemUsed, usedWith)) { return; } else if (Firemaking.isFiremaking(player, itemUsed, usedWith, itemSlot, withSlot)) { return; } else if (Farming.plantSapling(player, itemUsed, usedWith)) { return; } else { player.getPackets().sendMessage("Nothing interesting happens."); } } }
private void handleActionButton(Player player, Packet packet) { int interfaceId = packet.readUShort(); ushort buttonId = packet.readUShort(); ushort buttonId2 = 0; if(packet.getLength() >= 6) { buttonId2 = packet.readUShort(); } if(buttonId2 == 65535) { buttonId2 = 0; } Console.WriteLine("button = " + interfaceId + " " +buttonId + " " +buttonId2); switch(interfaceId) { case 751: switch(buttonId) { case 27: // Report Abuse button click //This is just a test. (you need to code a Static Handler for ReportAbuse. player.getPackets().displayInterface(553); //Opens Report Abuse box break; } break; case 374: // Tzhaar fight pits viewing orb Server.getMinigames().getFightPits().useOrb(player, buttonId); break; case 389: // GE Item Search "X" for closing it. player.getPackets().sendInterface(0, 752, 6, 137); // Removes the item search break; case 107: // GE Sell inventory. if (player.getGESession() == null) { break; } switch(buttonId) { case 18: // Offer player.getGESession().offerSellItem(buttonId2); break; } break; case 105: // GE interface if (player.getGESession() == null) { break; } switch(buttonId) { case 209: // Collect-notes player.getGESession().collectSlot1(true); break; case 203: // Abort offer player.getGESession().abortOffer(); break; case 31: // Sell, box 1 player.getGESession().newSellOffer(0); break; case 30: // Buy, box 1 player.getGESession().newBuyOffer(0); break; case 18: // Check status, box 1 player.getGESession().checkOffer(0); break; case 46: // Buy, box 2 player.getGESession().newBuyOffer(1); break; case 47: // Sell, box 2 player.getGESession().newSellOffer(1); break; case 34: // Check status, box 2 player.getGESession().checkOffer(1); break; case 62: // Buy, box 3 player.getGESession().newBuyOffer(2); break; case 63: // Sell, box 3 player.getGESession().newSellOffer(2); break; case 50: // Check status, box 3 player.getGESession().checkOffer(2); break; case 81: // Buy, box 4 player.getGESession().newBuyOffer(3); break; case 82: // Sell, box 4 player.getGESession().newSellOffer(3); break; case 69: // Check status, box 4 player.getGESession().checkOffer(3); break; case 100: // Buy, box 5 player.getGESession().newBuyOffer(4); break; case 101: // Sell, box 5 player.getGESession().newSellOffer(4); break; case 88: // Check status, box 5 player.getGESession().checkOffer(4); break; case 119: // Buy, box 6 player.getGESession().newBuyOffer(5); break; case 120: // Sell, box 6 player.getGESession().newSellOffer(5); break; case 107: // Check status, box 6 player.getGESession().checkOffer(5); break; case 127: // The "back" button player.getGESession().goBackToGrandExchange(); break; case 194: // Search for item player.getGESession().openItemSearch(); break; case 159: // Increment amount by 1 player.getGESession().incrementAmount(1, false); break; case 157: // Decrease amount by 1 player.getGESession().decreaseAmount(1); break; case 162: // Increase amount by +1 player.getGESession().incrementAmount(1, true); break; case 164: // Increase amount by +10 player.getGESession().incrementAmount(10, true); break; case 166: // Increase amount by +100 player.getGESession().incrementAmount(100, true); break; case 168: // Increase amount by +1k (or All if selling) player.getGESession().incrementAmount(1000, true); break; case 170: //custom enter quantity player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(105, 0)); break; case 185: //custom enter per price player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(105, 1)); break; case 177: // Set price to minimum player.getGESession().setPrice(0); break; case 180: // Set price to medium player.getGESession().setPrice(1); break; case 183: // Set price to maximum player.getGESession().setPrice(2); break; case 171: // Set price -1 player.getGESession().setPrice(3); break; case 173: // Set price +1 player.getGESession().setPrice(4); break; case 190: // Confirm offer player.getGESession().confirmOffer(); break; } break; case 161: // Slayer points interfaces case 163: case 164: Slayer.handlePointsInterface(player, interfaceId, buttonId); break; case 675: // Craft jewellery: player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(675, buttonId)); break; case 154: // Craft normal leather. Leather.craftNormalLeather(player, buttonId, 1, true); break; case 542: // Craft glass. switch (buttonId) { case 40: // Make 1 beer glass. Glass.craftGlass(player, 1, 0, true); break; case 41: // Make 1 candle lantern. Glass.craftGlass(player, 1, 1, true); break; case 42: // Make 1 oil lamp. Glass.craftGlass(player, 1, 2, true); break; case 38: // Make 1 vial. Glass.craftGlass(player, 1, 3, true); break; case 44: // Make 1 Fishbowl Glass.craftGlass(player, 1, 4, true); break; case 39: // Make 1 orb. Glass.craftGlass(player, 1, 5, true); break; case 43: // Make 1 lantern lens Glass.craftGlass(player, 1, 6, true); break; case 45: // Make 1 dorgeshuun light orb. Glass.craftGlass(player, 1, 7, true); break; } break; case 271 : // Prayer tab. if (!Prayer.canUsePrayer(player, buttonId)) { Prayer.deactivateAllPrayers(player); break; } switch(buttonId) { case 5: // Thick skin. Prayer.togglePrayer(player, PrayerData.Prayer.THICK_SKIN); break; case 15: // Rock skin. Prayer.togglePrayer(player, PrayerData.Prayer.ROCK_SKIN); break; case 31: // Steel skin. Prayer.togglePrayer(player, PrayerData.Prayer.STEEL_SKIN); break; case 7: // Burst of strength. Prayer.togglePrayer(player, PrayerData.Prayer.BURST_OF_STRENGTH); break; case 17: // Superhuman strength. Prayer.togglePrayer(player, PrayerData.Prayer.SUPERHUMAN_STRENGTH); break; case 33: // Ultimate strength. Prayer.togglePrayer(player, PrayerData.Prayer.ULTIMATE_STRENGTH); break; case 9: // Clarity of thought. Prayer.togglePrayer(player, PrayerData.Prayer.CLARITY_OF_THOUGHT); break; case 19: // Improved reflexes. Prayer.togglePrayer(player, PrayerData.Prayer.IMPROVED_REFLEXES); break; case 35: // Incredible reflexes. Prayer.togglePrayer(player, PrayerData.Prayer.INCREDIBLE_REFLEXES); break; case 37: // Magic protect. Prayer.togglePrayer(player, PrayerData.Prayer.PROTECT_FROM_MAGIC); break; case 39: // Ranged protect. Prayer.togglePrayer(player, PrayerData.Prayer.PROTECT_FROM_RANGED); break; case 41: // Melee protect. Prayer.togglePrayer(player, PrayerData.Prayer.PROTECT_FROM_MELEE); break; case 47: // Retribution. Prayer.togglePrayer(player, PrayerData.Prayer.RETRIBUTION); break; case 49: // Redemption. Prayer.togglePrayer(player, PrayerData.Prayer.REDEMPTION); break; case 51: // Smite. Prayer.togglePrayer(player, PrayerData.Prayer.SMITE); break; case 55: // Chivalry. Prayer.togglePrayer(player, PrayerData.Prayer.CHIVALRY); break; case 57: // Piety. Prayer.togglePrayer(player, PrayerData.Prayer.PIETY); break; case 25: // Protect item. Prayer.togglePrayer(player, PrayerData.Prayer.PROTECT_ITEM); break; case 21: // Rapid restore Prayer.togglePrayer(player, PrayerData.Prayer.RAPID_RESTORE); break; case 23: // Rapid heal. Prayer.togglePrayer(player, PrayerData.Prayer.RAPID_HEAL); break; case 11: // Sharp eye. Prayer.togglePrayer(player, PrayerData.Prayer.SHARP_EYE); break; case 27: // Hawk Eye. Prayer.togglePrayer(player, PrayerData.Prayer.HAWK_EYE); break; case 43: // Eagle Eye. Prayer.togglePrayer(player, PrayerData.Prayer.EAGLE_EYE); break; case 13: // Mystic will. Prayer.togglePrayer(player, PrayerData.Prayer.MYSTIC_WILL); break; case 29: // Mystic Lore. Prayer.togglePrayer(player, PrayerData.Prayer.MYSTIC_LORE); break; case 45: // Mystic Might. Prayer.togglePrayer(player, PrayerData.Prayer.MYSTIC_MIGHT); break; } break; case 90: // Staff attack interface. switch(buttonId) { case 5: // Select spell (Magic XP) MagicData.configureSelectSpellInterface(player); break; case 9: // Auto retaliate. player.toggleAutoRetaliate(); break; default: MagicData.cancelAutoCast(player, true); AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 388: // Ancient magic autocast select spell. switch(buttonId) { case 0: // Smoke rush. MagicData.setAutoCastSpell(player, 16, 8, true); break; case 1: // Shadow rush. MagicData.setAutoCastSpell(player, 17, 12, true); break; case 2: // Blood rush. MagicData.setAutoCastSpell(player, 18, 4, true); break; case 3: // Ice rush. MagicData.setAutoCastSpell(player, 19, 0, true); break; case 4: // Smoke burst. MagicData.setAutoCastSpell(player, 20, 10, true); break; case 5: // Shadow burst. MagicData.setAutoCastSpell(player, 21, 14, true); break; case 6: // Blood burst. MagicData.setAutoCastSpell(player, 22, 6, true); break; case 7: // Ice burst. MagicData.setAutoCastSpell(player, 23, 2, true); break; case 8: // Smoke blitz. MagicData.setAutoCastSpell(player, 24, 9, true); break; case 9: // Shadow blitz. MagicData.setAutoCastSpell(player, 25, 13, true); break; case 10: // Blood blitz. MagicData.setAutoCastSpell(player, 26, 5, true); break; case 11: // Ice blitz. MagicData.setAutoCastSpell(player, 27, 1, true); break; case 12: // Smoke barrage. MagicData.setAutoCastSpell(player, 28, 11, true); break; case 13: // Shadow barrage. MagicData.setAutoCastSpell(player, 29, 15, true); break; case 14: // Blood barrage. MagicData.setAutoCastSpell(player, 30, 7, true); break; case 15: // Ice barrage. MagicData.setAutoCastSpell(player, 31, 3, true); break; case 16: // Cancel. MagicData.cancelAutoCast(player, false); break; } break; case 406: // Void knight mace autocast select spell. switch(buttonId) { case 0: // Crumble undead. MagicData.setAutoCastSpell(player, 32, 22, false); break; case 1: // Guthix claws. MagicData.setAutoCastSpell(player, 34, 42, false); break; case 2: // Wind wave. MagicData.setAutoCastSpell(player, 12, 45, false); break; case 3: // Water wave. MagicData.setAutoCastSpell(player, 13, 48, false); break; case 4: // Earth wave. MagicData.setAutoCastSpell(player, 14, 52, false); break; case 5: // Fire wave. MagicData.setAutoCastSpell(player, 15, 55, false); break; case 6: // Cancel. MagicData.cancelAutoCast(player, false); break; } break; case 310: // Slayer staff autocast select spell. switch(buttonId) { case 0: // Crumble undead. MagicData.setAutoCastSpell(player, 32, 22, false); break; case 1: // Slayer dart. MagicData.setAutoCastSpell(player, 33, 31, false); break; case 2: // Wind wave. MagicData.setAutoCastSpell(player, 12, 45, false); break; case 3: // Water wave. MagicData.setAutoCastSpell(player, 13, 48, false); break; case 4: // Earth wave. MagicData.setAutoCastSpell(player, 14, 52, false); break; case 5: // Fire wave. MagicData.setAutoCastSpell(player, 15, 55, false); break; case 6: // Cancel. MagicData.cancelAutoCast(player, false); break; } break; case 319: // Normal magic autocast select spell. switch(buttonId) { case 0: // Wind strike. MagicData.setAutoCastSpell(player, 0, 1, false); break; case 1: // Water strike. MagicData.setAutoCastSpell(player, 1, 4, false); break; case 2: // Earth strike. MagicData.setAutoCastSpell(player, 2, 6, false); break; case 3: // Fire strike. MagicData.setAutoCastSpell(player, 3, 8, false); break; case 4: // Wind bolt. MagicData.setAutoCastSpell(player, 4, 10, false); break; case 5: // Water bolt. MagicData.setAutoCastSpell(player, 5, 14, false); break; case 6: // Earth bolt. MagicData.setAutoCastSpell(player, 6, 17, false); break; case 7: // Fire bolt. MagicData.setAutoCastSpell(player, 7, 20, false); break; case 8: // Wind blast. MagicData.setAutoCastSpell(player, 8, 24, false); break; case 9: // Water blast. MagicData.setAutoCastSpell(player, 9, 27, false); break; case 10: // Earth blast. MagicData.setAutoCastSpell(player, 10, 33, false); break; case 11: // Fire blast. MagicData.setAutoCastSpell(player, 11, 38, false); break; case 12: // Wind wave. MagicData.setAutoCastSpell(player, 12, 45, false); break; case 13: // Water wave. MagicData.setAutoCastSpell(player, 13, 48, false); break; case 14: // Earth wave. MagicData.setAutoCastSpell(player, 14, 52, false); break; case 15: // Fire wave. MagicData.setAutoCastSpell(player, 15, 55, false); break; case 16: // Cancel. MagicData.cancelAutoCast(player, false); break; } break; case 182: // Logout tab. player.getPackets().logout(); break; case 261: // Settings tab. switch(buttonId) { case 16: // Display settings. player.getPackets().displayInterface(742); break; case 18: // Audio settings. player.getPackets().displayInterface(743); break; case 3: // Run toggle. if(!player.getWalkingQueue().isRunToggled()) { player.getWalkingQueue().setRunToggled(true); player.getPackets().sendConfig(173, 1); } else { player.getWalkingQueue().setRunToggled(false); player.getPackets().sendConfig(173, 0); } break; case 4: // Chat effect toggle. if(!player.isChatEffectsEnabled()) { player.setChatEffectsEnabled(true); player.getPackets().sendConfig(171, 0); } else { player.setChatEffectsEnabled(false); player.getPackets().sendConfig(171, 1); } break; case 5: // Split private chat toggle. if(!player.isPrivateChatSplit()) { player.setPrivateChatSplit(true); player.getPackets().sendConfig(287, 1); } else { player.setPrivateChatSplit(false); player.getPackets().sendConfig(287, 0); } break; case 7: // Accept aid toggle. if(!player.isAcceptAidEnabled()) { player.setAcceptAidEnabled(true); player.getPackets().sendConfig(427, 1); } else { player.setAcceptAidEnabled(false); player.getPackets().sendConfig(427, 0); } break; case 6: // Mouse buttons toggle. if(!player.isMouseTwoButtons()) { player.setMouseTwoButtons(true); player.getPackets().sendConfig(170, 0); } else { player.setMouseTwoButtons(false); player.getPackets().sendConfig(170, 1); } break; } break; case 589: // Clan chat if (buttonId == 9) { foreach(long friend in player.getFriends().getFriendsList()) { player.getPackets().sendFriend(friend, player.getFriends().getWorld(friend)); } Server.getClanManager().openClanSetup(player); break; } break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { break; } switch(buttonId) { case 22: // Clan name player.getPackets().displayEnterText("Enter clan name :"); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(590, 0)); break; case 23: // "Who can enter chat" - anyone. clan.setEnterRights(Clan.ClanRank.NO_RANK); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - anyone. clan.setTalkRights(Clan.ClanRank.NO_RANK); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 26: // "Who can share loot" - anyone. clan.setLootRights(Clan.ClanRank.NO_RANK); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; case 763: // Bank inventory switch(buttonId) { case 0: // Deposit 1. player.getBank().deposit(buttonId2, 1); player.getBank().refreshBank(); break; } break; case 762: // Bank switch(buttonId) { case 73: // withdraw 1. player.getBank().withdraw(buttonId2, 1); player.getBank().refreshBank(); break; case 16: // Note item. player.getBank().asNote(); break; case 41: // first (main) bank tab player.getBank().setCurrentTab(10); break; case 39: // first bank tab player.getBank().setCurrentTab(2); break; case 37: // second bank tab player.getBank().setCurrentTab(3); break; case 35: // third bank tab player.getBank().setCurrentTab(4); break; case 33: // fourth bank tab player.getBank().setCurrentTab(5); break; case 31: // fifth bank tab player.getBank().setCurrentTab(6); break; case 29: // sixth bank tab player.getBank().setCurrentTab(7); break; case 27: // seventh bank tab player.getBank().setCurrentTab(8); break; case 25: // eighth bank tab player.getBank().setCurrentTab(9); break; } break; case 626: // Stake duel confirmation interface. if (buttonId == 53) { if (player.getDuel() != null) { player.getDuel().acceptDuel(); break; } } break; case 631: // Stake duel first interface. if (player.getDuel() != null) { if (buttonId == 103) { player.getDuel().removeItem(buttonId2, 1); break; } else { player.getDuel().toggleDuelRules(buttonId); break; } } break; case 387: // Equipment tab. switch(buttonId) { case 55: // Character display. player.getEquipment().displayEquipmentScreen(); break; case 52: // Items kept on death. ProtectedItems.displayItemsInterface(player); break; } break; case 274: // Quest tab. switch(buttonId) { case 3: // Achievment diary toggle. player.getPackets().sendTab(85, 259); player.setAchievementDiaryTab(true); break; } break; case 259: // Achievment diary tab. switch(buttonId) { case 8: // Quest tab toggle. player.getPackets().sendTab(85, 274); player.setAchievementDiaryTab(false); break; } break; case 620: // Shop interface. if (player.getShopSession() == null) { return; } switch(buttonId) { case 26: // Player stock tab. player.getShopSession().openPlayerShop(); break; case 25: // Main stock tab. player.getShopSession().openMainShop(); break; case 23: // Value (main stock) case 24: // Value (player stock) player.getShopSession().valueItem(buttonId2, false); break; } break; case 621: // Shop inventory. if (player.getShopSession() == null) { return; } switch(buttonId) { case 0: // Value (player stock) player.getShopSession().valueItem(buttonId2, true); break; } break; case 192: // Normal Magic tab. switch(buttonId) { case 0: // Home Teleport. Teleport.homeTeleport(player); break; case 15: // Varrock teleport. Teleport.teleport(player, 0); break; case 18: // Lumbridge teleport. Teleport.teleport(player, 1); break; case 21: // Falador teleport. Teleport.teleport(player, 2); break; case 23: // POH teleport. player.getPackets().sendMessage("This teleport is unavailable."); break; case 26: // Camelot teleport. Teleport.teleport(player, 3); break; case 32: // Ardougne teleport. Teleport.teleport(player, 4); break; case 37: // Watchtower teleport. player.getPackets().sendMessage("This teleport is unavailable."); //Teleport.teleport(player, 5); break; case 44: // Trollheim teleport. Teleport.teleport(player, 6); break; case 47: // Ape Atoll teleport. player.getPackets().sendMessage("This teleport is unavailable."); break; case 58: // Charge. MagicCombat.castCharge(player); break; } break; case 193: // Ancient magic tab. switch(buttonId) { case 20: // Paddewwa teleport. Teleport.teleport(player, 7); break; case 21: // Senntisten teleport. Teleport.teleport(player, 8); break; case 22: // Kharyrll teleport. Teleport.teleport(player, 9); break; case 23: // Lassar teleport. Teleport.teleport(player, 10); break; case 24: // Dareeyak teleport. Teleport.teleport(player, 11); break; case 25: // Carrallanger teleport. Teleport.teleport(player, 12); break; case 27: // Ghorrock teleport. Teleport.teleport(player, 14); break; case 26: // Annakarl teleport. Teleport.teleport(player, 13); break; case 28: // Ancients Home teleport. Teleport.homeTeleport(player); break; } break; case 13: // Bank pin buttons. if (buttonId == 29) { player.getBank().forgotPin(); break; } player.getBank().handleEnterPin(buttonId); break; case 14: // Bank pin settings. switch(buttonId) { case 60: // Set new bank pin. player.getBank().displayFirstConfirmation(); break; case 61: // Change recovery delay. player.getBank().changePinDelay(); break; case 91: // "No, I might forget it!". if (player.getBank().isPinPending()) { player.getBank().cancelPendingPin(); break; } player.getBank().openPinSettings(2); break; case 89: // Yes i want to set a pin. if (player.getBank().isPinPending()) { player.getBank().verifyPin(true); break; } player.getBank().openEnterPin(); break; case 65: // Cancel pin that's pending. player.getBank().openPinSettings(4); break; case 62: // Change pin. player.getBank().changePin(); break; case 63: // Delete pin. player.getBank().deletePin(); break; } break; case 464: // Emote tab. Emotes.emote(player, buttonId); break; case 320: // Skills Tab. SkillMenu.display(player, buttonId); break; case 499: // Skill menu side menu. SkillMenu.subMenu(player, buttonId); break; case 336: // Trade/duel inventory - trade 1. if (player.getTrade() != null) { player.getTrade().tradeItem(buttonId2, 1); break; } if (player.getDuel() != null) { player.getDuel().stakeItem(buttonId2, 1); break; } break; case 335: // Trade interface. if (player.getTrade() == null) { break; } switch(buttonId) { case 16: // Accept trade. player.getTrade().accept(); break; case 18: // Decline trade. player.getTrade().decline(); break; case 30: // Offer 1 player.getTrade().removeItem(buttonId2, 1); break; } break; case 334: // Trade confirmation. if (player.getTrade() == null) { break; } switch(buttonId) { case 21: // Decline trade. player.getTrade().decline(); break; case 20: // Accept trade. player.getTrade().accept(); break; } break; case 750: // Run button if(!player.getWalkingQueue().isRunToggled()) { player.getWalkingQueue().setRunToggled(true); player.getPackets().sendConfig(173, 1); } else { player.getWalkingQueue().setRunToggled(false); player.getPackets().sendConfig(173, 0); } break; case 667: // Equipment/bonuses interface. if (buttonId == 14) { player.getEquipment().unequipItem((ItemData.EQUIP)buttonId2); break; } break; case 771: // Character design interface. ConfigureAppearance.sortButton(player, buttonId); break; case 311: // Smelt interface. Smelting.smeltOre(player, buttonId, true, -1); break; case 300: // Bar smithing interface. Smithing.smithItem(player, buttonId, 1, true); break; case 92: // Unarmed attack interface. switch(buttonId) { case 24: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 85: // Spear attack interface. switch(buttonId) { case 8: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 24: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 93: // Whip attack interface. switch(buttonId) { case 8: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 24: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 89: // Dagger attack interface. switch(buttonId) { case 10: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 26: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 82: // Longsword/scimitar attack interface. switch(buttonId) { case 10: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 26: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 78: // Claw attack interface. switch(buttonId) { case 10: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 26: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 81: // Godsword attack interface. switch(buttonId) { case 10: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 26: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 88: // Mace attack interface. switch(buttonId) { case 10: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 26: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 76: // Granite maul attack interface. switch(buttonId) { case 8: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 24: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 77: // Bow attack interface. switch(buttonId) { case 11: // Special attack. player.getSpecialAttack().toggleSpecBar(); break; case 27: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 75: // Battleaxe attack interface. switch(buttonId) { case 10: // Special attack. player.getSpecialAttack().toggleSpecBar(); player.getSpecialAttack().dragonBattleaxe(); break; case 26: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 91: // Thrown weapon switch(buttonId) { case 24: // Auto retaliate. player.toggleAutoRetaliate(); break; default: AttackInterface.configureButton(player, interfaceId, buttonId); break; } break; case 430: // Lunar interface switch(buttonId) { case 14: // Vengeance Lunar.castLunarSpell(player, buttonId); break; } break; case 102: // Items on death interface if (buttonId == 18) player.getPackets().sendMessage("You will keep this item if you should you die."); else player.getPackets().sendMessage("You will lose this item if you should you die."); break; default: if (interfaceId != 548 && interfaceId != 751) { Console.WriteLine("Unhandled ActionButton : " + interfaceId + " " + buttonId + " " + buttonId2); } break; } }
private void handleClickOne(Player player, Packet packet) { int slot = packet.readShortA(); int item = packet.readUShort(); int childId = packet.readUShort(); int interfaceId = packet.readUShort(); if (slot < 0 || slot > 28 || player.isDead()) { return; } Console.WriteLine("Click One Slot = " + slot); player.getPackets().closeInterfaces(); Console.WriteLine("InterfaceOption 1: interfaceId: " + interfaceId); switch(interfaceId) { case 387: // Unequip item if (slot < 14 && player.getEquipment().getItemInSlot((ItemData.EQUIP)slot) == item) { player.getEquipment().unequipItem((ItemData.EQUIP)slot); } break; } }
private void handleSwapSlot(Player player, Packet packet) { int oldSlot = packet.readUShort(); int childId = packet.readLEShort(); int interfaceId = packet.readLEShort(); int newSlot = packet.readShortA(); int swapType = packet.readByteS(); int oldItem = player.getInventory().getItemInSlot(oldSlot); int oldAmount = player.getInventory().getAmountInSlot(oldSlot); int newItem = player.getInventory().getItemInSlot(newSlot); int newAmount = player.getInventory().getAmountInSlot(newSlot); if (oldSlot > 28 || oldSlot < 0 || newSlot > 28 || oldSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } switch (interfaceId) { case 149: if (swapType == 0 && childId == 0) { player.getInventory().getSlot(oldSlot).setItemId(newItem); player.getInventory().getSlot(oldSlot).setItemAmount(newAmount); player.getInventory().getSlot(newSlot).setItemId(oldItem); player.getInventory().getSlot(newSlot).setItemAmount(oldAmount); } break; default: misc.WriteError("UNHANDLED ITEM SWAP 1 : interface = " + interfaceId); break; } //No need to update the screen since the client does it for us! }
private void handleClickTwo(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 2: interfaceId: " + interfaceId); switch(interfaceId) { case 105: // GE Interface switch(child) { case 209: // "Collect" and "Collect-items" option player.getGESession().collectSlot1(false); break; case 211: // Left box "Collect" option (coins) player.getGESession().collectSlot2(); break; } break; case 154: // Craft normal leather. Leather.craftNormalLeather(player, child, 5, true); break; case 542: // Glassblowing. switch(child) { case 40: // Make 5 beer glass. Glass.craftGlass(player, 5, 0, true); break; case 41: // Make 5 candle lantern. Glass.craftGlass(player, 5, 1, true); break; case 42: // Make 5 oil lamp. Glass.craftGlass(player, 5, 2, true); break; case 38: // Make 5 vial. Glass.craftGlass(player, 5, 3, true); break; case 44: // Make 5 Fishbowl Glass.craftGlass(player, 5, 4, true); break; case 39: // Make 5 orb. Glass.craftGlass(player, 5, 5, true); break; case 43: // Make 5 lantern lens Glass.craftGlass(player, 5, 6, true); break; case 45: // Make 5 dorgeshuun light orb. Glass.craftGlass(player, 5, 7, true); break; } break; case 763: // Bank inventory - 5. player.getBank().deposit(slot, 5); player.getBank().refreshBank(); break; case 762: // Bank - 5. player.getBank().withdraw(slot, 5); player.getBank().refreshBank(); break; case 336: // Trade/stake inventory - trade 5. if (player.getTrade() != null) { player.getTrade().tradeItem(slot, 5); break; } if (player.getDuel() != null) { player.getDuel().stakeItem(slot, 5); break; } break; case 631: // Duel interface - remove 5 if (player.getDuel() != null) { player.getDuel().removeItem(slot, 5); break; } break; case 335: // Trade interface - remove 5. player.getTrade().removeItem(slot, 5); break; case 620: // Shop - buy 1. player.getShopSession().buyItem(slot, 1); break; case 621: // Shop - sell 1. player.getShopSession().sellItem(slot, 1); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - any friends. clan.setEnterRights(Clan.ClanRank.FRIEND); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - any friends. clan.setTalkRights(Clan.ClanRank.FRIEND); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 26: // "Who can share loot" - any friends. clan.setLootRights(Clan.ClanRank.FRIEND); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleSwapSlot2(Player player, Packet packet) { int interfaceId = packet.readLEShort(); int child = packet.readUShort(); int newSlot = packet.readLEShort(); int interface2 = packet.readUShort(); int child2 = packet.readUShort(); int oldSlot = packet.readLEShort(); int oldItem = player.getInventory().getItemInSlot(oldSlot); int oldAmount = player.getInventory().getAmountInSlot(oldSlot); int newItem = player.getInventory().getItemInSlot(newSlot); int newAmount = player.getInventory().getAmountInSlot(newSlot); if (oldSlot > 28 || oldSlot < 0 || newSlot > 28 || oldSlot < 0 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } switch (interfaceId) { case 621: // Shop. case 763: // Bank. case 336: // Duel player.getInventory().getSlot(oldSlot).setItemId(newItem); player.getInventory().getSlot(oldSlot).setItemAmount(newAmount); player.getInventory().getSlot(newSlot).setItemId(oldItem); player.getInventory().getSlot(newSlot).setItemAmount(oldAmount); break; default: misc.WriteError("UNHANDLED ITEM SWAP 2 : interface = " + interfaceId); break; } //No need to update the screen since the client does it for us! player.getPackets().refreshInventory(); }
private void handleClickFour(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 4: interfaceId: " + interfaceId); switch(interfaceId) { case 763: // Bank inventory - Custom amount. player.getBank().deposit(slot, player.getBank().getLastXAmount()); player.getBank().refreshBank(); break; case 762: // Bank - Custom amount. player.getBank().withdraw(slot, player.getBank().getLastXAmount()); player.getBank().refreshBank(); break; case 154: // Craft normal leather. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(154, child)); break; case 542: // Glassblowing. switch(child) { case 40: // Make X beer glass. case 41: // Make X candle lantern. case 42: // Make X oil lamp. case 38: // Make X vial. case 44: // Make X Fishbowl case 39: // Make X orb. case 43: // Make X lantern lens case 45: // Make X dorgeshuun light orb. player.getPackets().displayEnterAmount(); player.setTemporaryAttribute("interfaceVariable", new EnterVariable(542, child)); break; } break; case 336: // Trade/stake inventory - trade all. if (player.getTrade() != null) { player.getTrade().tradeItem(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot))); break; } if (player.getDuel() != null) { player.getDuel().stakeItem(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot))); break; } break; case 335: // Trade interface - remove all. player.getTrade().removeItem(slot, player.getTrade().getItemAmount(player.getTrade().getItemInSlot(slot))); break; case 631: // Duel interface - remove All if (player.getDuel() != null) { player.getDuel().removeItem(slot, player.getDuel().getItemAmount(player.getDuel().getItemInSlot(slot))); break; } break; case 620: // Shop - buy 10. player.getShopSession().buyItem(slot, 10); break; case 621: // Shop - sell 10. player.getShopSession().sellItem(slot, 10); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - corporal. clan.setEnterRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - corporal. clan.setTalkRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - corporal. clan.setKickRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - corporal. clan.setLootRights(Clan.ClanRank.CORPORAL); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleExamineItemGE(Player player, Packet packet) { //6 in size. int someInt = packet.readInt(); ushort inventorySlot = packet.readUShort(); if (inventorySlot < 0 || inventorySlot > 28 || player.getTemporaryAttribute("cantDoAnything") != null) { return; } int itemId = player.getInventory().getItemInSlot(inventorySlot); if (itemId < 0 || itemId > Constants.MAX_ITEMS) { return; } string examine = ItemData.forId(itemId).getExamine(); player.getPackets().sendMessage("[GE someInt]: " + someInt + " if it's not 7012370, then tell me what you did"); player.getPackets().sendMessage("[GE Sell]: " + examine); }
private void handleClickSix(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 6: interfaceId: " + interfaceId); switch(interfaceId) { case 763: // Bank inventory - All. player.getBank().deposit(slot, player.getInventory().getItemAmount(player.getInventory().getItemInSlot(slot))); player.getBank().refreshBank(); break; case 762: // Bank - All. player.getBank().withdraw(slot, player.getBank().getAmountInSlot(slot)); player.getBank().refreshBank(); break; case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - lieutenant. clan.setEnterRights(Clan.ClanRank.LIEUTENANT); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - lieutenant. clan.setTalkRights(Clan.ClanRank.LIEUTENANT); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - lieutenant. clan.setKickRights(Clan.ClanRank.LIEUTENANT); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - lieutenant. clan.setLootRights(Clan.ClanRank.LIEUTENANT); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleFirstClickObject(Player player, Packet packet) { int objectX = packet.readLEShort(); ushort objectId = (ushort)packet.readShortA(); int objectY = packet.readUShort(); if (objectX < 1000 || objectY < 1000 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } SkillHandler.resetAllSkills(player); player.getPackets().closeInterfaces(); Console.WriteLine("First object click = " + objectId + " " + objectX + " " + objectY); if (RuneCraft.wantToRunecraft(player, objectId, objectX, objectY)) { return; } else if (RuneCraft.enterRift(player, objectId, objectX, objectY)) { return; } else if (RuneCraft.enterViaTiara(player, objectId, objectX, objectY)) { player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ())); return; } else if (RuneCraft.leaveAltar(player, objectId, objectX, objectY)) { return; } else if (Barrows.leaveCrypt(player, objectId, objectX, objectY)) { return; } else if (Barrows.tryOpenCoffin(player, objectId)) { return; } else if (Barrows.openTunnelDoor(player, objectId, objectX, objectY)) { return; } else if (Thieving.wantToThieveChest(player, objectId, objectX, objectY)) { return; } else if (Agility.doAgility(player, objectId, objectX, objectY)) { return; } else if (Farming.interactWithPatch(player, objectId, objectX, objectY, -1)) { return; } else if (Server.getGlobalObjects().getDoors().useDoor(player, objectId, objectX, objectY, player.getLocation().getZ())) { return; } else if (LaddersAndStairs.useObject(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 1)) { return; } else if (WildernessObelisks.useWildernessObelisk(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()))) { return; } if (player.getTemporaryAttribute("unmovable") != null) { return; } player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ())); switch(objectId) { case 2492: // essence mine portals RuneCraft.leaveEssMine(player, new Location(objectX, objectY, player.getLocation().getZ())); break; case 5959: case 5960: Wilderness.handleLever(player, objectId, new Location(objectX, objectY, player.getLocation().getZ())); break; case 733: // Wilderness web Wilderness.slashWeb(player, objectId, new Location(objectX, objectY, player.getLocation().getZ())); break; case 28089: // GE desk Server.getGrandExchange().clickDesk(player, objectX, objectY, 1); break; case 9359: // Tzhaar main exit TzHaar.exitTzhaar(player); break; case 31284: // Tzhaar entrance TzHaar.enterTzhaar(player); break; case 9357: // Fight cave exit FightCave.exitCave(player, objectX, objectY); break; case 9356: // Fight cave entrance FightCave.enterCave(player); break; case 9391: // Tzhaar fight pits viewing orb Server.getMinigames().getFightPits().useOrb(player, -1); break; case 9369: // Tzhaar pits main entrance case 9368: // Tzhaar pits game door Server.getMinigames().getFightPits().useDoor(player, objectId); break; case 3617: // Agility arena ladder AgilityArena.enterArena(player, objectX, objectY); break; case 3618: if (Location.atAgilityArena(player.getLocation())) { AgilityArena.exitArena(player, objectX, objectY); } break; case 6: // Dwarf multicannon DwarfCannon cannon = player.getCannon(); Location l = new Location(objectX, objectY, player.getLocation().getZ()); if (cannon == null || (cannon != null & !l.withinDistance(cannon.getLocation(), 2))) { player.getPackets().sendMessage("This isn't your cannon!"); break; } cannon.fireCannon(); break; case 7: //Cannon base only case 8: //Cannon stand case 9: //Cannon barrels DwarfCannon cannonPickup = player.getCannon(); Location cannonLocation = new Location(objectX, objectY, player.getLocation().getZ()); if (cannonPickup == null || (cannonPickup != null & !cannonLocation.withinDistance(cannonPickup.getLocation(), 2))) { player.getPackets().sendMessage("This isn't your cannon!"); break; } cannonPickup.pickupCannon(); break; case 11601: // Clay oven player.getPackets().modifyText("Please use the item on the oven.", 210, 1); player.getPackets().sendChatboxInterface(210); break; case 10284: // Barrows chest Barrows.openChest(player); break; case 4483: // Castle wars bank chest. case 21301: // Neitiznot bank chest player.getBank().openBank(false, objectX, objectY); break; case 1276: // Normal tree case 1278: // Normal tree case 2409: // Normal tree case 1277: // Normal tree with but different coloured stump case 3034: // Normal tree with dark stump case 3033: // Normal tree with dark stump case 10041: // Normal tree case 1282: // Dead tree case 1283: // Dead tree case 1284: // Dead tree case 1285: // Dead tree case 1286: // Dead tree case 1289: // Dead tree case 1290: // Dead tree case 1365: // Dead tree case 1383: // Dead tree case 1384: // Dead tree case 1291: // Dead tree case 3035: // Dead tree case 3036: // Dead tree case 1315: // Evergreen case 1316: // Evergreen case 1318: // Snowy Evergreen case 1319: // Snowy Evergreen case 1330: // Snow covered tree case 1331: // Snow covered tree case 1332: // Snow covered tree case 3879: // Evergreen from elf land case 3881: // Evergreen from elf land (slightly bigger than one above) case 3882: // Evergreen from elf land (slightly bigger than one above) case 3883: // Small Evergreen from elf land case 1280: // Normal tree orange stump case 14309: // PC game island tree Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 0, true); break; case 1281: // Normal Oak tree case 3037: // Oak tree dark stump Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 1, true); break; case 1308: // Normal Willow tree case 5551: // Normal Willow tree case 5552: // Normal Willow tree case 5553: // Normal Willow tree Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 2, true); break; case 2023: // Achey tree Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 3, true); break; case 9036: // Normal Teak tree case 15062: // Normal Teak tree (same as above?) Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 4, true); break; case 1307: // Normal Maple tree case 4674:// Exactly same as above Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 5, true); break; case 2289: // Normal Hollow tree case 4060: // Normal Hollow tree (bigger than above) Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 6, true); break; case 9034: // Normal Mahogany tree Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 7, true); break; case 21273: // Normal Arctic pine Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 8, true); break; case 28951: // Normal Eucalyptus tree case 28952: // Normal Eucalyptus tree (smaller) case 28953: // Normal Eucalyptus tree (smallest) Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 9, true); break; case 1309: // Yew tree Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 10, true); break; case 1306: // Normal Magic tree Woodcutting.tryCutTree(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 11, true); break; case 3203: // Duel arena trapdoors. if (player.getDuel() != null) { player.getDuel().forfeitDuel(objectX, objectY); break; } break; case 7152: // Abyss tendrils. case 7144: AbyssObstacles.chopTendrils(player, objectX, objectY); break; case 7147: // Abyss tunnel. AbyssObstacles.useAgilityTunnel(player, objectX, objectY); break; case 7146: // Abyss eyes. case 7150: AbyssObstacles.passEyes(player, objectX, objectY); break; case 7151: // Abyss boil. case 7145: AbyssObstacles.burnBoil(player, objectX, objectY); break; case 7153: // Abyss mining rock. case 7143: AbyssObstacles.mineRock(player, objectX, objectY); break; case 2213: // Catherby bank booth. case 11402: // Varrock bank booth. case 11758: // Falador bank booth. case 36786: // Lumbridge bank booth. case 35647: // Al-Kharid bank booth. case 25808: // Seers bank booth. case 34752: // Ardougne bank booth. case 26972: // Edgeville bank booth. case 29085: // Ooglog bank booth. player.getBank().openBank(true, objectX, objectY); break; case 2491: // Essence rock Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 0, true); break; case 11954: // Iron rocks case 11955: case 11956: case 14856: case 14857: case 14858: case 31071: case 31072: case 31073: case 32441: case 32442: case 32443: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 6, true); break; case 11948: // Silver rocks case 11949: case 11950: case 11165: case 11186: case 11187: case 11188: case 31074: case 31075: case 31076: case 32444: case 32445: case 32446: case 15579: case 15580: case 15581: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 8, true); break; case 15504: // Clay rocks case 15503: case 15505: case 11189: case 11190: case 11191: case 31062: case 31063: case 31064: case 32429: case 32430: case 32431: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 1, true); break; case 11960: // Copper rocks case 11961: case 11962: case 11936: case 11937: case 11938: case 31080: case 31081: case 31082: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 2, true); break; case 11959: // Tin rocks case 11958: case 11957: case 11933: case 11934: case 11935: case 31077: case 31078: case 31079: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 3, true); break; case 11930: // Coal rocks case 11931: case 11932: case 14850: case 14851: case 14852: case 31068: case 31069: case 31070: case 32426: case 32427: case 32428: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 9, true); break; case 11951: // Gold rocks case 11952: case 11953: case 11183: case 11184: case 11185: case 31065: case 31066: case 31067: case 32432: case 32433: case 32434: case 15576: case 15577: case 15578: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 10, true); break; case 11945: // Mithril rocks case 11946: case 11947: case 11942: case 11943: case 11944: case 14853: case 14854: case 14855: case 31086: case 31087: case 31088: case 32438: case 32439: case 32440: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 11, true); break; case 11963: // Adamant rocks case 11964: case 11965: case 11939: case 11940: case 11941: case 14862: case 14863: case 14864: case 31083: case 31084: case 31085: case 32435: case 32436: case 32437: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 12, true); break; case 14859: // Rune rocks case 14860: case 14861: Mining.tryMineRock(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 13, true); break; case 11552: // Empty rocks case 11553: case 11554: case 11555: case 11556: case 31059: case 31060: case 31061: case 14832: case 14833: case 14834: case 33400: case 33401: case 33402: case 15582: case 15583: case 15584: Mining.displayEmptyRockMessage(player, new Location(objectX, objectY, player.getLocation().getZ())); break; case 23271: // Wilderness ditch Wilderness.crossDitch(player, objectX, objectY); break; } }
private void handleClickNine(Player player, Packet packet) { int interfaceId = packet.readUShort(); int child = packet.readUShort(); int slot = packet.readUShort(); Console.WriteLine("InterfaceOption 9: interfaceId: " + interfaceId); switch(interfaceId) { case 590: // Clan chat setup Clan clan = Server.getClanManager().getClanByOwner(player.getLoginDetails().getUsername()); if (clan == null) { player.getPackets().sendMessage("Please create your clan chat before changing settings."); break; } switch(child) { case 23: // "Who can enter chat" - only me/owner. clan.setEnterRights(Clan.ClanRank.OWNER); player.getPackets().modifyText(clan.getRankString(clan.getEnterRights()), 590, 23); break; case 24: // "Who can talk in chat" - only me/owner. clan.setTalkRights(Clan.ClanRank.OWNER); player.getPackets().modifyText(clan.getRankString(clan.getTalkRights()), 590, 24); break; case 25: // // "Who can kick in chat" - only me/owner. clan.setKickRights(Clan.ClanRank.OWNER); player.getPackets().modifyText(clan.getRankString(clan.getKickRights()), 590, 25); break; case 26: // "Who can share loot" - only me/owner. clan.setLootRights(Clan.ClanRank.OWNER); player.getPackets().modifyText(clan.getRankString(clan.getLootRights()), 590, 26); break; } break; } }
private void handleFourthClickNPC(Player player, Packet packet) { int npcIndex = packet.readUShort(); if (npcIndex < 0 || npcIndex > Constants.MAX_NPCS || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } Npc npc = Server.getNpcList()[npcIndex]; if (npc == null || npc.isDestroyed()) { return; } Console.WriteLine("Fourth click NPC " + npc.getId()); SkillHandler.resetAllSkills(player); if (Slayer.openSlayerShop(player, npc)) { return; } switch(npc.getId()) { case 553: // Aubury HomeArea.interactWithAubury(player, npc, 3); break; } }
private void handleSecondClickObject(Player player, Packet packet) { int objectY = packet.readLEShortA(); int objectX = packet.readLEShort(); ushort objectId = packet.readUShort(); Console.WriteLine("Second object click = " + objectId + " " + objectX + " " + objectY); if (player.getTemporaryAttribute("unmovable") != null) { return; } if (objectX < 1000 || objectY < 1000 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } SkillHandler.resetAllSkills(player); player.getPackets().closeInterfaces(); player.setFaceLocation(new Location(objectX, objectY, player.getLocation().getZ())); if (Thieving.wantToThieveStall(player, objectId, objectX, objectY)) { return; } else if (Farming.interactWithPatch(player, objectId, objectX, objectY, -1)) { return; } else if (LaddersAndStairs.useObject(player, objectId, new Location(objectX, objectY, player.getLocation().getZ()), 2)) { return; } switch(objectId) { case 28089: // GE desk Server.getGrandExchange().clickDesk(player, objectX, objectY, 2); break; case 25824: // Spinning wheel (Seers) case 36970: // Spinning wheel (Lumbridge Spinning.displaySpinningInterface(player); break; case 6: // Dwarf multicannon DwarfCannon cannon = player.getCannon(); Location l = new Location(objectX, objectY, player.getLocation().getZ()); if (cannon == null || (cannon != null & !l.Equals(cannon.getLocation()))) { player.getPackets().sendMessage("This isn't your cannon!"); break; } cannon.pickupCannon(); break; case 11666: // Falador furnace case 36956: // Lumbridge furnace Smelting.displaySmeltOptions(player); break; case 11959: // Tin rocks case 11958: case 11957: case 11933: case 11934: case 11935: case 31077: case 31078: case 31079: Mining.prospectRock(player, objectX, objectY, "tin"); break; case 11960: // Copper rocks case 11961: case 11962: case 11936: case 11937: case 11938: case 31080: case 31081: case 31082: Mining.prospectRock(player, objectX, objectY, "copper"); break; case 15504: // Clay rocks case 15503: case 15505: case 11189: case 11190: case 11191: case 31062: case 31063: case 31064: case 32429: case 32430: case 32431: Mining.prospectRock(player, objectX, objectY, "clay"); break; case 11948: // Silver rocks case 11949: case 11950: case 11165: case 11186: case 11187: case 11188: case 31074: case 31075: case 31076: case 32444: case 32445: case 32446: case 15579: case 15580: case 15581: Mining.prospectRock(player, objectX, objectY, "silver"); break; case 11930: // Coal rocks case 11931: case 11932: case 14850: case 14851: case 14852: case 31068: case 31069: case 31070: case 32426: case 32427: case 32428: Mining.prospectRock(player, objectX, objectY, "coal"); break; case 11945: // Mithril rocks case 11946: case 11947: case 11942: case 11943: case 11944: case 14853: case 14854: case 14855: case 31086: case 31087: case 31088: case 32438: case 32439: case 32440: Mining.prospectRock(player, objectX, objectY, "mithril"); break; case 11954: // Iron rocks case 11955: case 11956: case 14856: case 14857: case 14858: case 31071: case 31072: case 31073: case 32441: case 32442: case 32443: Mining.prospectRock(player, objectX, objectY, "iron"); break; case 14859: // Rune rocks case 14860: case 14861: Mining.prospectRock(player, objectX, objectY, "runite"); break; case 11951: // Gold rocks case 11952: case 11953: case 11183: case 11184: case 11185: case 31065: case 31066: case 31067: case 32432: case 32433: case 32434: case 15576: case 15577: case 15578: Mining.prospectRock(player, objectX, objectY, "gold"); break; case 11963: // Adamant rocks case 11964: case 11965: case 11939: case 11940: case 11941: case 14862: case 14863: case 14864: case 31083: case 31084: case 31085: case 32435: case 32436: case 32437: Mining.prospectRock(player, objectX, objectY, "adamantite"); break; case 11552: // Empty rocks case 11553: case 11554: case 11555: case 11556: case 31059: case 31060: case 31061: case 14832: case 14833: case 14834: case 33400: case 33401: case 33402: case 15582: case 15583: case 15584: Mining.displayEmptyRockMessage(player, new Location(objectX, objectY, player.getLocation().getZ())); break; case 2491: // Rune essence Mining.prospectRock(player, objectX, objectY, "Rune essence"); break; case 27663: // Duel arena bank chest. case 2213: // Catherby bank booth. case 11402: // Varrock bank booth. case 11758: // Falador bank booth. case 36786: // Lumbridge bank booth. case 35647: // Al-Kharid bank booth. case 25808: // Seers bank booth. case 34752: // Ardougne bank booth. case 26972: // Edgeville bank booth. case 29085: // Ooglog bank booth. player.getBank().openBank(false, objectX, objectY); break; } }
private void handleFourthClickObject(Player player, Packet packet) { int y = packet.readLEShort(); int x = packet.readLEShortA(); ushort id = packet.readUShort(); if (player.getTemporaryAttribute("unmovable") != null) { return; } if (x < 1000 || id < 0 || y < 1000 || player.isDead() || player.getTemporaryAttribute("cantDoAnything") != null) { return; } SkillHandler.resetAllSkills(player); player.getPackets().closeInterfaces(); player.setFaceLocation(new Location(x, y, player.getLocation().getZ())); Console.WriteLine("Fourth object click = " + id + " " + x + " " + y); switch(id) { case 28089: // GE desk Server.getGrandExchange().clickDesk(player, x, y, 4); break; } }