Zavada

clickbuttonpacket

Jan 14th, 2017
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 37.03 KB | None | 0 0
  1. package com.vencillio.rs2.entity.player.net.in.impl;
  2.  
  3. import java.math.BigInteger;
  4. import java.text.NumberFormat;
  5. import java.util.ArrayList;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Locale;
  9. import java.util.PriorityQueue;
  10. import java.util.Queue;
  11.  
  12. import com.vencillio.core.network.StreamBuffer;
  13. import com.vencillio.core.task.Task;
  14. import com.vencillio.core.task.TaskQueue;
  15. import com.vencillio.core.task.impl.TaskIdentifier;
  16. import com.vencillio.core.task.impl.TeleOtherTask;
  17. import com.vencillio.core.util.Utility;
  18. import com.vencillio.rs2.content.DropTable;
  19. import com.vencillio.rs2.content.Emotes;
  20. import com.vencillio.rs2.content.GenieLamp;
  21. import com.vencillio.rs2.content.GenieReset;
  22. import com.vencillio.rs2.content.Loadouts;
  23. import com.vencillio.rs2.content.PlayersOnline;
  24. import com.vencillio.rs2.content.SkillsChat;
  25. import com.vencillio.rs2.content.StarterKit;
  26. import com.vencillio.rs2.content.TeleportHandler;
  27. import com.vencillio.rs2.content.combat.formula.MagicFormulas;
  28. import com.vencillio.rs2.content.combat.formula.MeleeFormulas;
  29. import com.vencillio.rs2.content.combat.formula.RangeFormulas;
  30. import com.vencillio.rs2.content.combat.impl.PlayerDrops;
  31. import com.vencillio.rs2.content.dialogue.DialogueManager;
  32. import com.vencillio.rs2.content.dialogue.OptionDialogue;
  33. import com.vencillio.rs2.content.dialogue.impl.Tutorial;
  34. import com.vencillio.rs2.content.interfaces.InterfaceHandler;
  35. import com.vencillio.rs2.content.interfaces.impl.BossInterface;
  36. import com.vencillio.rs2.content.interfaces.impl.MinigameInterface;
  37. import com.vencillio.rs2.content.interfaces.impl.OtherInterface;
  38. import com.vencillio.rs2.content.interfaces.impl.PointsInterface;
  39. import com.vencillio.rs2.content.interfaces.impl.PvPInterface;
  40. import com.vencillio.rs2.content.interfaces.impl.QuestTab;
  41. import com.vencillio.rs2.content.interfaces.impl.SkillingInterface;
  42. import com.vencillio.rs2.content.membership.CreditHandler;
  43. import com.vencillio.rs2.content.membership.MysteryBoxMinigame;
  44. import com.vencillio.rs2.content.minigames.duelarena.DuelingConstants;
  45. import com.vencillio.rs2.content.profiles.PlayerProfiler;
  46. import com.vencillio.rs2.content.profiles.ProfileLeaderboard;
  47. import com.vencillio.rs2.content.skill.SkillGoal;
  48. import com.vencillio.rs2.content.skill.Skills;
  49. import com.vencillio.rs2.content.skill.agility.Agility;
  50. import com.vencillio.rs2.content.skill.cooking.CookingTask;
  51. import com.vencillio.rs2.content.skill.crafting.Crafting;
  52. import com.vencillio.rs2.content.skill.crafting.HideTanning;
  53. import com.vencillio.rs2.content.skill.firemaking.FireColor;
  54. import com.vencillio.rs2.content.skill.fletching.Fletching;
  55. import com.vencillio.rs2.content.skill.herblore.HerbloreFinishedPotionTask;
  56. import com.vencillio.rs2.content.skill.herblore.HerbloreUnfinishedPotionTask;
  57. import com.vencillio.rs2.content.skill.magic.Autocast;
  58. import com.vencillio.rs2.content.skill.magic.MagicSkill.TeleportTypes;
  59. import com.vencillio.rs2.content.skill.magic.SpellBookTeleporting;
  60. import com.vencillio.rs2.content.skill.magic.spells.BoltEnchanting;
  61. import com.vencillio.rs2.content.skill.magic.weapons.TridentOfTheSeas;
  62. import com.vencillio.rs2.content.skill.prayer.PrayerBook.Prayer;
  63. import com.vencillio.rs2.content.skill.ranged.ToxicBlowpipe;
  64. import com.vencillio.rs2.content.skill.smithing.SmithingConstants;
  65. import com.vencillio.rs2.content.skill.summoning.SummoningCreation;
  66. import com.vencillio.rs2.entity.Animation;
  67. import com.vencillio.rs2.entity.Graphic;
  68. import com.vencillio.rs2.entity.Location;
  69. import com.vencillio.rs2.entity.ReportHandler;
  70. import com.vencillio.rs2.entity.ReportHandler.ReportData;
  71. import com.vencillio.rs2.entity.WalkToActions;
  72. import com.vencillio.rs2.entity.World;
  73. import com.vencillio.rs2.entity.item.EquipmentConstants;
  74. import com.vencillio.rs2.entity.item.Item;
  75. import com.vencillio.rs2.entity.item.ItemCheck;
  76. import com.vencillio.rs2.entity.mob.Mob;
  77. import com.vencillio.rs2.entity.mob.impl.Zulrah;
  78. import com.vencillio.rs2.entity.player.Player;
  79. import com.vencillio.rs2.entity.player.PlayerConstants;
  80. import com.vencillio.rs2.entity.player.net.Client;
  81. import com.vencillio.rs2.entity.player.net.in.IncomingPacket;
  82. import com.vencillio.rs2.entity.player.net.out.impl.SendConfig;
  83. import com.vencillio.rs2.entity.player.net.out.impl.SendEnterString;
  84. import com.vencillio.rs2.entity.player.net.out.impl.SendInterface;
  85. import com.vencillio.rs2.entity.player.net.out.impl.SendInventoryInterface;
  86. import com.vencillio.rs2.entity.player.net.out.impl.SendMessage;
  87. import com.vencillio.rs2.entity.player.net.out.impl.SendOpenTab;
  88. import com.vencillio.rs2.entity.player.net.out.impl.SendRemoveInterfaces;
  89. import com.vencillio.rs2.entity.player.net.out.impl.SendSidebarInterface;
  90. import com.vencillio.rs2.entity.player.net.out.impl.SendString;
  91. import com.vencillio.rs2.entity.player.net.out.impl.SendUpdateItems;
  92.  
  93. public class ClickButtonPacket extends IncomingPacket {
  94.  
  95. @Override
  96. public int getMaxDuplicates() {
  97. return 5;
  98. }
  99.  
  100. @Override
  101. public void handle(Player player, StreamBuffer.InBuffer in, int opcode, int length) {
  102. int buttonId = in.readShort();
  103. in.reset();
  104. buttonId = Utility.hexToInt(in.readBytes(2));
  105.  
  106. if (player.isStunned()) {
  107. return;
  108. }
  109.  
  110. if (player.getPrayer().clickButton(buttonId)) {
  111. return;
  112. }
  113.  
  114. if (PlayerConstants.isOwner(player)) {
  115. player.getClient().queueOutgoingPacket(new SendMessage("@red@Developer - button: " + buttonId));
  116. System.out.println("button: " + buttonId);
  117. }
  118.  
  119. if (player.getAttributes().get("DROPTABLE_SEARCH") != null) {
  120. @SuppressWarnings("unchecked")
  121. HashMap<Integer, Integer> searchButtons = (HashMap<Integer, Integer>) player.getAttributes().get("DROPTABLE_SEARCH");
  122. if (searchButtons.containsKey(buttonId)) {
  123. DropTable.displayNpc(player, searchButtons.get(buttonId));
  124. }
  125. }
  126.  
  127. if (player.getInterfaceManager().getMain() == 53500) {
  128. if (buttonId <= 209161 && buttonId >= 209012) {
  129. int c = 0;
  130. for (Player p : World.getPlayers()) {
  131. if (p != null && p.isActive() && p.getPlayerShop().hasAnyItems()) {
  132. if (209012 + c == buttonId) {
  133. player.getShopping().open(p);
  134. break;
  135. }
  136. c++;
  137. }
  138. }
  139. return;
  140. }
  141. }
  142.  
  143. if (ReportData.get(buttonId) != null) {
  144. player.reportClicked = buttonId;
  145. return;
  146. }
  147.  
  148. if ((player.getController().equals(Tutorial.TUTORIAL_CONTROLLER)) && (player.getDialogue() != null)) {
  149. player.getDialogue().clickButton(buttonId);
  150. if (player.getInterfaceManager().getMain() != 51750) {
  151. return;
  152. }
  153. }
  154.  
  155. if (Agility.clickButton(player, buttonId)) {
  156. return;
  157. }
  158.  
  159. if (PlayerConstants.isSettingAppearance(player)) {
  160. return;
  161. }
  162.  
  163. if (StarterKit.handle(player, buttonId)) {
  164. return;
  165. }
  166.  
  167. if ((player.isDead()) || (!player.getController().canClick())) {
  168. return;
  169. }
  170. /*
  171. if (TeleportHandler.selection(player, buttonId)) {
  172. return;
  173. }*/
  174.  
  175. if (SkillGoal.handle(player, buttonId)) {
  176. return;
  177. }
  178.  
  179. boolean isInstanced = true;
  180. int height = isInstanced ? player.getIndex() << 2 : player.getZ();
  181.  
  182. player.send(new SendMessage("DEBUG CLICK_BUTTON_PACKET: " + buttonId));
  183.  
  184. switch (buttonId) {
  185.  
  186. case 9190:
  187. switch(WalkToActions.optionId) {
  188. case 1:
  189. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3183, 3671, 0)));
  190. break;
  191. case 2:
  192. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(2439, 5171, 0)));
  193. break;
  194. case 3:
  195. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(2326, 3801, 0)));
  196. break;
  197. case 4:
  198. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(2976, 4384, 2)));
  199. break;
  200. }
  201. break;
  202.  
  203.  
  204. case 9191:
  205. switch(WalkToActions.optionId) {
  206. case 3:
  207. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3421, 3565, 2)));
  208. break;
  209. case 4:
  210. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(2268, 3070, height)));
  211.  
  212. TaskQueue.queue(new Task(12) {
  213. @Override
  214. public void execute() {
  215. Zulrah mob = new Zulrah(player, new Location(2266, 3073, player.getIndex() << 2));
  216. mob.face(player);
  217. mob.getUpdateFlags().sendAnimation(new Animation(5071));
  218. player.face(mob);
  219. player.send(new SendMessage("Welcome to Zulrah's shrine."));
  220. DialogueManager.sendStatement(player, "Welcome to Zulrah's shrine.");
  221. stop();
  222. }
  223.  
  224. @Override
  225. public void onStop() {
  226. }
  227. });
  228. break;
  229.  
  230. }
  231. break;
  232. case 9192:
  233. switch(WalkToActions.optionId) {
  234. case 1:
  235. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3240, 3612, 0)));
  236. break;
  237. case 2:
  238. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3365, 3266, 0)));
  239. break;
  240. case 3:
  241. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3086, 3934, 0)));
  242. break;
  243. case 4:
  244. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(1760, 5163, 0)));
  245. break;
  246. }
  247. break;
  248. case 9193:
  249. switch(WalkToActions.optionId) {
  250. case 1:
  251. //TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3240, 3612, 0)));
  252. break;
  253. case 2:
  254. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3565, 3315, 0)));
  255. break;
  256. case 4:
  257. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3696, 5807, height)));
  258. TaskQueue.queue(new Task(10) {
  259. @Override
  260. public void execute() {
  261. int[][] DATA = { { 493, 3691, 5810 }, { 493, 3691, 5814 }, { 493, 3700, 5810 }, { 493, 3700, 5814 }, { 496, 3694, 5811 } };
  262. for (int i = 0; i < DATA.length; i++) {
  263. Mob mob = new Mob(player, DATA[i][0], false, false, false, new Location(DATA[i][1], DATA[i][2], player.getZ()));
  264. mob.setCanAttack(false);
  265. player.face(mob);
  266. }
  267. stop();
  268. }
  269.  
  270. @Override
  271. public void onStop() {
  272. player.whirlpoolsHit = 0;
  273. player.send(new SendMessage("Welcome to Kraken's cave."));
  274. }
  275. });
  276. break;
  277. }
  278. break;
  279.  
  280.  
  281. case 9194:
  282. switch(WalkToActions.optionId) {
  283. case 1:
  284. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3012, 3632, 0)));
  285. break;
  286. case 2:
  287. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(2851, 3548, 0)));
  288. break;
  289. case 4:
  290. TaskQueue.queue(new TeleOtherTask(WalkToActions.interactingMob, player, new Location(3806, 2844, height)));
  291. TaskQueue.queue(new Task(player, 7, false, Task.StackType.STACK, Task.BreakType.NEVER, TaskIdentifier.CURRENT_ACTION) {
  292. @Override
  293. public void execute() {
  294. new Mob(player, 6342, true, false, false, new Location(3815, 2844, player.getIndex() << 2));
  295. stop();
  296. }
  297. @Override
  298. public void onStop() {
  299. }
  300. });
  301. break;
  302. }
  303. break;
  304. case 250111:
  305. case 250108:
  306. case 250120:
  307. case 250117:
  308. case 250114:
  309. Loadouts.spawnLoadouts(player, buttonId);
  310. break;
  311.  
  312. /** Staff Tab */
  313. case 114229:
  314. if (PlayerConstants.isStaff(player)) {
  315. String accessibility = "";
  316. if (PlayerConstants.isModerator(player)) {
  317. accessibility = "You have access to a few commands!";
  318. } else if (PlayerConstants.isAdministrator(player)) {
  319. accessibility = "You have access to most commands!";
  320. } else if (PlayerConstants.isOwner(player)) {
  321. accessibility = "You have acess to all commands!";
  322. }
  323. player.send(new SendString(accessibility, 49704));
  324. player.send(new SendString("</col>Rank: " + player.determineIcon(player) + " " + player.determineRank(player), 49705));
  325. player.send(new SendSidebarInterface(2, 49700));
  326. player.send(new SendOpenTab(2));
  327. player.send(new SendMessage("<col=25236>Use your powers responsibly."));
  328. }
  329. break;
  330. case 194042:
  331. if (PlayerConstants.isStaff(player)) {
  332. InterfaceHandler.writeText(new QuestTab(player));
  333. player.send(new SendSidebarInterface(2, 29400));
  334. player.send(new SendOpenTab(2));
  335. }
  336. break;
  337.  
  338. /** Mystery Box */
  339. case 66108:
  340. MysteryBoxMinigame.play(player);
  341. break;
  342. case 66115:
  343. player.send(new SendString("http://www.vencillio.com/store/", 12000));
  344. break;
  345.  
  346.  
  347. /** Drop Table */
  348. case 233110:
  349. DropTable.displayNpc(player, player.monsterSelected);
  350. break;
  351.  
  352. /** Magic Spells teleport */
  353. case 50235:
  354. case 4140:
  355. if (player.getMagic().isTeleporting()) {
  356. return;
  357. }
  358. if (player.inJailed()) {
  359. return;
  360. }
  361. if (player.inWilderness() && player.getWildernessLevel() > 20) {
  362. player.send(new SendMessage("You can't teleport over 20 wilderness!"));
  363. return;
  364. }
  365.  
  366. SpellBookTeleporting.teleport(player, 4140);
  367. break;
  368. case 50245:
  369. case 4143:
  370. if (player.getMagic().isTeleporting()) {
  371. return;
  372. }
  373. if (player.inJailed()) {
  374. return;
  375. }
  376. if (player.inWilderness() && player.getWildernessLevel() > 20) {
  377. player.send(new SendMessage("You can't teleport over 20 wilderness!"));
  378. return;
  379. }
  380.  
  381. SpellBookTeleporting.teleport(player, 4143);
  382. break;
  383. case 50253:
  384. case 4146:
  385. if (player.getMagic().isTeleporting()) {
  386. return;
  387. }
  388. if (player.inJailed()) {
  389. return;
  390. }
  391. if (player.inWilderness() && player.getWildernessLevel() > 20) {
  392. player.send(new SendMessage("You can't teleport over 20 wilderness!"));
  393. return;
  394. }
  395.  
  396. SpellBookTeleporting.teleport(player, 4146);
  397. break;
  398. case 51005:
  399. case 4150:
  400. if (player.getMagic().isTeleporting()) {
  401. return;
  402. }
  403. if (player.inJailed()) {
  404. return;
  405. }
  406. if (player.inWilderness() && player.getWildernessLevel() > 20) {
  407. player.send(new SendMessage("You can't teleport over 20 wilderness!"));
  408. return;
  409. }
  410.  
  411. SpellBookTeleporting.teleport(player, 4150);
  412. break;
  413. case 51013:
  414. case 6004:
  415. if (player.getMagic().isTeleporting()) {
  416. return;
  417. }
  418. if (player.inJailed()) {
  419. return;
  420. }
  421. if (player.inWilderness() && player.getWildernessLevel() > 20) {
  422. player.send(new SendMessage("You can't teleport over 20 wilderness!"));
  423. return;
  424. }
  425.  
  426. SpellBookTeleporting.teleport(player, 6004);
  427. break;
  428. case 51023:
  429.  
  430. //Watchtower Teleport
  431. case 6005:
  432.  
  433. break;
  434.  
  435. /** Report abuse */
  436. case 163046:
  437. ReportHandler.handleReport(player);
  438. break;
  439. case 2094:
  440. player.send(new SendRemoveInterfaces());
  441. player.reportClicked = 0;
  442. player.reportName = "";
  443. player.send(new SendInterface(41750));
  444. break;
  445.  
  446. /* Bolt enchanting */
  447. case 75007:
  448. BoltEnchanting.open(player);
  449. break;
  450.  
  451. /** Home teleport */
  452. case 117048:
  453. case 75010:
  454. case 84237:
  455. if (player.getMagic().isTeleporting()) {
  456. return;
  457. }
  458. if (player.inJailed()) {
  459. return;
  460. }
  461. if (player.inWilderness() && player.getWildernessLevel() > 20) {
  462. player.send(new SendMessage("You can't teleport over 20 wilderness!"));
  463. return;
  464. }
  465. player.getMagic().teleport(PlayerConstants.HOME.getX(), PlayerConstants.HOME.getY(), PlayerConstants.HOME.getZ(), TeleportTypes.SPELL_BOOK);
  466. //player.send(new SendMessage("Welcome home " + player.determineIcon(player) + player.getUsername() + "!"));
  467. break;
  468.  
  469. /** Blow Pipe */
  470. case 55095:
  471. if (player.getAttributes().getInt("ASK_KEY") == 0) {
  472. ToxicBlowpipe.unload(player);
  473. } else if (player.getAttributes().getInt("ASK_KEY") == 1) {
  474. TridentOfTheSeas.unload(player);
  475. player.getInventory().remove(11908, 1);
  476. player.getGroundItems().drop(new Item(11908), player.getLocation());
  477. }
  478. player.send(new SendRemoveInterfaces());
  479. return;
  480.  
  481. /** Close buttons */
  482. case 15062:
  483. case 55096:
  484. case 190116:
  485. case 184163:
  486. player.send(new SendRemoveInterfaces());
  487. break;
  488.  
  489. /** Equipment screen */
  490. case 59097:
  491. player.send(new SendString("</col>Melee Max Hit: @gre@" + MeleeFormulas.calculateBaseDamage(player), 15116));
  492. player.send(new SendString("</col>Range Max Hit: @gre@" + RangeFormulas.getRangedMaxHit(player) + ".0", 15117));
  493. player.send(new SendString("</col>Magic Max Hit: @gre@" + MagicFormulas.magicMaxHit(player) + ".0", 15118));
  494. player.send(new SendInterface(15106));
  495. break;
  496.  
  497. /** Settings */
  498. case 140186:
  499. if(player.getRights() < 2) {
  500. player.send(new SendMessage("You need to be a member to use this feature."));
  501. return;
  502. }
  503. player.send(new SendMessage(":updateSettings:"));
  504. player.send(new SendSidebarInterface(11, 28400));
  505. player.send(new SendOpenTab(11));
  506. break;
  507. case 110245:
  508. player.send(new SendMessage(":saveSettings:"));
  509. player.send(new SendSidebarInterface(11, 904));
  510. player.send(new SendOpenTab(11));
  511. player.send(new SendMessage("@red@Your settings have been saved!"));
  512. break;
  513. case 110248:
  514. player.send(new SendMessage(":defaultSettings:"));
  515. player.send(new SendMessage("@red@Your settings have been reset!"));
  516. break;
  517. case 140185:
  518. player.send(new SendInterface(28200));
  519. break;
  520. case 140189:
  521. player.send(new SendInterface(37500));
  522. player.send(new SendString("Color chosen: @or2@-", 37506));
  523. break;
  524. case 110046:
  525. player.send(new SendMessage(":transparentTab:"));
  526. break;
  527. case 110047:
  528. player.send(new SendMessage(":transparentChatbox:"));
  529. break;
  530. case 110048:
  531. player.send(new SendMessage(":sideStones:"));
  532. break;
  533. case 111024:
  534. //delay
  535. // if (player.getDelay().elapsed() < 3_000) {
  536. // player.send(new SendMessage("Please wait before doing this again!"));
  537. // return;
  538. // }
  539. // if (player.isPrestigeColors()) {
  540. // player.setPrestigeColors(false);
  541. // player.send(new SendMessage(":prestigeColorsFalse:"));
  542. // player.getSkill().resetColors();
  543. // player.send(new SendMessage("Prestige colors will now not display in skill tab."));
  544. // } else {
  545. // player.setPrestigeColors(true);
  546. // player.send(new SendMessage(":prestigeColorsTrue:"));
  547. // player.getSkill().resetColors();
  548. // player.send(new SendMessage("Prestige colors will now display in skill tab."));
  549. // }
  550. // player.getDelay().reset();
  551. break;
  552.  
  553. /** Player Profiler */
  554. case 201051:
  555. case 201053:
  556. player.send(new SendConfig(1032, 1));
  557. player.setProfilePrivacy(true);
  558. player.send(new SendMessage("@dre@You have enabled your privacy settings."));
  559. break;
  560. case 201052:
  561. case 201054:
  562. player.send(new SendConfig(1032, 2));
  563. player.setProfilePrivacy(false);
  564. player.send(new SendMessage("@dre@You have disabled your privacy settings."));
  565. break;
  566. case 201055:
  567. PlayerProfiler.myProfile(player);
  568. break;
  569. case 203022:
  570. case 203025:
  571. PlayerProfiler.manageReputation(player, player.viewing, buttonId);
  572. break;
  573. case 201059:
  574. case 185046:
  575. ProfileLeaderboard.open(player, "Views");
  576. break;
  577. case 185049:
  578. ProfileLeaderboard.open(player, "Likes");
  579. break;
  580. case 185052:
  581. ProfileLeaderboard.open(player, "Dislikes");
  582. break;
  583. case 185055:
  584. ProfileLeaderboard.open(player, "Ratio");
  585. break;
  586.  
  587. /** Pricer checker */
  588. case 59103:
  589. player.getPriceChecker().open();
  590. break;
  591. case 189121:
  592. player.getPriceChecker().depositeAll();
  593. break;
  594. case 189194:
  595. player.getPriceChecker().withdrawAll();
  596. break;
  597. case 189124:
  598. player.send(new SendMessage("Coming soon!"));
  599. break;
  600.  
  601. /** Experience lock */
  602. case 59206:
  603. player.start(new OptionDialogue("Lock experience", p -> {
  604. player.getSkill().setExpLock(true);
  605. player.send(new SendMessage("You have @blu@locked</col> your experience."));
  606. player.send(new SendRemoveInterfaces());
  607. }, "Unlock experience", p -> {
  608. player.getSkill().setExpLock(false);
  609. player.send(new SendMessage("You have @blu@unlocked</col> your experience."));
  610. player.send(new SendRemoveInterfaces());
  611. }));
  612. break;
  613.  
  614. /** Bank */
  615. case 195087: // option
  616. player.send(new SendInterface(32500));
  617. break;
  618. case 127000:
  619. player.send(new SendInterface(5292));
  620. break;
  621.  
  622. /** Shop exchange */
  623. case 209002:
  624. player.start(new OptionDialogue("Search name", p -> {
  625. player.setEnterXInterfaceId(55777);
  626. player.getClient().queueOutgoingPacket(new SendEnterString());
  627. }, "Search item", p -> {
  628. player.setEnterXInterfaceId(55778);
  629. player.getClient().queueOutgoingPacket(new SendEnterString());
  630. }));
  631. break;
  632.  
  633. /** Fire color */
  634. // case 194098:
  635. // case 194101:
  636. // case 194104:
  637. // case 194107:
  638. // FireColor.main(player, buttonId);
  639. // break;
  640.  
  641. /** Achievement & Quest Tab */
  642. case 114220:
  643. player.send(new SendSidebarInterface(2, 31000));
  644. break;
  645. case 121028:
  646. InterfaceHandler.writeText(new QuestTab(player));
  647. player.send(new SendSidebarInterface(2, 29400));
  648. break;
  649. case 114226:
  650. player.send(new SendMessage("@red@You have refreshed the Quest Tab."));
  651. InterfaceHandler.writeText(new QuestTab(player));
  652. break;
  653. case 115077:
  654. player.send(new SendString("@blu@" + player.getUsername() + "'s tracked points.", 8144));
  655. InterfaceHandler.writeText(new PointsInterface(player));
  656. player.send(new SendInterface(8134));
  657. break;
  658. case 115078:
  659. int linePosition = 8145;
  660. HashMap<String, Integer> map = player.getProperties().getPropertyValues("MOB");
  661.  
  662. List<String> alphabetical = new ArrayList<>();
  663. alphabetical.addAll(map.keySet());
  664. alphabetical.sort(String.CASE_INSENSITIVE_ORDER);
  665.  
  666. for (String key : alphabetical) {
  667. String line = Utility.formatPlayerName(key.toLowerCase().replaceAll("_", " ")) + ": @dre@" + map.get(key);
  668. player.send(new SendString("@dre@Player Log Panel | " + alphabetical.size() + " Logs", 8144));
  669. player.send(new SendString("</col>" + line, linePosition++));
  670. }
  671.  
  672. map = player.getProperties().getPropertyValues("BARROWS");
  673. for (String key : map.keySet()) {
  674. String line = Utility.formatPlayerName(key.toLowerCase().replaceAll("_", " ")) + ": @dre@" + map.get(key);
  675. player.send(new SendString("</col>" + line, linePosition++));
  676. }
  677.  
  678. while (linePosition < 8193) {
  679. player.send(new SendString("", linePosition++));
  680. }
  681.  
  682. player.send(new SendInterface(8134));
  683. break;
  684.  
  685. /** Players online && Quest tab */
  686. case 115062:
  687. case 154052:
  688. PlayersOnline.showPlayers(player, p -> {
  689. return true;
  690. });
  691. break;
  692. case 115070:
  693. /*player.send(new SendString("@dre@Vencillio's Latest Updates (</col> " + GameSettings.LATEST_UPDATE.length + " @dre@)", 8144));
  694. for (int i = 0; i < 30; i++) {
  695. player.send(new SendString("", 8145 + i));
  696. }
  697. for (int i = 0; i < GameSettings.LATEST_UPDATE.length; i++) {
  698. player.send(new SendString("</col>" + (i + 1) + ") @dre@" + GameSettings.LATEST_UPDATE[i], 8145 + i));
  699. }
  700. player.send(new SendInterface(8134));*/
  701. break;
  702.  
  703. /** Special attack button */
  704. case 29124:
  705. case 29049:
  706. case 29199:
  707. case 29138:
  708. case 48034:
  709. case 155:
  710. case 30108:
  711. case 29238:
  712. player.getSpecialAttack().clickSpecialButton(buttonId);
  713. break;
  714. case 29074:
  715. if (player.getSpecialAttack().getAmount() != 100) {
  716. player.send(new SendMessage("You do not have enough special attack to do this!"));
  717. return;
  718. }
  719. player.getUpdateFlags().sendAnimation(new Animation(1056));
  720. player.getUpdateFlags().sendGraphic(new Graphic(246));
  721. player.getSpecialAttack().deduct(100);
  722. player.getSpecialAttack().update();
  723. player.getSpecialAttack().setInitialized(false);
  724. player.getLevels()[Skills.ATTACK] = (short) (player.getMaxLevels()[Skills.ATTACK] * 0.9);
  725. player.getLevels()[Skills.DEFENCE] = (short) (player.getMaxLevels()[Skills.DEFENCE] * 0.9);
  726. player.getLevels()[Skills.RANGED] = (short) (player.getMaxLevels()[Skills.RANGED] * 0.9);
  727. player.getLevels()[Skills.MAGIC] = (short) (player.getMaxLevels()[Skills.MAGIC] * 0.9);
  728. player.getLevels()[Skills.STRENGTH] = (short) (player.getMaxLevels()[Skills.STRENGTH] * 1.2);
  729. player.getSkill().update(Skills.ATTACK);
  730. player.getSkill().update(Skills.DEFENCE);
  731. player.getSkill().update(Skills.RANGED);
  732. player.getSkill().update(Skills.MAGIC);
  733. player.getSkill().update(Skills.STRENGTH);
  734. player.getUpdateFlags().sendForceMessage("Raarrrrrgggggghhhhhhh!");
  735. break;
  736.  
  737.  
  738. case 155026:
  739. player.getClient().queueOutgoingPacket(new SendInterface(38700));
  740. break;
  741. case 151045:
  742. player.getClient().queueOutgoingPacket(new SendInterface(39700));
  743. break;
  744. case 9118:
  745. case 83051:
  746. player.getClient().queueOutgoingPacket(new SendRemoveInterfaces());
  747. break;
  748. case 83093:
  749. player.getClient().queueOutgoingPacket(new SendInterface(15106));
  750. break;
  751. case 3162:
  752. player.setMusicVolume((byte) 4);
  753. player.getClient().queueOutgoingPacket(new SendConfig(168, 4));
  754. break;
  755. case 70209:
  756. player.setEnterXInterfaceId(6969);
  757. break;
  758. case 3163:
  759. case 3164:
  760. case 3165:
  761. case 3166:
  762. player.setMusicVolume((byte) (3166 - buttonId));
  763. player.getClient().queueOutgoingPacket(new SendConfig(168, player.getMusicVolume()));
  764. break;
  765. case 3173:
  766. player.setSoundVolume((byte) 4);
  767. player.getClient().queueOutgoingPacket(new SendConfig(169, 4));
  768. break;
  769. case 3174:
  770. case 3175:
  771. case 3176:
  772. case 3177:
  773. player.setSoundVolume((byte) (3177 - buttonId));
  774. player.getClient().queueOutgoingPacket(new SendConfig(169, player.getSoundVolume()));
  775. break;
  776. case 24125:
  777. player.getAttributes().remove("manual");
  778. break;
  779. case 24126:
  780. player.getAttributes().set("manual", Byte.valueOf((byte) 1));
  781. break;
  782. case 108005:
  783. player.getClient().queueOutgoingPacket(new SendInterface(19148));
  784. break;
  785. case 14067:
  786. player.setAppearanceUpdateRequired(true);
  787. player.getClient().queueOutgoingPacket(new SendRemoveInterfaces());
  788. break;
  789. case 9154:
  790. if (player.getCombat().inCombat()) {
  791. player.getClient().queueOutgoingPacket(new SendMessage("You can't logout while in combat!"));
  792. } else {
  793. if (player.getClient().getStage() == Client.Stages.LOGGED_IN) {
  794. player.logout(false);
  795. }
  796. }
  797. break;
  798.  
  799. case 74:
  800. case 152:
  801. case 33230:
  802. case 74214:
  803. player.getRunEnergy().setRunning(!player.getRunEnergy().isRunning());
  804. player.getClient().queueOutgoingPacket(new SendConfig(173, player.getRunEnergy().isRunning() ? 1 : 0));
  805. break;
  806. case 211172:
  807. player.getRunEnergy().toggleResting();
  808. break;
  809.  
  810. case 3138:
  811. player.setScreenBrightness((byte) 1);
  812. break;
  813. case 3140:
  814. player.setScreenBrightness((byte) 2);
  815. break;
  816. case 3142:
  817. player.setScreenBrightness((byte) 3);
  818. break;
  819. case 3144:
  820. player.setScreenBrightness((byte) 4);
  821. break;
  822. case 100228:
  823. player.setMultipleMouseButtons((byte) (player.getMultipleMouseButtons() == 0 ? 1 : 0));
  824. break;
  825. case 100231:
  826. player.setChatEffectsEnabled((byte) (player.getChatEffectsEnabled() == 0 ? 1 : 0));
  827. break;
  828. case 3189:
  829. player.setSplitPrivateChat((byte) (player.getSplitPrivateChat() == 0 ? 1 : 0));
  830. player.getClient().queueOutgoingPacket(new SendConfig(287, player.getSplitPrivateChat()));
  831. break;
  832. case 100237:
  833. player.setAcceptAid((byte) (player.getAcceptAid() == 0 ? 1 : 0));
  834. break;
  835. case 150:
  836. case 89061:
  837. case 93202:
  838. case 93209:
  839. case 93217:
  840. case 93225:
  841. case 94051:
  842. player.setRetaliate(!player.isRetaliate());
  843. break;
  844.  
  845. /** Items kept on death */
  846. case 59100:
  847. int kept = 3;
  848.  
  849. if (player.getSkulling().isSkulled()) {
  850. kept = 0;
  851. }
  852.  
  853. if (player.getPrayer().active(Prayer.PROTECT_ITEM)) {
  854. kept++;
  855. }
  856.  
  857. Queue<Item> dropItems = new PriorityQueue<Item>(42, PlayerDrops.ITEM_VALUE_COMPARATOR);
  858.  
  859. for (Item i : player.getInventory().getItems()) {
  860. if (i != null) {
  861. dropItems.add(new Item(i.getId(), i.getAmount()));
  862. }
  863. }
  864.  
  865. for (Item i : player.getEquipment().getItems()) {
  866. if (i != null) {
  867. dropItems.add(new Item(i.getId(), i.getAmount()));
  868. }
  869. }
  870.  
  871. Item dropItem = null;
  872. Item[] toKeep = new Item[kept];
  873. int keepIndex = 0;
  874.  
  875. for (int i = 0; i < kept; i++) {
  876. Item keep = dropItems.poll();
  877.  
  878. if (keep != null) {
  879. if (keep.getAmount() == 1) {
  880. toKeep[keepIndex++] = keep;
  881. } else {
  882. keep.remove(1);
  883. toKeep[keepIndex++] = new Item(keep.getId(), 1);
  884. }
  885. }
  886. }
  887.  
  888. Item[] toDrop = new Item[dropItems.size()];
  889. int dropIndex = 0;
  890.  
  891. while ((dropItem = dropItems.poll()) != null) {
  892. if (dropItem.getDefinition().isTradable() || !dropItem.getDefinition().isTradable() ||ItemCheck.isItemDyedWhip(dropItem)) {
  893. toDrop[dropIndex++] = dropItem;
  894. }
  895. }
  896.  
  897. for (int i = 17109; i < 17131; i++) {
  898. player.send(new SendString("", i));
  899. }
  900.  
  901. player.send(new SendString("Items you will keep on death:", 17104));
  902. player.send(new SendString("Items you will lose on death:", 17105));
  903. player.send(new SendString("Player Information", 17106));
  904. player.send(new SendString("Max items kept on death:", 17107));
  905. player.send(new SendString("~ " + kept + " ~", 17108));
  906. player.send(new SendString("The normal amount of", 17111));
  907. player.send(new SendString("items kept is three.", 17112));
  908. switch (kept) {
  909. case 0:
  910. default:
  911. player.send(new SendString("Items you will keep on death:", 17104));
  912. player.send(new SendString("Items you will lose on death:", 17105));
  913. player.send(new SendString("You're marked with a", 17111));
  914. player.send(new SendString("@red@skull. @lre@This reduces the", 17112));
  915. player.send(new SendString("items you keep from", 17113));
  916. player.send(new SendString("three to zero!", 17114));
  917. break;
  918. case 1:
  919. player.send(new SendString("Items you will keep on death:", 17104));
  920. player.send(new SendString("Items you will lose on death:", 17105));
  921. player.send(new SendString("You're marked with a", 17111));
  922. player.send(new SendString("@red@skull. @lre@This reduces the", 17112));
  923. player.send(new SendString("items you keep from", 17113));
  924. player.send(new SendString("three to zero!", 17114));
  925. player.send(new SendString("However, you also have", 17115));
  926. player.send(new SendString("the @red@Protect @lre@Items prayer", 17116));
  927. player.send(new SendString("active, which saves you", 17117));
  928. player.send(new SendString("one extra item!", 17118));
  929. break;
  930. case 3:
  931. player.send(new SendString("Items you will keep on death(if not skulled):", 17104));
  932. player.send(new SendString("Items you will lose on death(if not skulled):", 17105));
  933. player.send(new SendString("You have no factors", 17111));
  934. player.send(new SendString("affecting the items you", 17112));
  935. player.send(new SendString("keep.", 17113));
  936. break;
  937. case 4:
  938. player.send(new SendString("Items you will keep on death(if not skulled):", 17104));
  939. player.send(new SendString("Items you will lose on death(if not skulled):", 17105));
  940. player.send(new SendString("You have the @red@Protect", 17111));
  941. player.send(new SendString("@red@Item @lre@prayer active,", 17112));
  942. player.send(new SendString("which saves you one", 17113));
  943. player.send(new SendString("extra item!", 17114));
  944. break;
  945. }
  946. player.send(new SendString("Carried wealth:", 17121));
  947. BigInteger carrying = player.getInventory().getContainerNet().add(player.getEquipment().getContainerNet());
  948. if (carrying.equals(BigInteger.ZERO)) {
  949. player.send(new SendString("@red@Nothing!", 17122));
  950. } else {
  951. player.send(new SendString("@red@" + NumberFormat.getNumberInstance(Locale.US).format(carrying) + "</col> coins.", 17122));
  952. }
  953.  
  954.  
  955. BigInteger risked = BigInteger.ZERO;
  956. for (Item dropping : toDrop) {
  957. if (dropping == null || dropping.getDefinition() == null) {
  958. continue;
  959. }
  960.  
  961. risked = risked.add(new BigInteger(String.valueOf(dropping.getDefinition().getGeneralPrice())).multiply(new BigInteger(String.valueOf(dropping.getAmount()))));
  962. }
  963.  
  964. player.send(new SendString("Risked wealth:", 17124));
  965.  
  966. if (risked.equals(BigInteger.ZERO)) {
  967. player.send(new SendString("@red@Nothing!", 17125));
  968. } else {
  969. player.send(new SendString("@red@" + NumberFormat.getNumberInstance(Locale.US).format(risked) + "</col> coins.", 17125));
  970. }
  971.  
  972. player.send(new SendUpdateItems(10494, toKeep));
  973. player.send(new SendUpdateItems(10600, toDrop));
  974. player.send(new SendInterface(17100));
  975. break;
  976.  
  977. /** Teleport
  978. case 238107:
  979. case 242083:
  980. case 246059:
  981. case 250035:
  982. case 254011:
  983.  
  984. case 240095:
  985. TeleportHandler.teleport(player);
  986. break;
  987.  
  988. case 5227:
  989. case 238077:// Training
  990. case 242053:
  991. case 246029:
  992. case 253237:
  993. case 240065:
  994. case 250005:
  995. InterfaceHandler.writeText(new TrainingInterface(player));
  996. player.send(new SendInterface(61000));
  997. player.send(new SendString("Selected: @red@None", 61031));
  998. player.send(new SendString("Cost: @red@Free", 61032));
  999. player.send(new SendString("Requirement: @red@None", 61033));
  1000. player.send(new SendString("Other: @red@None", 61034));
  1001. break;
  1002. case 238080:// Skilling
  1003. case 242056:
  1004. case 246032:
  1005. case 253240:
  1006. case 240068:
  1007. case 250008:
  1008. InterfaceHandler.writeText(new SkillingInterface(player));
  1009. player.send(new SendInterface(62000));
  1010. player.send(new SendString("Selected: @red@None", 62031));
  1011. player.send(new SendString("Cost: @red@Free", 62032));
  1012. player.send(new SendString("Requirement: @red@None", 62033));
  1013. player.send(new SendString("Other: @red@None", 62034));
  1014. break;
  1015. case 238083:// PvP
  1016. case 242059:
  1017. case 246035:
  1018. case 253243:
  1019. case 240071:
  1020. case 250011:
  1021. InterfaceHandler.writeText(new PvPInterface(player));
  1022. player.send(new SendInterface(63000));
  1023. player.send(new SendString("Selected: @red@None", 63031));
  1024. player.send(new SendString("Cost: @red@Free", 63032));
  1025. player.send(new SendString("Requirement: @red@None", 63033));
  1026. player.send(new SendString("Other: @red@None", 63034));
  1027. break;
  1028. case 238086:// Boss
  1029. case 246038:
  1030. case 253246:
  1031. case 240074:
  1032. case 250014:
  1033. case 242062:
  1034. InterfaceHandler.writeText(new BossInterface(player));
  1035. player.send(new SendInterface(64000));
  1036. player.send(new SendString("Selected: @red@None", 64031));
  1037. player.send(new SendString("Cost: @red@Free", 64032));
  1038. player.send(new SendString("Requirement: @red@None", 64033));
  1039. player.send(new SendString("Other: @red@None", 64034));
  1040. break;
  1041. case 238089:// Minigame
  1042. case 253249:
  1043. case 246041:
  1044. case 240077:
  1045. case 250017:
  1046. case 242065:
  1047. InterfaceHandler.writeText(new MinigameInterface(player));
  1048. player.send(new SendInterface(65000));
  1049. player.send(new SendString("Selected: @red@None", 65031));
  1050. player.send(new SendString("Cost: @red@Free", 65032));
  1051. player.send(new SendString("Requirement: @red@None", 65033));
  1052. player.send(new SendString("Other: @red@None", 65034));
  1053. break;
  1054. case 238092:// Other
  1055. case 253252:
  1056. case 240080:
  1057. case 250020:
  1058. case 242068:
  1059. case 246044:
  1060. InterfaceHandler.writeText(new OtherInterface(player));
  1061. player.send(new SendInterface(61500));
  1062. player.send(new SendString("Selected: @red@None", 61531));
  1063. player.send(new SendString("Cost: @red@Free", 61532));
  1064. player.send(new SendString("Requirement: @red@None", 61533));
  1065. player.send(new SendString("Other: @red@None", 61534));
  1066. break;
  1067. */
  1068. default:
  1069. if (CreditHandler.handleClicking(player, buttonId)) {
  1070. return;
  1071. }
  1072. if (GenieLamp.handle(player, buttonId)) {
  1073. return;
  1074. }
  1075. if (GenieReset.handle(player, buttonId))
  1076. return;
  1077. if (SkillsChat.handle(player, buttonId))
  1078. break;
  1079. if (player.getSummoning().click(buttonId))
  1080. break;
  1081. if (SummoningCreation.create(player, buttonId))
  1082. break;
  1083. if (Fletching.SINGLETON.clickButton(player, buttonId))
  1084. break;
  1085. if (com.vencillio.rs2.content.skill.craftingnew.Crafting.SINGLETON.clickButton(player, buttonId))
  1086. break;
  1087. if (Crafting.handleCraftingByButtons(player, buttonId))
  1088. break;
  1089. if (HideTanning.clickButton(player, buttonId))
  1090. break;
  1091. if (CookingTask.handleCookingByAmount(player, buttonId))
  1092. break;
  1093. if ((player.getDialogue() != null) && (player.getDialogue().clickButton(buttonId)))
  1094. break;
  1095. if (Autocast.clickButton(player, buttonId))
  1096. break;
  1097. if (Emotes.clickButton(player, buttonId))
  1098. break;
  1099. if (DuelingConstants.clickDuelButton(player, buttonId))
  1100. break;
  1101. if (player.getTrade().clickTradeButton(buttonId))
  1102. break;
  1103. if (player.getBank().clickButton(buttonId))
  1104. break;
  1105. if (player.getMagic().clickMagicButtons(buttonId))
  1106. break;
  1107. if (EquipmentConstants.clickAttackStyleButtons(player, buttonId))
  1108. break;
  1109. if (SmithingConstants.clickSmeltSelection(player, buttonId))
  1110. break;
  1111. if ((player.getAttributes().get("herbloreitem1") != null) && ((((Item) player.getAttributes().get("herbloreitem1")).getId() == 227) || (((Item) player.getAttributes().get("herbloreitem2")).getId() == 227) ? !HerbloreUnfinishedPotionTask.handleHerbloreButtons(player, buttonId) : !HerbloreFinishedPotionTask.handleHerbloreButtons(player, buttonId)))
  1112. break;
  1113. break;
  1114. }
  1115. }
  1116. }
Add Comment
Please, Sign In to add comment