Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.29 KB | None | 0 0
  1. package ps.havoc.game.content.command;
  2.  
  3. import ps.havoc.GameServer;
  4. import ps.havoc.game.World;
  5. import ps.havoc.game.content.CommandInterfaces;
  6. import ps.havoc.game.content.HelpQueue;
  7. import ps.havoc.game.content.ItemsKeptOnDeath;
  8. import ps.havoc.game.content.Jail;
  9. import ps.havoc.game.content.combat.CombatFactory;
  10. import ps.havoc.game.content.combat.Formulas;
  11. import ps.havoc.game.content.combat.prayer.CurseHandler;
  12. import ps.havoc.game.content.combat.prayer.PrayerHandler;
  13. import ps.havoc.game.content.dialogue.DialogueManager;
  14. import ps.havoc.game.content.dialogue.OptionDialogue;
  15. import ps.havoc.game.content.ffa.FreeForAllTask;
  16. import ps.havoc.game.content.logging.KillsLog;
  17. import ps.havoc.game.content.poll.PollInterface;
  18. import ps.havoc.game.content.titles.LoyaltyTitle;
  19. import ps.havoc.game.content.transportation.TeleportHandler;
  20. import ps.havoc.game.model.Locations;
  21. import ps.havoc.game.model.Position;
  22. import ps.havoc.game.model.definitions.NpcDropDefinition;
  23. import ps.havoc.game.model.item.Item;
  24. import ps.havoc.game.model.player.Player;
  25. import ps.havoc.game.task.impl.DoubleBloodMoney;
  26. import ps.havoc.network.rest.payments.Transaction;
  27. import ps.havoc.network.rest.vote.Vote4Rewards;
  28. import ps.havoc.util.ChatColor;
  29. import ps.havoc.util.StringUtil;
  30.  
  31. import java.util.HashSet;
  32. import java.util.Set;
  33.  
  34. import static ps.havoc.Constants.EDGEVILLE_HOME_POSITION;
  35.  
  36. @CommandKey(
  37. {"prot", "dks", "gwd", "mb", "brim", "barrows", "dusties", "edge", "reward", "vote", "keybind", "droplist", "killcounts", "commands", "staff",
  38. "home", "reportbug", "claim", "claimpayment", "store", "donate", "droprate", "maxhit", "help", "empty", "changepass", "changepassword", "players", "yell", "skull", "duel",
  39. "stake", "trade", "doublebm", "ffa", "drag", "fps", "forums", "rules", "topic", "discord",
  40. "lumbridge", "lumb", "varrock", "varr", "falador", "fally", "camelot", "cammy", "ardogune", "ardy", "yanille", "canifis", "rimmington", "rimm", "draynor", "dray", "zanaris", "taverly",
  41. "priceguide", "prices", "clues", "clueguide", "donatorperks", "rwt", "poll", "donatorbenefits"
  42. })
  43. public final class DefaultCommandListener implements CommandListener {
  44.  
  45. @Override
  46. public void execute(Player player, String name, CommandArguments arguments) {
  47. switch (name) {
  48. case "poll":
  49. PollInterface.getSingleton().open(player);
  50. return;
  51. case "rwt":
  52. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  53. return;
  54. case "forums":
  55. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  56. return;
  57. case "donatorperks":
  58. case "donatorbenefits":
  59. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  60. return;
  61. case "rules":
  62. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  63. return;
  64. case "priceguide":
  65. case "prices":
  66. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  67. return;
  68. case "clues":
  69. case "clueguide":
  70. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  71. return;
  72. case "topic":
  73. if (!arguments.hasRemaining()) {
  74. player.message("You must specify the topics id.");
  75. return;
  76. }
  77. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/" + arguments.getNext());
  78. return;
  79.  
  80. case "discord":
  81. player.getPacketSender().sendString(1, "https://discord.gg/CKcVM4b");
  82. return;
  83.  
  84. case "ffa":
  85. if (FreeForAllTask.isQueueing()) {
  86. FreeForAllTask.queue(player);
  87. } else {
  88. player.message("Free for all is not current queueing.");
  89. }
  90. return;
  91.  
  92. case "doublebm":
  93. player.message("Double blood money is currently @blu@" + (DoubleBloodMoney.isEnabled() ? "enabled" : "disabled") + " @bla@.");
  94. return;
  95.  
  96. case "yell":
  97. if (player.getPrivilege().isStaff() || player.getDonatorPrivilege().isDonator()) {
  98.  
  99. if (player.isMuted()) {
  100. player.getPacketSender().sendMessage("You are muted and cannot yell.");
  101. return;
  102. }
  103.  
  104. int delay = 0;
  105. switch (player.getDonatorPrivilege()) {
  106. case ELDER:
  107. delay = 120;
  108. break;
  109. case ALPHA:
  110. delay = 60;
  111. break;
  112. case ROYAL:
  113. delay = 30;
  114. break;
  115. case DIVINE:
  116. delay = 30;
  117. break;
  118. case LEGENDARY:
  119. delay = 20;
  120. break;
  121. case RENOWNED:
  122. delay = 10;
  123. break;
  124. case CELESTIAL:
  125. delay = 0;
  126. break;
  127. }
  128.  
  129. if (player.getPrivilege().isStaff()) {
  130. delay = 0;
  131. }
  132.  
  133. if (!player.getLastYell().hasElapsed((delay * 1000))) {
  134. player.getPacketSender().sendMessage("You must wait at least " + delay + " seconds between every yell message you send.");
  135. return;
  136. }
  137.  
  138. if (Jail.isJailed(player)) {
  139. player.message("You cannot yell while jailed.");
  140. return;
  141. }
  142.  
  143. String title = GameServer.getEnvironment().getName();
  144. LoyaltyTitle activeTitle = player.getLoyaltyTitles().getActiveTitle();
  145. if (activeTitle != null) {
  146. title = activeTitle.getTitle();
  147. }
  148.  
  149. StringBuilder crownsToString = new StringBuilder();
  150. player.getCrowns().forEach(crown -> crownsToString.append(String.format("<img=%s>", crown.getId())));
  151.  
  152. String message = "@bla@[@red@" + title + "@bla@] " + crownsToString + " " + player.getUsername() + ": @dre@" + StringUtil.sanitizeInput(arguments.get());
  153. World.broadcastIf(message, p -> p != null && !p.getPrivateMessaging().getIgnoreList().contains(player.getLongUsername()));
  154. player.getLastYell().reset();
  155. }
  156. return;
  157.  
  158. case "lumbridge":
  159. case "lumb":
  160. TeleportHandler.teleportPlayer(player, new Position(3222, 3222), player.getSpellbook().getTeleportType());
  161. return;
  162.  
  163. case "varrock":
  164. case "varr":
  165. TeleportHandler.teleportPlayer(player, new Position(3210, 3424), player.getSpellbook().getTeleportType());
  166. return;
  167.  
  168. case "falador":
  169. case "fally":
  170. TeleportHandler.teleportPlayer(player, new Position(2964, 3378), player.getSpellbook().getTeleportType());
  171. return;
  172.  
  173. case "camelot":
  174. case "cammy":
  175. TeleportHandler.teleportPlayer(player, new Position(2757, 3477), player.getSpellbook().getTeleportType());
  176. return;
  177.  
  178. case "ardougne":
  179. case "ardy":
  180. TeleportHandler.teleportPlayer(player, new Position(2662, 3305), player.getSpellbook().getTeleportType());
  181. return;
  182.  
  183. case "yanille":
  184. TeleportHandler.teleportPlayer(player, new Position(2606, 3093), player.getSpellbook().getTeleportType());
  185. return;
  186.  
  187. case "canifis":
  188. TeleportHandler.teleportPlayer(player, new Position(3496, 3491), player.getSpellbook().getTeleportType());
  189. return;
  190.  
  191. case "rimmington":
  192. case "rimm":
  193. TeleportHandler.teleportPlayer(player, new Position(2960, 3215), player.getSpellbook().getTeleportType());
  194. return;
  195.  
  196. case "draynor":
  197. case "dray":
  198. TeleportHandler.teleportPlayer(player, new Position(3093, 3244), player.getSpellbook().getTeleportType());
  199. return;
  200.  
  201. case "zanaris":
  202. TeleportHandler.teleportPlayer(player, new Position(2452, 4472), player.getSpellbook().getTeleportType());
  203. return;
  204.  
  205. case "taverly":
  206. TeleportHandler.teleportPlayer(player, new Position(2897, 3456), player.getSpellbook().getTeleportType());
  207. return;
  208.  
  209. case "duel":
  210. case "stake":
  211. TeleportHandler.teleportPlayer(player, new Position(3366, 3268), player.getSpellbook().getTeleportType());
  212. return;
  213.  
  214. case "trade":
  215. TeleportHandler.teleportPlayer(player, new Position(3164, 3472), player.getSpellbook().getTeleportType());
  216. player.message("<img=10> @blu@Join the clan chat " + '"' + "trade" + '"' + " to communicate with traders.");
  217. break;
  218.  
  219. case "prot":
  220. boolean prot = player.getPrayerActive()[PrayerHandler.PROTECT_ITEM] || player.getCurseActive()[CurseHandler.PROTECT_ITEM];
  221. int amount = ItemsKeptOnDeath.getAmountToKeep(player);
  222. player.message("Your protect item prayer is " + (prot ? ChatColor.GREEN + "on" : ChatColor.RED + "off") + ".");
  223. player.message("You will keep " + ChatColor.RED + amount + "</col> items on death.");
  224. return;
  225.  
  226. case "dks":
  227. TeleportHandler.teleportPlayer(player, new Position(1913, 4367), player.getSpellbook().getTeleportType());
  228. return;
  229.  
  230. case "gwd":
  231. if (player.getLocation() == Locations.Location.GODWARS_DUNGEON) {
  232. player.message("You are already in the Godwars dungeon.");
  233. return;
  234. }
  235. TeleportHandler.teleportPlayer(player, new Position(2881, 5310, 2), player.getSpellbook().getTeleportType());
  236. return;
  237.  
  238. case "mb":
  239. TeleportHandler.teleportPlayer(player, new Position(2538, 4715), player.getSpellbook().getTeleportType());
  240. return;
  241.  
  242. case "brim":
  243. TeleportHandler.teleportPlayer(player, new Position(2667, 9561), player.getSpellbook().getTeleportType());
  244. return;
  245.  
  246. case "barrows":
  247. TeleportHandler.teleportPlayer(player, new Position(3567, 3318), player.getSpellbook().getTeleportType());
  248. return;
  249.  
  250. case "dusties":
  251. TeleportHandler.teleportPlayer(player, new Position(3206, 9379), player.getSpellbook().getTeleportType());
  252. return;
  253.  
  254. case "edge":
  255. TeleportHandler.teleportPlayer(player, new Position(3088, 3492), player.getSpellbook().getTeleportType());
  256. return;
  257.  
  258. case "skull":
  259. if (player.getSkullTimer() > 0) {
  260. player.message("You are already skulled.");
  261. return;
  262. }
  263. CombatFactory.skullPlayer(player);
  264. return;
  265.  
  266. case "reward":
  267. Vote4Rewards.claim(player);
  268. return;
  269.  
  270. case "vote":
  271. player.getPacketSender().sendString(1, "http://runeguild.everythingrs.com/services/vote");
  272. return;
  273.  
  274. case "keybind":
  275. player.getPacketSender().sendInterface(64_434);
  276. return;
  277.  
  278. case "killcounts":
  279. KillsLog.open(player);
  280. return;
  281.  
  282. case "droplist":
  283. player.getPacketSender().sendInterface(60_912);
  284. return;
  285.  
  286. case "commands":
  287. CommandInterfaces.openCommandList(player);
  288. return;
  289.  
  290. case "staff":
  291. CommandInterfaces.openStaffList(player);
  292. return;
  293.  
  294. case "home":
  295. TeleportHandler.teleportPlayer(player, EDGEVILLE_HOME_POSITION, player.getSpellbook().getTeleportType());
  296. return;
  297.  
  298. case "reportbug":
  299. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  300. return;
  301.  
  302. case "droprate":
  303. NpcDropDefinition.getChanceIncrease(player, 1, true);
  304. return;
  305.  
  306. case "claimpayment":
  307. case "claim":
  308. Transaction.query(player);
  309. player.message("Sending your request to space...");
  310. return;
  311.  
  312. case "donate":
  313. case "store":
  314. player.getPacketSender().sendString(1, "http://www.RuneGuild.org/");
  315. return;
  316.  
  317. case "maxhit":
  318. player.getPacketSender().sendMessage("@bla@Melee hit: @or2@" + Formulas.calculateMaxMeleeHit(player, null) / 10);
  319. player.getPacketSender().sendMessage("@bla@Ranged hit: @or2@" + Formulas.calculateMaxRangedHit(player, null) / 10);
  320. return;
  321.  
  322. case "help":
  323. if(player.getPrivilege().isStaff()) {
  324. HelpQueue.acceptNext(player);
  325. } else {
  326. HelpQueue.requestHelp(player);
  327. }
  328. return;
  329.  
  330. case "empty":
  331. Set<Item> items = new HashSet<>();
  332. DialogueManager.start(player, new OptionDialogue("Yes. This is irreversible.", "No, I want to keep my items.") {
  333. @Override
  334. public void option(Player player, int option) {
  335. player.getPacketSender().sendInterfaceRemoval();
  336. if (option == 1) {
  337. for (Item item : player.getInventory().getItems()) {
  338. if (item != null && item.getId() > 0 && item.getAmount() > 0) {
  339. if (!item.tradeable()) {
  340. player.messageWithDelay(10_000, "Some of your items were unable to be deleted.");
  341. continue;
  342. }
  343.  
  344. player.getInventory().delete(item.getId(), item.getAmount());
  345. items.add(new Item(item.getId(), item.getAmount()));
  346. }
  347. }
  348. }
  349. }
  350.  
  351. @Override
  352. public String getTitle() {
  353. return "Delete all inventory items?";
  354. }
  355. });
  356. return;
  357.  
  358. case "players":
  359. player.message("There are currently <col=255>%s</col> people playing %s!", World.getPlayerCount(), GameServer.getEnvironment().getName());
  360. return;
  361.  
  362. case "changepass":
  363. case "changepassword":
  364. player.message(ChatColor.RED + "You can change your password from our website http://www.RuneGuild.org/");
  365. return;
  366. }
  367. }
  368.  
  369. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement