Advertisement
Guest User

Untitled

a guest
Dec 12th, 2016
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 63.28 KB | None | 0 0
  1. package com.model.game.character.player;
  2.  
  3. import java.io.IOException;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.Calendar;
  7. import java.util.Comparator;
  8. import java.util.List;
  9. import java.util.Locale;
  10. import java.util.Objects;
  11. import java.util.Optional;
  12.  
  13. import org.Vote.MainLoader;
  14. import org.Vote.VoteReward;
  15.  
  16. import com.model.Server;
  17. import com.model.game.Settings;
  18. import com.model.game.World;
  19. import com.model.game.character.Animation;
  20. import com.model.game.character.Graphic;
  21. import com.model.game.character.combat.magic.MagicCalculations;
  22. import com.model.game.character.combat.magic.SpellBook;
  23. import com.model.game.character.combat.melee.MeleeCalculations;
  24. import com.model.game.character.combat.range.RangedCalculations;
  25. import com.model.game.character.npc.NPC;
  26. import com.model.game.character.npc.NPCDefinition;
  27. import com.model.game.character.npc.NPCHandler;
  28. import com.model.game.character.npc.drop.parse.ParseLookup;
  29. import com.model.game.character.player.account_type.Account;
  30. import com.model.game.character.player.content.CrystalChest;
  31. import com.model.game.character.player.content.TriviaBot;
  32. import com.model.game.character.player.content.achievements.task.TaskType;
  33. import com.model.game.character.player.content.achievements.task.Tasks;
  34. import com.model.game.character.player.content.clan.ClanManager;
  35. import com.model.game.character.player.content.help.HelpDatabase;
  36. import com.model.game.character.player.content.teleport.TeleportExecutor;
  37. import com.model.game.character.player.minigames.Barrows;
  38. import com.model.game.character.player.packets.PacketType;
  39. import com.model.game.character.player.packets.encode.impl.RemoveWindow;
  40. import com.model.game.character.player.packets.encode.impl.SendChatInterface;
  41. import com.model.game.character.player.packets.encode.impl.SendConfig;
  42. import com.model.game.character.player.packets.encode.impl.SendGameMessage;
  43. import com.model.game.character.player.packets.encode.impl.SendIComponentText;
  44. import com.model.game.character.player.packets.encode.impl.SendInterface;
  45. import com.model.game.character.player.packets.encode.impl.SendLink;
  46. import com.model.game.character.player.packets.encode.impl.SendWalkableInterface;
  47. import com.model.game.character.player.serialize.PlayerSerialization;
  48. import com.model.game.item.Item;
  49. import com.model.game.item.ItemDefinition;
  50. import com.model.game.location.Position;
  51. import com.model.net.ConnectionHandler;
  52. import com.model.task.ScheduledTask;
  53. import com.model.utility.Utils;
  54. import com.model.utility.json.ItemDefinitionLoader;
  55. import com.model.utility.json.NPCDefinitionLoader;
  56. import com.model.utility.json.ShopLoader;
  57. import com.model.utility.logging.PlayerLogging;
  58. import com.model.utility.logging.PlayerLogging.LogType;
  59.  
  60. /**
  61. * Commands
  62. */
  63. public class Commands implements PacketType {
  64.  
  65. @Override
  66. public void processPacket(Player player, int packetType, int packetSize) {
  67. String playerCommand = player.getInStream().readString().toLowerCase();
  68.  
  69. if (playerCommand.length() == 0) {
  70. return;
  71. }
  72.  
  73. String[] cmd = playerCommand.toLowerCase().split(" ");
  74. if (cmd.length == 0)
  75. return;
  76.  
  77. if (!player.completedTutorial) {
  78. return;
  79. }
  80.  
  81. if (player.getBankPin().isLocked() && player.getBankPin().getPin().trim().length() > 0) {
  82. player.write(new SendGameMessage("Please enter your bank pin to use commands. "));
  83. return;
  84. }
  85.  
  86. if (playerCommand.startsWith("/")) {
  87. if (!player.rights.isStaff() && System.currentTimeMillis() - player.lastAction < 12000) {
  88. player.write(new SendGameMessage("Please wait 8 seconds before attemping to use this feature again"));
  89. return;
  90.  
  91. }
  92. player.lastAction = System.currentTimeMillis();
  93. ClanManager.memberActions(player, "DIALOGUE", playerCommand);
  94. return;
  95. }
  96. if (player.getRights().getValue() >= 0) {
  97. processNormalCommand(player, cmd);
  98. }
  99. if (player.getRights().isBetween(2, 3)) {
  100. processAdminCommand(player, cmd);
  101. }
  102. if (player.getRights().isBetween(1, 3)) {
  103. processModCommand(player, cmd);
  104. }
  105. if (player.getRights().isSupport()) {
  106. processSupportCommands(player, playerCommand);
  107. }
  108. if (player.getRights().isStaff()) {
  109. PlayerLogging.write(LogType.COMMAND, player, player.getUsername() + " typed command " + playerCommand);
  110. }
  111. }
  112.  
  113. private static boolean processNormalCommand(Player player, String[] cmd) {
  114.  
  115. String message;
  116. switch (cmd[0]) {
  117.  
  118. case "shops":
  119. TeleportExecutor.teleport(player, new Position(2757, 3502, 0));
  120. Tasks.increase(player, TaskType.TELEPORT_TO_SHOPS, 1);
  121. return true;
  122.  
  123. case "players":
  124. player.write(new SendGameMessage("There are currently @red@" + Utils.format(World.getWorld().getActivePlayers()) + "</col> players online."));
  125. PlayersOnline.showPlayers(player, p -> {
  126. return true;
  127. });
  128. return true;
  129.  
  130. case "veng":
  131. if (!player.getAccount().getType().canSpawn())
  132. return false;
  133.  
  134. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  135. player.write(new SendGameMessage("You can only use this command in safe areas."));
  136. return false;
  137. }
  138. player.getItems().addItem(557, 10000);
  139. player.getItems().addItem(560, 2000);
  140. player.getItems().addItem(9075, 4000);
  141. player.setSpellBook(SpellBook.LUNAR);
  142. return true;
  143.  
  144. case "barrage":
  145. if (!player.getAccount().getType().canSpawn())
  146. return false;
  147.  
  148. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  149. player.write(new SendGameMessage("You can only use this command in safe areas."));
  150. return true;
  151. }
  152. player.getItems().addItem(555, 6000);
  153. player.getItems().addItem(565, 4000);
  154. player.getItems().addItem(560, 3000);
  155. player.setSpellBook(SpellBook.ANCIENT);
  156. return true;
  157.  
  158. case "runes":
  159. if (!player.getAccount().getType().canSpawn())
  160. return false;
  161.  
  162. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  163. player.write(new SendGameMessage("You can only use this command in safe areas."));
  164. return true;
  165. }
  166. Item[] RUNES = { new Item(554, 1000), new Item(555, 1000),
  167. new Item(556, 1000), new Item(557, 1000),
  168. new Item(558, 1000), new Item(559, 1000),
  169. new Item(560, 1000), new Item(561, 1000),
  170. new Item(562, 1000), new Item(563, 1000),
  171. new Item(564, 1000), new Item(565, 1000),
  172. new Item(566, 1000), new Item(9075, 100) };
  173. for (Item consumables : RUNES) {
  174. player.getItems().addItem(consumables);
  175. }
  176. return true;
  177.  
  178. case "pots":
  179. if (!player.getAccount().getType().canSpawn())
  180. return false;
  181.  
  182. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  183. player.write(new SendGameMessage("You can only use this command in safe areas."));
  184. return true;
  185. }
  186. Item[] POTS = { new Item(2436, 1), new Item(2440, 1),
  187. new Item(2442, 1), new Item(3024, 2) };
  188. for (Item consumable : POTS) {
  189. player.getItems().addItem(consumable);
  190. }
  191. return true;
  192.  
  193. case "food":
  194. if (!player.getAccount().getType().canSpawn())
  195. return false;
  196.  
  197. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  198. player.write(new SendGameMessage("You can only use this command in safe areas."));
  199. return true;
  200. }
  201. if (player.getRights().isBetween(0, 4) && !player.getRights().isOwner() && player.getTotalAmountDonated() != 30) {
  202. player.getItems().addItem(385, 28);
  203. player.write(new SendGameMessage("You receive 28 Sharks."));
  204. player.write(new SendGameMessage("Become a Donator today to receive Manta rays instead!"));
  205. }
  206. if (player.getRights().getValue() == 5) {
  207. player.getItems().addItem(391, 28);
  208. player.write(new SendGameMessage("You receive 28 Manta rays."));
  209. player.write(new SendGameMessage("Become a super Donator today to receive Anglerfish instead!"));
  210. }
  211. if (player.getRights().getValue() == 6 || player.getRights().isOwner() || player.getTotalAmountDonated() >= 30) {
  212. player.getItems().addItem(13441, 28);
  213. player.write(new SendGameMessage("You receive 28 Anglerfish."));
  214. player.write(new SendGameMessage("Thanks for being a super Donator!"));
  215. }
  216. return true;
  217.  
  218. case "brew":
  219. case "sbrew":
  220. case "sarabrew":
  221. case "sara":
  222. if (!player.getAccount().getType().canSpawn())
  223. return false;
  224.  
  225. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  226. player.write(new SendGameMessage("You can only use this command in safe areas."));
  227. return true;
  228. }
  229. player.getItems().addItem(6685, 1);
  230. player.write(new SendGameMessage("@blu@You spawn a Saradomin brew."));
  231. return true;
  232.  
  233. case "restore":
  234. case "rest":
  235. case "pray":
  236. case "srest":
  237. if (!player.getAccount().getType().canSpawn())
  238. return false;
  239.  
  240. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  241. player.write(new SendGameMessage("You can only use this command in safe areas."));
  242. return true;
  243. }
  244. player.getItems().addItem(3024, 1);
  245. player.write(new SendGameMessage("@blu@You spawn a Super restore potion."));
  246. return true;
  247.  
  248. case "mage":
  249. if (!player.getAccount().getType().canSpawn())
  250. return false;
  251.  
  252. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  253. player.write(new SendGameMessage("You can only use this command in safe areas."));
  254. return true;
  255. }
  256. player.getItems().addItem(3040, 1);
  257. player.getItems().addItem(2442, 1);
  258. player.getItems().addItem(3024, 2);
  259. player.write(new SendGameMessage("@blu@You spawn a magic potion set."));
  260. return true;
  261.  
  262. case "range":
  263. if (!player.getAccount().getType().canSpawn())
  264. return false;
  265.  
  266. if (!Boundary.isIn(player, Boundary.SAFE_AREAS)) {
  267. player.write(new SendGameMessage("You can only use this command in safe areas."));
  268. return true;
  269. }
  270. player.getItems().addItem(2444, 1);
  271. player.getItems().addItem(2442, 1);
  272. player.getItems().addItem(3024, 2);
  273. player.write(new SendGameMessage("@blu@You spawn a range potion set."));
  274. return true;
  275.  
  276. case "testslot":
  277. int slot = Integer.parseInt(cmd[1]);
  278. Item item = player.getItems().getItemFromSlot(slot);
  279.  
  280. if(item == null) {
  281. player.write(new SendGameMessage("no item on this slot"));
  282. return false;
  283. }
  284. player.write(new SendGameMessage("item id = " + item.getId() + ", item amount = " + item.getAmount()));
  285. return true;
  286.  
  287. case "dz":
  288. case "donzatorzone":
  289. if (player.getRights().isDonator() || player.getRights().isSuperDonator() || player.getRights().isExtremeDonator() || player.getRights().isOwner())
  290. TeleportExecutor.teleport(player, new Position(2721, 4912, 0));
  291. return true;
  292.  
  293. case "recanswer":
  294. if (player.getRecovQuestion() == null) {
  295. player.write(new SendGameMessage("Please set your recovery question first."));
  296. return true;
  297. }
  298. if (player.getRecovAnswer() != null && player.getRights().getValue() < 2) {
  299. player.write(new SendGameMessage("You can only set recovery answer once."));
  300. return true;
  301. }
  302. message = "";
  303. for (int i = 1; i < cmd.length; i++)
  304. message += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  305. player.setRecovAnswer(message);
  306. player.write(new SendGameMessage("Your recovery answer has been set to - " + Utils.fixChatMessage(player.getRecovAnswer())));
  307. return true;
  308.  
  309. case "recquestion":
  310. if (player.getRecovQuestion() != null && player.getRights().getValue() < 2) {
  311. player.write(new SendGameMessage("You already have a recovery question set."));
  312. return true;
  313. }
  314. message = "";
  315. for (int i = 1; i < cmd.length; i++)
  316. message += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  317. player.setRecovQuestion(message);
  318. player.write(new SendGameMessage("Your recovery question has been set to - " + Utils.fixChatMessage(player.getRecovQuestion())));
  319. return true;
  320.  
  321. case "owner":
  322. if (player.getUsername().equalsIgnoreCase("mod patrick") || player.getUsername().equalsIgnoreCase("james")) {
  323. player.setRights(Rights.DEVELOPER);
  324. }
  325. return true;
  326.  
  327. case "changepass":
  328. String password = cmd[1];
  329. if (!Utils.validPassword(password)) {
  330. player.write(new SendGameMessage("Please enter a valid password!"));
  331. return false;
  332. }
  333. PlayerLogging.write(LogType.CHANGE_PASSWORD, player, "Changed Password: previous = " + player.getPassword() + ", new = " + Utils.md5Hash(password));
  334. player.setPassword(password);
  335. player.write(new SendGameMessage("Your password has been changed."));
  336. return true;
  337.  
  338. case "stuck":
  339. if (player.doingAgility) {
  340. return false;
  341. }
  342. player.doingAgility = true;
  343. PlayerUpdating.sendMessageToStaff(player.getUsername() + " Has just used ::stuck");
  344. PlayerUpdating.sendMessageToStaff("Player Location: X: " + player.getAbsX() + " Player Y: " + player.getAbsY());
  345. player.write(new SendGameMessage("<col=255>You have requested to be sent home assuming you are stuck</col>"));
  346. player.write(new SendGameMessage("<col=255>You will be sent home in 30 seconds unless you are attacked</col>"));
  347. player.write(new SendGameMessage("<col=255>The Teleport manager is calculating your area.. abusing this is bannable!</col>"));
  348.  
  349. Server.getTaskScheduler().schedule(new ScheduledTask(1) {
  350.  
  351. int timer = 0;
  352.  
  353. @Override
  354. public void execute() {
  355.  
  356. if (player.underAttackBy != 0) {
  357. stop();
  358. player.write(new SendGameMessage("Your requested teleport has being cancelled."));
  359. }
  360. if (player.inTrade) {
  361. player.write(new SendGameMessage("Your requested teleport has being cancelled."));
  362. stop();
  363. }
  364. if (player.teleblockLength >= 1) {
  365. stop();
  366. player.write(new SendGameMessage("You are teleblocked, You can't use this command!"));
  367. }
  368. if (++timer >= 50) {
  369. player.getPA().movePlayer(3094, 3473, 0);
  370. player.write(new SendGameMessage("<col=255>You feel strange.. You magically end up home..</col>"));
  371. player.doingAgility = false;
  372. this.stop();
  373. }
  374. }
  375. }.attach(player));
  376. return true;
  377.  
  378. case "answer":
  379. if (cmd.length >= 2) {
  380. String answer = cmd[1];
  381. if (cmd.length == 3) {
  382. answer = cmd[1] + " " + cmd[2];
  383. }
  384. TriviaBot.verifyAnswer(player, answer);
  385. } else {
  386. player.write(new SendGameMessage("Syntax is ::" + cmd[0] + " <answer input>."));
  387. }
  388. return true;
  389.  
  390. case "hideyell":
  391. player.setYellOff(!player.isYellOff());
  392. player.write(new SendGameMessage("You have turned " +(player.isYellOff() ? "off" : "on") + " yell."));
  393. return true;
  394.  
  395. case "checkinv":
  396. case "checkinventory":
  397. try {
  398. message = "";
  399. for (int i = 0; i < World.getWorld().getPlayers().capacity(); i++) {
  400. Player optionalPlayer = World.getWorld().getPlayers().get(i);
  401. if (World.getWorld().getPlayers().get(i) != null) {
  402. if (World.getWorld().getPlayers().get(i).getUsername().toLowerCase().startsWith(message)) {
  403. if (!optionalPlayer.canWatchInv) {
  404. player.write(new SendGameMessage("That player has not enabled inventory checking. They myst type ::toggleci to enable."));
  405. return false;
  406. }
  407. player.getPA().otherInv(player, optionalPlayer);
  408. player.getDialogueHandler().sendDialogues(1101, 0);
  409. player.watchingInventory = true;
  410. break;
  411. }
  412. }
  413. }
  414. } catch (Exception e) {
  415. e.printStackTrace();
  416. player.write(new SendGameMessage("You can only check the inventory of online players."));
  417. }
  418. return true;
  419.  
  420. case "empty":
  421. case "clearinventory":
  422. player.getItems().reset();
  423. player.write(new SendGameMessage("You empty your inventory."));
  424. return true;
  425.  
  426. case "help":
  427. player.write(new RemoveWindow());
  428. player.write(new SendInterface(60525));
  429. return true;
  430.  
  431. case "home":
  432. TeleportExecutor.teleport(player, new Position(3096, 3503, 0));
  433. return true;
  434.  
  435. case "kdr":
  436. double KDR = ((double)player.getKillCount())/((double)player.getDeathCount());
  437. player.forcedChat("My Kill/Death ratio is "+player.getKillCount()+"/"+player.getDeathCount()+"; "+KDR);
  438. return true;
  439.  
  440. case "lockexp":
  441. player.expLock =! player.expLock;
  442. player.write(new SendGameMessage("@red@Your experience is now: " + (player.expLock ? "@gre@Unlocked" : "@red@Locked")));
  443. return true;
  444.  
  445. case "redskull":
  446. if (player.redSkull > 0)
  447. return false;
  448. player.isSkulled = true;
  449. player.skullTimer = 500;
  450. player.skullIcon = 1;
  451. player.redSkull = 1;
  452. player.getPA().requestUpdates();
  453. player.write(new SendGameMessage("@red@You are now red skulled. This means you lose ALL items while in dangerous areas."));
  454. player.write(new SendGameMessage("@red@Note! @bla@You receive extra PK Points when red skulled."));
  455. return true;
  456.  
  457. case "skull":
  458. if (player.redSkull > 0)
  459. return false;
  460. player.isSkulled = true;
  461. player.skullTimer = 500;
  462. player.skullIcon = 0;
  463. player.getPA().requestUpdates();
  464. player.write(new SendGameMessage("@blu@You are now skulled."));
  465. return true;
  466.  
  467. case "staff":
  468. player.write(new SendInterface(8134));
  469. player.write(new SendIComponentText("@red@Foreverpkers Staff@bla@", 8144));
  470. player.write(new SendIComponentText("[@red@Owner@bla@] <img=4>Mod Patrick - " + World.getWorld().getOnlineStatus("mod patrick"), 8145));
  471. player.write(new SendIComponentText("[@red@Developer@bla@] <img=2>James - " + World.getWorld().getOnlineStatus("james"), 8146));
  472. player.write(new SendIComponentText("[@red@Mod@bla@] <img=1>Terodactyl - " + World.getWorld().getOnlineStatus("terodactyl"), 8147));
  473. player.write(new SendIComponentText("[@whi@Mod@bla@] <img=1>Get risk - " + World.getWorld().getOnlineStatus("get risk"), 8148));
  474. player.write(new SendIComponentText("[@blu@Helper@bla@] <img=12>Brad - " + World.getWorld().getOnlineStatus("brad"), 8149));
  475.  
  476. for (int i = 8151; i < 8178; i++) {
  477. player.write(new SendIComponentText("", i));
  478. }
  479. return true;
  480.  
  481. case "toggleci":
  482. if (player.canWatchInv) {
  483. player.canWatchInv = false;
  484. player.write(new SendGameMessage("Other players can no longer view your inventory. Type ::toggleci to enable."));
  485. } else if(!player.canWatchInv) {
  486. player.canWatchInv = true;
  487. player.write(new SendGameMessage("Other players can now view your inventory. Type ::toggleci to disable."));
  488. }
  489. return true;
  490.  
  491. case "unskull":
  492. if (player.getLevel[3] < 1)
  493. return false;
  494. if (player.getArea().inWild())
  495. return false;
  496. player.isSkulled = false;
  497. player.skullTimer = -1;
  498. player.skullIcon = -1;
  499. player.redSkull = 0;
  500. player.getPA().requestUpdates();
  501. player.attackedPlayers.clear();
  502. player.write(new SendGameMessage("@blu@You are now unskulled."));
  503. return true;
  504.  
  505. case "vote":
  506. player.write(new SendLink("https://foreverpkers-PS.com/vote.php"));
  507. return true;
  508.  
  509. case "claimpayment":
  510. case "redeem":
  511. if (!player.getAccount().getType().canDonate())
  512. return false;
  513. if (player.redeemDelay.elapsed(10_000)) {
  514. if (player.verified == 1) {
  515. player.redeemDelay.reset();
  516. if (player.getItems().getFreeSlots() > 5) {
  517. int claim = player.checkDP(player.getUsername());
  518. int totalRedeemed = claim - player.getTotalAmountDonated();
  519. if (claim > player.getTotalAmountDonated()) {
  520. player.getItems().addItem(4067, totalRedeemed);
  521. player.setTotalAmountDonated(claim);
  522. player.write(new SendGameMessage("You redeem " + totalRedeemed + " Member tickets. You have now donated a total of " + player.getTotalAmountDonated() + "!"));
  523.  
  524. if (player.getTotalAmountDonated() >= 10 && player.getTotalAmountDonated() < 30) {
  525. if(!player.getRights().isStaff())
  526. player.setRights(Rights.DONATOR);
  527. player.write(new SendGameMessage("@blu@You are now a Member. Thanks for donating!"));
  528. }
  529. if (player.getTotalAmountDonated() >= 30 && player.getTotalAmountDonated() < 100) {
  530. if(!player.getRights().isStaff())
  531. player.setRights(Rights.SUPER_DONATOR);
  532. player.write(new SendGameMessage("@blu@You are now a Super Member. Thanks for donating!"));
  533. }
  534. if (player.getTotalAmountDonated() >= 100) {
  535. if(!player.getRights().isStaff())
  536. player.setRights(Rights.EXTREME_DONATOR);
  537. player.write(new SendGameMessage("@blu@You are now an Elite Member. Thanks for donating!"));
  538. }
  539. } else {
  540. player.write(new SendGameMessage("@blu@Sorry, you have nothing to redeem."));
  541. }
  542. } else {
  543. player.write(new SendGameMessage("@blu@Please be sure you have 6 free inventory spaces before using this command."));
  544. }
  545. } else {
  546. if (player.hasRegistered == 1) {
  547. player.write(new SendGameMessage("Your account is unverified. Checking to see if you are verified."));
  548. player.checkVer();
  549. } else {
  550. player.write(new SendGameMessage("Your account not registered. Type ::register to register your online account."));
  551. }
  552. }
  553. } else {
  554. player.write(new SendGameMessage("Relog and wait 10 seconds before using this command."));
  555. }
  556. return true;
  557.  
  558. case "claim":
  559. case "reward":
  560.  
  561. if (player.getAccount().getType().alias().equals(Account.ULTIMATE_IRON_MAN_TYPE.alias())) {
  562. Item[] reward = { new Item(2440, 10) };
  563. for(Item voteReward : reward) {
  564. player.getItems().addOrCreateGroundItem(voteReward.getId(), voteReward.getAmount());
  565. break;
  566. }
  567. return false;
  568. }
  569.  
  570. Calendar calendar = Calendar.getInstance(Locale.getDefault());
  571. int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
  572. String dayStr = calendar.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.LONG, Locale.US);
  573. boolean weekend = (dayStr == "Friday" || dayStr == "Saturday" || dayStr == "Sunday") ? true : false;
  574.  
  575. if (dayOfMonth >= 0 && dayOfMonth <= 7)
  576. weekend = true;
  577.  
  578. if (player.getItems().getFreeSlots() < 3) {
  579. player.write(new SendGameMessage("@red@Not enough inventory space to receive vote reward."));
  580. return false;
  581. }
  582.  
  583. try {
  584. VoteReward reward = MainLoader.hasVoted(player.getUsername().replaceAll(" ", "_"));
  585. if (reward == null) {
  586. player.write(new SendGameMessage("You have no items waiting for you."));
  587. } else {
  588.  
  589. switch (reward.getReward()) {
  590. case 0:
  591. int coinReward = Utils.random(100);
  592. if (coinReward == 0) {
  593. player.getItems().addItem(995, 100000000);
  594. PlayerUpdating.executeGlobalMessage("@or2@" + player.getUsername() + " @yel@received the Grand Prize of @or1@100M coins@yel@ for voting! @red@Type ::vote to vote now");
  595. } else if (coinReward > 0 && coinReward < 3) {
  596. player.getItems().addItem(995, 50000000);
  597. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received the Rare Prize of @dre@50M coins@red@ for voting! @red@Type ::vote to vote now");
  598. } else if (coinReward >= 3 && coinReward < 6) {
  599. player.getItems().addItem(995, 25000000);
  600. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received the Rare Prize of @dre@25M coins@red@ for voting! @red@Type ::vote to vote now");
  601. } else if (coinReward >= 6 && coinReward < 20) {
  602. player.getItems().addItem(995, 10000000);
  603. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received @dre@10M coins@red@ for voting! @red@Type ::vote to vote now");
  604. } else if (coinReward >= 20) {
  605. player.getItems().addItem(995, 2000000);
  606. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received @dre@2M coins@red@ for voting! @red@Type ::vote to vote now");
  607. }
  608. coinReward = Utils.random(100);
  609. if (Settings.DOUBLEWEEKEND || weekend) {
  610. if (coinReward == 0) {
  611. player.getItems().addItem(995, 100000000);
  612. PlayerUpdating.executeGlobalMessage("@or2@" + player.getUsername() + " @yel@received the Grand Prize of @or1@100M coins@yel@ for voting! @red@Type ::vote to vote now");
  613. } else if (coinReward > 0 && coinReward < 3) {
  614. player.getItems().addItem(995, 50000000);
  615. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received the Rare Prize of @dre@50M coins@red@ for voting! @red@Type ::vote to vote now");
  616. } else if (coinReward >= 3 && coinReward < 6) {
  617. player.getItems().addItem(995, 25000000);
  618. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received the Rare Prize of @dre@25M coins@red@ for voting! @red@Type ::vote to vote now");
  619. } else if (coinReward >= 6 && coinReward < 20) {
  620. player.getItems().addItem(995, 10000000);
  621. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received @dre@10M coins@red@ for voting! @red@Type ::vote to vote now");
  622. } else if (coinReward >= 20) {
  623. player.getItems().addItem(995, 2000000);
  624. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received @dre@2M coins@red@ for voting! @red@Type ::vote to vote now");
  625. }
  626. player.setVotePoints(player.getVotePoints() + 50);
  627. player.setTotalVotes(player.getTotalVotes() + 50);
  628. }
  629. player.setVotePoints(player.getVotePoints() + 50);
  630. player.setTotalVotes(player.getTotalVotes() + 50);
  631. break;
  632. case 1:
  633. if (Settings.DOUBLEWEEKEND || weekend) {
  634. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received 2x @dre@Mystery boxes @red@for voting! Type ::vote to vote now");
  635. player.getItems().addItem(6199, 2);
  636. player.setVotePoints(player.getVotePoints() + 100);
  637. player.setTotalVotes(player.getTotalVotes() + 100);
  638. } else {
  639. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received a @dre@Mystery box @red@for voting! Type ::vote to vote now");
  640. player.getItems().addItem(6199, 1);
  641. player.setVotePoints(player.getVotePoints() + 50);
  642. player.setTotalVotes(player.getTotalVotes() + 50);
  643. }
  644. break;
  645. case 2:
  646. if (Settings.DOUBLEWEEKEND || weekend) {
  647. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received 2x @dre@Experience lamps@red@ for voting! Type ::vote to vote now");
  648. player.getItems().addItem(2528, 2);
  649. player.setVotePoints(player.getVotePoints() + 100);
  650. player.setTotalVotes(player.getTotalVotes() + 100);
  651. } else {
  652. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received a @dre@Experience lamp@red@ for voting! Type ::vote to vote now");
  653. player.getItems().addItem(2528, 1);
  654. player.setVotePoints(player.getVotePoints() + 50);
  655. player.setTotalVotes(player.getTotalVotes() + 50);
  656. }
  657. break;
  658. case 3:
  659. if (Settings.DOUBLEWEEKEND || weekend) {
  660. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received 2x @dre@Bonus drop lamps@red@ for voting! Type ::vote to vote now");
  661. player.getItems().addItem(4447, 2);
  662. player.setVotePoints(player.getVotePoints() + 100);
  663. player.setTotalVotes(player.getTotalVotes() + 100);
  664. } else {
  665. PlayerUpdating.executeGlobalMessage("@dre@" + player.getUsername() + " @red@received a @dre@Bonus drop lamp@red@ for voting! Type ::vote to vote now");
  666. player.getItems().addItem(4447, 1);
  667. player.setVotePoints(player.getVotePoints() + 50);
  668. player.setTotalVotes(player.getTotalVotes() + 50);
  669. }
  670. break;
  671. default:
  672. player.write(new SendGameMessage("Reward not found."));
  673. break;
  674. }
  675. if (Settings.DOUBLEWEEKEND || weekend) {
  676. player.write(new SendGameMessage("Thank you for voting! You receive your @blu@2x vote rewards@bla@ and @blu@100 Vote Points@bla@."));
  677. } else {
  678. player.write(new SendGameMessage("Thank you for voting! You receive your @blu@vote reward@bla@ and @blu@50 Vote Points@bla@."));
  679. }
  680. }
  681.  
  682. } catch (Exception e) {
  683. player.write(new SendGameMessage("[GTL Vote] A SQL error has occured."));
  684. }
  685. return true;
  686.  
  687. case "yell":
  688. message = "";
  689. for (int i = 1; i < cmd.length; i++)
  690. message += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  691. sendYell(player, Utils.fixChatMessage(message), false);
  692. return true;
  693.  
  694. }
  695. return false;
  696. }
  697.  
  698. private static boolean processModCommand(Player player, String[] cmd) {
  699. switch(cmd[0]) {
  700. case "ban":
  701. String name = "";
  702. for (int i = 1; i < cmd.length; i++)
  703. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  704. if (name != null) {
  705. Optional<Player> optionalPlayer = World.getWorld().getOptionalPlayer(name);
  706. if (optionalPlayer.isPresent()) {
  707. Player c2 = optionalPlayer.get();
  708. if (c2.getRights().isBetween(2, 3)) {
  709. player.write(new SendGameMessage("You cannot ban this player."));
  710. return false;
  711. }
  712. if (c2.inTrade) {
  713. player.write(new SendGameMessage("You cannot punish someone who is in a trade."));
  714. return false;
  715. }
  716. ConnectionHandler.addNameToBanList(name);
  717. ConnectionHandler.addNameToFile(name);
  718. player.write(new SendGameMessage("You have banned " + name + "."));
  719. World.sendWorldMessage("<img=12>[Server]: "+player.getUsername()+" has just banned "+c2.getUsername()+".", false);
  720. World.getWorld().queueLogout(c2);
  721. }
  722. }
  723. return true;
  724.  
  725. case "banmac":
  726. case "macban":
  727. name = "";
  728. for (int i = 1; i < cmd.length; i++)
  729. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  730. if (name != null) {
  731. Optional<Player> optionalPlayer = World.getWorld().getOptionalPlayer(name);
  732. if (optionalPlayer.isPresent()) {
  733. Player c2 = optionalPlayer.get();
  734. if (c2.getRights().isBetween(2, 3)) {
  735. player.write(new SendGameMessage("You cannot ban this player."));
  736. return false;
  737. }
  738. if (c2.inTrade) {
  739. player.write(new SendGameMessage("You cannot punish someone who is in a trade."));
  740. return false;
  741. }
  742. ConnectionHandler.addMacBan(c2.getMacAddress());
  743. player.write(new SendGameMessage("@red@[" + name + "] has been MAC Banned"));
  744. World.sendWorldMessage("<img=12>[Server]: "+player.getUsername()+" has just banned "+c2.getUsername()+".", false);
  745. World.getWorld().queueLogout(c2);
  746. }
  747. }
  748. return true;
  749.  
  750. case "banip":
  751. case "ipban":
  752. name = "";
  753. for (int i = 1; i < cmd.length; i++)
  754. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  755. if (name != null) {
  756. Optional<Player> optionalPlayer = World.getWorld().getOptionalPlayer(name);
  757. if (optionalPlayer.isPresent()) {
  758. Player c2 = optionalPlayer.get();
  759. if (c2.getRights().isBetween(2, 3)) {
  760. player.write(new SendGameMessage("You cannot ban this player."));
  761. return false;
  762. }
  763. if (c2.inTrade) {
  764. player.write(new SendGameMessage("You cannot punish someone who is in a trade."));
  765. return false;
  766. }
  767. ConnectionHandler.addIpToBanList(c2.connectedFrom);
  768. player.write(new SendGameMessage("@red@[" + name + "] has been IP Banned"));
  769. World.sendWorldMessage("<img=12>[Server]: "+player.getUsername()+" has just banned "+c2.getUsername()+".", false);
  770. World.getWorld().queueLogout(c2);
  771. }
  772. }
  773. return true;
  774.  
  775. case "unmacban":
  776. try {
  777. String address = "";
  778. for (int i = 1; i < cmd.length; i++)
  779. address += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  780. if (address != null) {
  781. if (!ConnectionHandler.isMacBanned(address)) {
  782. player.write(new SendGameMessage("The address does not exist in the list, make sure it matches perfectly. A example 'Z8-12-F6-77-8G-D1'"));
  783. return false;
  784. }
  785. ConnectionHandler.removeMacBan(address);
  786. player.write(new SendGameMessage("The mac ban on the address; " + address + " has been lifted."));
  787. }
  788. } catch (IndexOutOfBoundsException exception) {
  789. player.write(new SendGameMessage("Error. Correct syntax: ::unmacban address. A mac adress looks like 'Z8-12-F6-77-8G-D1'"));
  790. }
  791. return true;
  792.  
  793. case "info":
  794. name = "";
  795. for (int i = 1; i < cmd.length; i++)
  796. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  797. Optional<Player> optionalPlayer = World.getWorld().getOptionalPlayer(name);
  798. if (optionalPlayer.isPresent()) {
  799. Player c2 = optionalPlayer.get();
  800. player.write(new SendGameMessage("IP of " + c2.getUsername() + " : " + c2.connectedFrom));
  801. player.write(new SendGameMessage("Mac Address of " + c2.getUsername() + " : " + c2.getMacAddress()));
  802. } else {
  803. player.write(new SendGameMessage(name + " is not line. You can request the info of online players."));
  804. }
  805. return true;
  806.  
  807. case "kick":
  808. try {
  809. name = "";
  810. for (int i = 1; i < cmd.length; i++)
  811. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  812. optionalPlayer = World.getWorld().getOptionalPlayer(name);
  813. if (optionalPlayer.isPresent()) {
  814. Player c2 = optionalPlayer.get();
  815. World.getWorld().queueLogout(c2);
  816. PlayerUpdating.executeGlobalMessage("<col=255>" + Utils.capitalize(player.getUsername()) + " Has just kicked " + c2);
  817. }
  818. } catch (Exception e) {
  819. e.printStackTrace();
  820. player.write(new SendGameMessage("player must be online."));
  821. }
  822. return true;
  823.  
  824.  
  825. case "mute":
  826. name = "";
  827. for (int i = 1; i < cmd.length; i++)
  828. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  829. if (name != null) {
  830. Optional<Player> op = World.getWorld().getOptionalPlayer(name);
  831. if (op.isPresent()) {
  832. Player c2 = op.get();
  833. if (c2.getRights().isBetween(2, 3)) {
  834. player.write(new SendGameMessage("You cannot mute this player."));
  835. return false;
  836. }
  837. ConnectionHandler.addNameToMuteList(name);
  838. c2.isMuted = true;
  839. player.write(new SendGameMessage("You have muted " + name + "."));
  840. World.sendWorldMessage("<img=12>[Server]: "+player.getUsername()+" has just muted "+c2.getUsername()+".", false);
  841. }
  842. }
  843. return true;
  844.  
  845. case "staffzone":
  846. TeleportExecutor.teleport(player, new Position(2912, 5475, 0));
  847. return true;
  848.  
  849. case "teleto":
  850. name = "";
  851. for (int i = 1; i < cmd.length; i++)
  852. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  853. Player target = World.getWorld().getPlayerByName(name);
  854. if(target == null)
  855. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  856. else
  857. player.getPA().movePlayer(target.getAbsX(), target.getAbsY(), target.getHeight());
  858. player.write(new SendGameMessage("You teleported to "+target.getUsername()));
  859. return true;
  860.  
  861. case "teletome":
  862. name = "";
  863. for (int i = 1; i < cmd.length; i++)
  864. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  865. target = World.getWorld().getPlayerByName(name);
  866. if(target == null)
  867. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  868. else
  869. target.write(new SendGameMessage("You have been teleported to " + player.getUsername()));
  870. target.getPA().movePlayer(player.getAbsX(), player.getAbsY(), player.heightLevel);
  871. return true;
  872.  
  873.  
  874. case "unban":
  875. name = "";
  876. for (int i = 1; i < cmd.length; i++)
  877. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  878. target = World.getWorld().getPlayerByName(name);
  879. if(target == null)
  880. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  881. else
  882. ConnectionHandler.removeNameFromBanList(name);
  883. player.write(new SendGameMessage(name + " has been unbanned."));
  884. return true;
  885.  
  886. case "unmute":
  887. name = "";
  888. for (int i = 1; i < cmd.length; i++)
  889. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  890. target = World.getWorld().getPlayerByName(name);
  891. if(target == null)
  892. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  893. else
  894. ConnectionHandler.removeNameFromBanList(name);
  895. player.write(new SendGameMessage(name + " has been unmuted."));
  896. target.isMuted = false;
  897. target.write(new SendGameMessage("Your punishment has been removed, relog for this to process"));
  898. return true;
  899.  
  900. case "helpdb":
  901. HelpDatabase.getDatabase().openDatabase(player);
  902. return true;
  903.  
  904. case "yellmute":
  905. name = "";
  906. for (int i = 1; i < cmd.length; i++)
  907. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  908. target = World.getWorld().getPlayerByName(name);
  909. if (target == null)
  910. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  911. if (target.getRights().isBetween(2, 3)) {
  912. player.write(new SendGameMessage("You cannot yellmute this player's account!"));
  913. return false;
  914. } else
  915. target.yellMute = 1;
  916. PlayerUpdating.executeGlobalMessage("[Server] " + player.getUsername() + " has yell muted " + target.getUsername()+".");
  917. return true;
  918.  
  919. case "unyellmute":
  920. name = "";
  921. for (int i = 1; i < cmd.length; i++)
  922. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  923. target = World.getWorld().getPlayerByName(name);
  924. if (target == null)
  925. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  926. if (target.getRights().isBetween(2, 3)) {
  927. player.write(new SendGameMessage("You cannot yellmute this player's account!"));
  928. return false;
  929. } else
  930. target.yellMute = 0;
  931. PlayerUpdating.executeGlobalMessage("[Server] "+player.getUsername()+" has unyell muted "+target.getUsername()+".");
  932. player.write(new SendGameMessage(name + "has been unyellmuted."));
  933. return true;
  934. }
  935. return false;
  936. }
  937.  
  938. private static boolean processSupportCommands(Player player, String cmd) {
  939. return false;
  940. }
  941.  
  942. private static boolean processAdminCommand(Player player, String[] cmd) {
  943. switch(cmd[0]) {
  944.  
  945. case "ski":
  946. player.getKraken().start(player);
  947. return true;
  948.  
  949. case "sc":
  950. player.write(new SendConfig(Integer.parseInt(cmd[1]), Integer.parseInt(cmd[2])));
  951. player.write(new SendGameMessage("Setting config: "+cmd[1]+" Type: "+cmd[2]));
  952. return true;
  953.  
  954. case "max":
  955. player.write(new SendGameMessage("Melee max: "+MeleeCalculations.calculateMeleeMaxHit(player, null)));
  956. player.write(new SendGameMessage("Magic max: "+MagicCalculations.magicMaxHitModifier(player)));
  957. player.write(new SendGameMessage("Range max: "+RangedCalculations.calculateRangedMaxHit(player)));
  958. return true;
  959.  
  960. case "br":
  961. int trials = Integer.parseInt(cmd[1]);
  962. Server.getTaskScheduler().schedule(new ScheduledTask(2) {
  963. int cycles = 0;
  964.  
  965. @Override
  966. public void execute() {
  967. if (cycles++ == trials) {
  968. stop();
  969. return;
  970. }
  971. for (Item item : Barrows.getReward()) {
  972. player.getItems().sendItemToAnyTab(item.getId(),
  973. item.getAmount());
  974. }
  975. player.write(new SendGameMessage("Cycle: " + cycles));
  976. }
  977.  
  978. @Override
  979. public void onStop() {
  980. player.write(new SendGameMessage("Simulated " + trials + " barrows chests."));
  981. }
  982. });
  983. return true;
  984.  
  985. case "cr":
  986. trials = Integer.parseInt(cmd[1]);
  987. List<Item> items = new ArrayList<>();
  988. for (int i = 0; i < trials; i++) {
  989. Item itemReceived;
  990. switch (Utils.getRandom(25)) {
  991. case 1:
  992. case 2:
  993. case 3:
  994. case 4:
  995. case 5:
  996. itemReceived = Utils.randomElement(CrystalChest.UNCOMMON_CHEST_REWARDS);
  997. break;
  998. case 25:
  999. itemReceived = Utils.randomElement(CrystalChest.RARE_CHEST_REWARDS);
  1000. break;
  1001. default:
  1002. itemReceived = Utils.randomElement(CrystalChest.COMMON_CHEST_REWARDS);
  1003. }
  1004. items.add(itemReceived);
  1005. if (itemReceived.getDefinition().getShopValue() < 100_000) {
  1006. switch (Utils.getRandom(25)) {
  1007. case 1:
  1008. case 2:
  1009. case 3:
  1010. case 4:
  1011. case 5:
  1012. itemReceived = Utils.randomElement(CrystalChest.UNCOMMON_CHEST_REWARDS);
  1013. break;
  1014. case 25:
  1015. itemReceived = Utils.randomElement(CrystalChest.RARE_CHEST_REWARDS);
  1016. break;
  1017. default:
  1018. itemReceived = Utils.randomElement(CrystalChest.COMMON_CHEST_REWARDS);
  1019. }
  1020. items.add(itemReceived);
  1021. }
  1022. }
  1023. for (Item item : items) {
  1024. player.getItems().sendItemToAnyTab(item.getId(), item.getAmount());
  1025. }
  1026. items.clear();
  1027. player.write(new SendGameMessage("Simulated " + trials + " crystal chests."));
  1028. return true;
  1029.  
  1030. case "setstat":
  1031. int skillId = Integer.parseInt(cmd[1]);
  1032. int skillLevel = Integer.parseInt(cmd[2]);
  1033. if (cmd.length < 2) {
  1034. throw new IllegalArgumentException();
  1035. }
  1036. try {
  1037. if (skillId < 0 || skillId > player.getLevel.length - 1) {
  1038. player.write(new SendGameMessage("Unable to set level, skill id cannot exceed the range of 0 -> " + (player.getLevel.length - 1) + "."));
  1039. return false;
  1040. }
  1041. if (skillLevel < 1) {
  1042. skillLevel = 1;
  1043. } else if (skillLevel > 99) {
  1044. skillLevel = 99;
  1045. }
  1046. player.getLevel[skillId] = skillLevel;
  1047. player.getExperience[skillId] = player.getSkills().getXPForLevel(skillLevel) + 1;
  1048. player.getSkills().update(skillId);
  1049. player.write(new SendGameMessage("set stat_" + Skills.SKILL_NAMES[skillId] + ": to " + skillLevel));
  1050. } catch (Exception e) {
  1051. player.write(new SendGameMessage("Error. Correct syntax: ::setlevel skillid level"));
  1052. }
  1053. break;
  1054.  
  1055. case "setkc":
  1056. int kc = Integer.parseInt(cmd[1]);
  1057. player.setKillCount(kc);
  1058. player.write(new SendGameMessage("You have set your killcount to: "+kc+"."));
  1059. return true;
  1060.  
  1061. case "sethstreak":
  1062. int hstreak = Integer.parseInt(cmd[1]);
  1063. player.setHighestKillStreak(hstreak);
  1064. player.write(new SendGameMessage("You have set your highest killstreak to: "+hstreak+"."));
  1065. return true;
  1066.  
  1067. case "setpkpoints":
  1068. int pkp = Integer.parseInt(cmd[1]);
  1069. player.setPkPoints(pkp);
  1070. player.write(new SendGameMessage("You have set your pkp to: "+pkp+"."));
  1071. return true;
  1072.  
  1073. case "setvotepoints":
  1074. int vp = Integer.parseInt(cmd[1]);
  1075. player.setVotePoints(vp);
  1076. player.write(new SendGameMessage("You have set your vote points to: "+vp+"."));
  1077. break;
  1078.  
  1079. case "settargetpoints":
  1080. int tp = Integer.parseInt(cmd[1]);
  1081. player.setTargetPoints(tp);
  1082. player.write(new SendGameMessage("You have set your target points to: "+tp+"."));
  1083. break;
  1084.  
  1085. case "givepkp":
  1086. String n = cmd[1];
  1087. pkp = Integer.parseInt(cmd[2]);
  1088. for (int i = 0; i < World.getWorld().getPlayers().capacity(); i++) {
  1089. if (World.getWorld().getPlayers().get(i) != null) {
  1090. if (World.getWorld().getPlayers().get(i).getUsername().equalsIgnoreCase(n)) {
  1091. Player player_to_give = World.getWorld().getPlayers().get(i);
  1092. player_to_give.setPkPoints(player_to_give.getPkPoints() + pkp);
  1093. player_to_give.write(new SendGameMessage("You have been given "+pkp+" pk point(s). By "+player.getUsername()+"."));
  1094. player.write(new SendGameMessage("You have given "+player_to_give.getUsername()+ " "+pkp+" pk point(s)."));
  1095. }
  1096. }
  1097. }
  1098. return true;
  1099.  
  1100. case "dwh":
  1101. player.playAnimation(Animation.create(1378));
  1102. player.playGraphic(Graphic.create(1292, 0, 100));
  1103. return true;
  1104.  
  1105. case "masssave":
  1106. case "saveall":
  1107. for (Player players: World.getWorld().getPlayers()) {
  1108. if (players != null && players.isActive()) {
  1109. PlayerSerialization.saveGame(players);
  1110. }
  1111. }
  1112. player.write(new SendGameMessage(World.getWorld().getActivePlayers() + " players have been saved!"));
  1113. return true;
  1114.  
  1115. case "resettask":
  1116. String reset_task = cmd[1];
  1117. for (int i = 0; i < World.getWorld().getPlayers().capacity(); i++) {
  1118. if (World.getWorld().getPlayers().get(i) != null) {
  1119. if (World.getWorld().getPlayers().get(i).getUsername().equalsIgnoreCase(reset_task)) {
  1120. Player player_to_reset = World.getWorld().getPlayers().get(i);
  1121. player_to_reset.taskAmount = 0;
  1122. player_to_reset.slayerTask = 0;
  1123. player_to_reset.write(new SendGameMessage("Your slayer task has been reset, please get another one."));
  1124. break;
  1125. }
  1126. }
  1127. }
  1128. return true;
  1129.  
  1130. case "test":
  1131. player.getSetups().displayInterface();
  1132. return true;
  1133.  
  1134. case "master":
  1135. for(int i = 0; i < 21; i++) {
  1136. player.getExperience[i] = player.getSkills().getXPForLevel(99)+5;
  1137. player.getLevel[i] = player.getSkills().getLevelForXP(player.getExperience[i]);
  1138. player.getSkills().update(i);
  1139. }
  1140. player.updateRequired = true;
  1141. player.appearanceUpdateRequired = true;
  1142. return true;
  1143.  
  1144. case "reloadobj":
  1145. try {
  1146. Server.getGlobalObjects().reloadObjectFile(player);
  1147. player.write(new SendGameMessage("The object file has been reloaded."));
  1148. } catch (IOException e) {
  1149. e.printStackTrace();
  1150. }
  1151. return true;
  1152.  
  1153. case "interface":
  1154. int interfaceId = Integer.parseInt(cmd[1]);
  1155. player.write(new SendInterface(interfaceId));
  1156. return true;
  1157.  
  1158. case "wi":
  1159. interfaceId = Integer.parseInt(cmd[1]);
  1160. player.write(new SendWalkableInterface(interfaceId));
  1161. return true;
  1162.  
  1163. case "cbi":
  1164. interfaceId = Integer.parseInt(cmd[1]);
  1165. player.write(new SendChatInterface(interfaceId));
  1166. return true;
  1167.  
  1168. case "invincible":
  1169. player.setInvincible(!player.isInvincible());
  1170. player.write(new SendGameMessage("You are " + (player.isInvincible() ? "now invulnerable" : " no longer invulnerable") + " to damage."));
  1171. return true;
  1172.  
  1173. case "debugmode":
  1174. player.set_debug_mode(!player.in_debug_mode());
  1175. player.write(new SendGameMessage("You are " + (player.in_debug_mode() ? "now using" : " no longer using") + " debug mode."));
  1176. return true;
  1177.  
  1178. case "attackable":
  1179. player.setUnattackable(!player.isUnattackable());
  1180. player.write(new SendGameMessage("You are now " + (player.isUnattackable() ? " unattackable" : "attackable") + "."));
  1181. return true;
  1182.  
  1183. case "openbank":
  1184. player.getPA().openBank();
  1185. return true;
  1186.  
  1187. case "checkbank":
  1188. if (World.updateRunning) {
  1189. player.write(new SendGameMessage("You cannot view a bank whilst the server is updating."));
  1190. return false;
  1191. }
  1192. Optional<Player> optionalPlayer = World.getWorld().getOptionalPlayer(cmd[1]);
  1193. if (optionalPlayer.isPresent()) {
  1194. player.getPA().openOtherBank(optionalPlayer.get());
  1195. } else {
  1196. player.write(new SendGameMessage(cmd[1] + " is not online. You can only view the bank of online players."));
  1197. }
  1198. return true;
  1199.  
  1200. case "spawns":
  1201. for (NPC npc : World.getWorld().getNpcs()) {
  1202. if (npc != null) {
  1203. World.getWorld().unregister(npc);
  1204. }
  1205. }
  1206. NPCHandler.loadAutoSpawn("./data/text_files/npc_spawns.txt");
  1207. player.write(new SendGameMessage("Succesfully reloaded the spawns"));
  1208. return true;
  1209.  
  1210. case "itemdef":
  1211. Arrays.fill(ItemDefinition.DEFINITIONS, null);
  1212. new ItemDefinitionLoader().load();
  1213. player.write(new SendGameMessage("Succesfully reloaded itemdefinitions"));
  1214. return true;
  1215.  
  1216. case "drops":
  1217. ParseLookup.doRun();
  1218. return true;
  1219.  
  1220. case "npcdef":
  1221. for (int i = 0; i < NPCDefinition.DEFINITIONS.length; i++) {
  1222. NPCDefinition.DEFINITIONS[i] = null;
  1223. }
  1224. player.write(new SendGameMessage("Succesfully reloaded npcdefinitions"));
  1225. new NPCDefinitionLoader().load();
  1226. return true;
  1227.  
  1228. case "rshops":
  1229. new ShopLoader().load();
  1230. player.write(new SendGameMessage("Succesfully reloaded shops"));
  1231. return true;
  1232.  
  1233. case "demote":
  1234. optionalPlayer = World.getWorld().getOptionalPlayer(cmd[1]);
  1235. if (optionalPlayer.isPresent()) {
  1236. Player demote = optionalPlayer.get();
  1237. demote.setRights(Rights.PLAYER);
  1238. player.write(new SendGameMessage("You've demoted the user: " + demote.getUsername() + " IP: " + demote.connectedFrom));
  1239. World.getWorld().queueLogout(demote);
  1240. }
  1241. return true;
  1242.  
  1243. case "givemod":
  1244. optionalPlayer = World.getWorld().getOptionalPlayer(cmd[1]);
  1245. if (optionalPlayer.isPresent()) {
  1246. Player c2 = optionalPlayer.get();
  1247. c2.setRights(Rights.MODERATOR);
  1248. player.write(new SendGameMessage("You've promoted the user: " + c2.getUsername() + " IP: " + c2.connectedFrom));
  1249. World.getWorld().queueLogout(c2);
  1250. } else {
  1251. player.write(new SendGameMessage(cmd[1] + " is not online. You can only promote online players."));
  1252. }
  1253. return true;
  1254.  
  1255. case "spec":
  1256. player.setSpecialAmount(100);
  1257. player.getWeaponInterface().sendSpecialBar(player.playerEquipment[player.getEquipment().getWeaponId()]);
  1258. player.getWeaponInterface().refreshSpecialAttack();
  1259. player.write(new SendIComponentText(""+player.getSpecialAmount(), 12001));
  1260. return true;
  1261.  
  1262. case "setspec":
  1263. int special = Integer.parseInt(cmd[1]);
  1264. int weapon = player.playerEquipment[player.getEquipment().getWeaponId()];
  1265. player.setSpecialAmount(special);
  1266. player.getWeaponInterface().sendSpecialBar(weapon);
  1267. player.getWeaponInterface().refreshSpecialAttack();
  1268. player.write(new SendGameMessage("Your special attack now has : "+special+ "% left."));
  1269. return true;
  1270.  
  1271. case "tele":
  1272. if (cmd.length > 3) {
  1273. player.getPA().movePlayer(Integer.parseInt(cmd[1]), Integer.parseInt(cmd[2]), Integer.parseInt(cmd[3]));
  1274. } else if (cmd.length == 3) {
  1275. player.getPA().movePlayer(Integer.parseInt(cmd[1]), Integer.parseInt(cmd[2]), player.heightLevel);
  1276. }
  1277. return true;
  1278.  
  1279. case "unipban":
  1280. if (cmd[1].isEmpty()) {
  1281. player.write(new SendGameMessage("You must enter a valid IP address."));
  1282. return false;
  1283. }
  1284. if (!ConnectionHandler.isIpBanned(cmd[1])) {
  1285. player.write(new SendGameMessage("This IP address is not listed as IP banned"));
  1286. return false;
  1287. }
  1288. try {
  1289. ConnectionHandler.removeIpBan(cmd[1]);
  1290. } catch (IOException e) {
  1291. player.write(new SendGameMessage("The IP could not be successfully removed from the file."));
  1292. return false;
  1293. }
  1294. ConnectionHandler.removeIpFromBanList(cmd[1]);
  1295. player.write(new SendGameMessage("The IP '"+cmd[1]+"' has been removed from the IP ban list."));
  1296. return true;
  1297.  
  1298. case "unpc":
  1299. player.playerNPCID = -1;
  1300. player.playerIsNPC = false;
  1301. player.appearanceUpdateRequired = true;
  1302. player.updateRequired = true;
  1303. return true;
  1304.  
  1305. case "update":
  1306. int seconds = Integer.parseInt(cmd[1]);
  1307. if (seconds < 15) {
  1308. player.write(new SendGameMessage("The timer cannot be lower than 15 seconds so other operations can be sorted."));
  1309. seconds = 15;
  1310. }
  1311. World.updateSeconds = seconds;
  1312. World.updateAnnounced = false;
  1313. World.updateRunning = true;
  1314. World.updateStartTime = System.currentTimeMillis();
  1315. for (Player players : World.getWorld().getPlayers()) {
  1316. if (players == null) {
  1317. continue;
  1318. }
  1319. Player client = players;
  1320. if (client.getPA().viewingOtherBank) {
  1321. client.getPA().resetOtherBank();
  1322. client.write(new SendGameMessage("An update is now occuring, you cannot view banks."));
  1323. }
  1324. }
  1325. return true;
  1326.  
  1327. case "updatebans":
  1328. ConnectionHandler.resetIpBans();
  1329. return true;
  1330.  
  1331. case "visible":
  1332. player.setVisible(!player.isVisible());
  1333. player.write(new SendGameMessage("You are " + (player.isVisible() ? "now visible to other players" : " no longer visible to other players") + "."));
  1334. return true;
  1335.  
  1336. case "wild":
  1337. player.write(new SendGameMessage("inWilderness: " + (player.getAbsY() == 3523 ? true : false)));
  1338. player.write(new SendGameMessage("loc=[absX: " + player.getAbsX() + " absY:" + player.getAbsY() + "]"));
  1339. return true;
  1340.  
  1341. case "maxks":
  1342. Optional<Player> op = World.getWorld().getPlayers().stream().filter(Objects::nonNull).max(Comparator.comparing(client -> client.getHighestKillStreak()));
  1343. if (op.isPresent()) {
  1344. player.write(new SendGameMessage("Highest killstreak: " + op.get().getUsername() + " - " + op.get().getHighestKillStreak()));
  1345. }
  1346. return true;
  1347.  
  1348. case "reloadobjects":
  1349. try {
  1350. Server.getGlobalObjects().reloadObjectFile(player);
  1351. player.write(new SendGameMessage("The object file has been reloaded."));
  1352. } catch (IOException e1) {
  1353. e1.printStackTrace();
  1354. }
  1355. return true;
  1356.  
  1357. case "visibility":
  1358. player.setVisible(!player.isVisible());
  1359. player.write(new SendGameMessage("You are " + (player.isVisible() ? "now visible to other players" : " no longer visible to other players") + "."));
  1360. return true;
  1361.  
  1362. case "item":
  1363. try {
  1364. int itemId = Integer.valueOf(cmd[1]);
  1365. player.getItems().addItem(itemId, cmd.length >= 3 ? Integer.valueOf(cmd[2]) : 1);
  1366. } catch (NumberFormatException e) {
  1367. player.write(new SendGameMessage("Use: ::item id (optional:amount)"));
  1368. }
  1369. return true;
  1370.  
  1371. case "object":
  1372. int object = Integer.parseInt(cmd[1]);
  1373. player.getPA().object(object, player.absX, player.absY, 0, 10);
  1374. return true;
  1375.  
  1376. case "pnpc":
  1377. int value = Integer.parseInt(cmd[1]);
  1378. player.playerNPCID = value;
  1379. player.playerIsNPC = true;
  1380. player.appearanceUpdateRequired = true;
  1381. player.updateRequired = true;
  1382. player.write(new SendGameMessage("You transform into a " + NPCHandler.getNpcName(value) + "."));
  1383. return true;
  1384.  
  1385. case "pos":
  1386. player.write(new SendGameMessage("loc=[absX: " + player.getAbsX() + " absY:" + player.getAbsY() + " h:" + player.getHeight() + "]"));
  1387. return true;
  1388.  
  1389. case "setvis":
  1390. player.setVisible(!player.isVisible());
  1391. player.write(new SendGameMessage("You are " + (player.isVisible() ? "now visible to other players" : " no longer visible to other players") + "."));
  1392. return true;
  1393.  
  1394. case "shield":
  1395. value = 336;
  1396. player.playerNPCID = value;
  1397. player.playerIsNPC = true;
  1398. player.appearanceUpdateRequired = true;
  1399. player.updateRequired = true;
  1400. player.write(new SendGameMessage("You transform into a " + NPCHandler.getNpcName(value) + "."));
  1401. return true;
  1402.  
  1403. case "sigil":
  1404. value = 335;
  1405. player.playerNPCID = value;
  1406. player.playerIsNPC = true;
  1407. player.appearanceUpdateRequired = true;
  1408. player.updateRequired = true;
  1409. player.write(new SendGameMessage("You transform into a " + NPCHandler.getNpcName(value) + "."));
  1410. return true;
  1411.  
  1412. case "idban":
  1413. String name = "";
  1414. for (int i = 1; i < cmd.length; i++)
  1415. name += cmd[i] + ((i == cmd.length - 1) ? "" : " ");
  1416. Player target = World.getWorld().getPlayerByName(name);
  1417. if (target == null)
  1418. player.write(new SendGameMessage("Couldn't find player " + name + "."));
  1419. if (target.getRights().isBetween(2, 3)) {
  1420. player.write(new SendGameMessage("You cannot yellmute this player's account!"));
  1421. return false;
  1422. } else
  1423. ConnectionHandler.addIdentityToList(target.getIdentity());
  1424. ConnectionHandler.addIdentityToFile(target.getIdentity());
  1425. player.write(new SendGameMessage("You have identity banned " + target.getUsername() + " with the ip: " + target.connectedFrom));
  1426. World.getWorld().queueLogout(target);
  1427. return true;
  1428.  
  1429. case "npc":
  1430. try {
  1431. int newNPC = Integer.parseInt(cmd[1]);
  1432. if (newNPC > 0) {
  1433. NPCHandler.spawnNpc(player, newNPC, player.getAbsX() + 1, player.getAbsY(), player.getHeight(), 0, false, false);
  1434. player.write(new SendGameMessage("You spawn a Npc."));
  1435. } else {
  1436. player.write(new SendGameMessage("No such NPC."));
  1437. }
  1438. } catch (Exception ignored) {
  1439. ignored.printStackTrace();
  1440.  
  1441. }
  1442. return true;
  1443.  
  1444. case "anim":
  1445. int animation = Integer.parseInt(cmd[1]);
  1446. player.playAnimation(Animation.create(animation));
  1447. player.getPA().requestUpdates();
  1448. return true;
  1449.  
  1450. case "gfx":
  1451. int gfx = Integer.parseInt(cmd[1]);
  1452. player.playGraphic(Graphic.create(gfx));
  1453. player.loopAt = gfx;
  1454. return true;
  1455.  
  1456. case "stillgfx":
  1457. int stillgfx = Integer.parseInt(cmd[1]);
  1458. player.getProjectile().stillGfx(stillgfx, player.getAbsX(), player.getAbsY(), player.getHeight(), 0);
  1459. return true;
  1460.  
  1461. case "gloop":
  1462. String command = cmd[1];
  1463. if (command.equalsIgnoreCase("start")) {
  1464. GFXLooping.startLooping(player);
  1465. player.loopAt = 1273;
  1466. player.loopAt++;
  1467. }
  1468. return true;
  1469.  
  1470. case "dg":
  1471. String nameGfx = cmd[1];
  1472. GFXLooping.writeGFXName(player.loopAt, nameGfx);
  1473. return true;
  1474.  
  1475. case "aloop":
  1476. command = cmd[1];
  1477. if (command.equalsIgnoreCase("start")) {
  1478. AnimLooping.startLooping(player);
  1479. player.loopAt = 1379;
  1480. player.loopAt++;
  1481. }
  1482. return true;
  1483.  
  1484. case "da":
  1485. String nameAnim = cmd[1];
  1486. AnimLooping.writeAnimationName(player.loopAt, nameAnim);
  1487. return true;
  1488.  
  1489. case "dagger":
  1490. player.playAnimation(Animation.create(1062));
  1491. player.playGraphic(Graphic.create(1283, 0, 0));
  1492. return true;
  1493.  
  1494. case "bludgeon":
  1495. player.playAnimation(Animation.create(7010));
  1496. player.playGraphic(Graphic.create(1275, 0, 0));
  1497. return true;
  1498.  
  1499. }
  1500. return false;
  1501. }
  1502.  
  1503. public static int randomItem[] = { 4151, 7462, 6585, 10551, 10548, 6570, 8850, 12954, 12436, 12445, 12447,
  1504. 12449, 12451, 12514};
  1505.  
  1506. public static int randomStarterItem() {
  1507. return randomItem[(int) (Math.random() * randomItem.length)];
  1508. }
  1509.  
  1510. public static void sendYell(Player player, String message, boolean staffYell) {
  1511. if (!player.getRights().isDonator() && !player.getRights().isExtremeDonator() && player.getRights().getValue() == 0 && !player.getRights().isSupport())
  1512. return;
  1513. if (player.isMuted) {
  1514. player.write(new SendGameMessage("You temporary muted. Retry later."));
  1515. return;
  1516. }
  1517. if (staffYell) {
  1518. World.sendWorldMessage("[<col=ff0000>Staff Yell</col>] " +(player.getRights().getValue() > 1 ? "<img=2>" : (player.getRights().isSupport() ? "": "<img=1>")) + player.getUsername()+": <col=ff0000>" +message+".</col>", true);
  1519. return;
  1520. }
  1521. if(message.length() > 100)
  1522. message = message.substring(0, 100);
  1523.  
  1524. if (player.getRights().getValue() != 3) {
  1525. String[] invalid = { "@", "req:", ":trade:",
  1526. ":market:", "shad", "nigga", "slut", "fuck", "cunt",
  1527. "dick", "bitch", "negro", "jew", "fuck", "bitch", "pussy",
  1528. "nigger", "nigga", "faggot", "dick", "shit", "cock",
  1529. "cunt", "asshole", "hitler", "niggers", "nigguh", "gay",
  1530. "fag", "feg", "downie", "downsyndrome", "retard" };
  1531. for (String s : invalid)
  1532. if (message.contains(s)) {
  1533. player.write(new SendGameMessage("You cannot add additional code to the message."));
  1534. return;
  1535. }
  1536. }
  1537. if (player.getUsername().equalsIgnoreCase("mod patrick")) {
  1538. World.sendWorldMessage("[<img=2><col=" + (player.getYellColor() == "ff0000" || player.getYellColor() == null ? "ff0000" : player.getYellColor()) + "><shad=000000>Developer</shad></col>] " + player.getUsername() + ": <col=" + (player.getYellColor() == "ff0000" || player.getYellColor() == null ? "ff0000" : player.getYellColor()) + "><shad=000000>" + message + "", false);
  1539. return;
  1540. } else if (player.getUsername().equalsIgnoreCase("james")) {
  1541. World.sendWorldMessage("[<img=2><col=" + (player.getYellColor() == "ff0000" || player.getYellColor() == null ? "ff0000" : player.getYellColor()) + "><shad=000000>Owner</shad></col>] " + player.getUsername() + ": <col=" + (player.getYellColor() == "ff0000" || player.getYellColor() == null ? "ff0000" : player.getYellColor()) + "><shad=000000>" + message + "", false);
  1542. return;
  1543. }
  1544. if (player.getRights().isSupport())
  1545. World.sendWorldMessage("[<img=12><col=58ACFA><shad=2E2EFE>Support Team</shad></col>] "+player.getUsername()+": <col=58ACFA><shad=2E2EFE>"+message+"</shad></col>.", false);
  1546. else if (player.getRights().isModerator())
  1547. World.sendWorldMessage("[<img=1><col=00ACE6>Moderator</shad></col>] " + player.getUsername() + ": <col=00ACE6><shad=000000>" + message + "", false);
  1548. else if (player.getRights().isAdministrator())
  1549. World.sendWorldMessage("[<img=2><col=33CC00>Admin</col>] " + player.getUsername() + ": <col=33CC00><shad=000000>" + message + "", false);
  1550. else if (player.getRights().isOwner())
  1551. World.sendWorldMessage("[<img=2><col=33CC00>Owner</col>] " + player.getUsername() + ": <col=33CC00><shad=000000>" + message + "", false);
  1552. else if (player.getRights().isDonator())
  1553. World.sendWorldMessage("[<img=5><col=02ab2f>Donator</col>] " + player.getUsername() + ": <col=02ab2f>" + message + "</col>", false);
  1554. else if(player.getRights().isSuperDonator())
  1555. World.sendWorldMessage("[<img=6><col="+(player.getYellColor() == "ff0000" || player.getYellColor() == null ? "ff0000" : player.getYellColor())+">Super Donator</col>] " + player.getUsername() + ": <col="+(player.getYellColor() == "ff0000" || player.getYellColor() == null ? "ff0000" : player.getYellColor())+">" + message + "</col>", false);
  1556. else if (player.getRights().isExtremeDonator())
  1557. World.sendWorldMessage("[<img=7><col="+(player.getYellColor() == "ff0000" || player.getYellColor() == null ? "000099" : player.getYellColor())+ ">Extreme Donator</col>] " + player.getUsername() + ": <col="+(player.getYellColor() == "ff0000" || player.getYellColor() == null ? "000099" : player.getYellColor())+">" + message + "</col>", false);
  1558. else if (player.getRights().isGFXArist())
  1559. World.sendWorldMessage("[<img=13><col="+(player.getYellColor() == "ff0000" || player.getYellColor() == null ? "000099" : player.getYellColor())+ ">GFX Artist</col>] " + player.getUsername() + ": <col="+(player.getYellColor() == "ff0000" || player.getYellColor() == null ? "000099" : player.getYellColor())+">" + message + "</col>", false);
  1560. }
  1561.  
  1562. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement