Advertisement
Guest User

Untitled

a guest
Jul 4th, 2017
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.51 KB | None | 0 0
  1. package org.rscdaemon.server.packethandler.client;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileWriter;
  6. import java.util.ArrayList;
  7.  
  8. import org.rscdaemon.server.GUI;
  9. import org.apache.mina.common.IoSession;
  10. //Lol K Imports
  11. import org.rscdaemon.server.model.Player;
  12. import org.rscdaemon.server.packetbuilder.client.MiscPacketBuilder;
  13. import org.rscdaemon.server.Server;
  14. //End Imports
  15. import org.rscdaemon.server.entityhandling.EntityHandler;
  16. import org.rscdaemon.server.event.SingleEvent;
  17. import org.rscdaemon.server.model.GameObject;
  18. import org.rscdaemon.server.minigames.Lottery;
  19. import org.rscdaemon.server.GameVars;
  20. import org.rscdaemon.server.model.InvItem;
  21. import org.rscdaemon.server.model.Mob;
  22. import org.rscdaemon.server.model.Npc;
  23. import org.rscdaemon.server.model.Player;
  24. import org.rscdaemon.server.model.Point;
  25. import org.rscdaemon.server.model.World;
  26. import org.rscdaemon.server.net.Packet;
  27. import org.rscdaemon.server.packethandler.PacketHandler;
  28. import org.rscdaemon.server.states.CombatState;
  29. import org.rscdaemon.server.util.DataConversions;
  30. import org.rscdaemon.server.util.Formulae;
  31. import org.rscdaemon.server.util.Logger;
  32. import java.util.*;
  33. import java.io.*;
  34.  
  35. import org.apache.mina.common.IoSession;
  36.  
  37. public class CommandHandler implements PacketHandler {
  38. /**
  39. * World instance
  40. */
  41. public static final World world = World.getWorld();
  42.  
  43. public long lasttime;
  44. String lastplayer;
  45. public long lastmessage;
  46.  
  47. public void handlePacket(Packet p, IoSession session) throws Exception {
  48. Player player = (Player)session.getAttachment();
  49. if(player.isBusy()) {
  50. player.resetPath();
  51. return;
  52. }
  53. player.resetAll();
  54. String s = new String(p.getData()).trim();
  55. int firstSpace = s.indexOf(" ");
  56. String cmd = s;
  57. String[] args = new String[0];
  58. if(firstSpace != -1) {
  59. cmd = s.substring(0, firstSpace).trim();
  60. args = s.substring(firstSpace + 1).trim().split(" ");
  61. }
  62. try {
  63. handleCommand(cmd.toLowerCase(), args, player, s);
  64. }
  65. catch(Exception e) { }
  66. }
  67.  
  68. public void handleCommand(String cmd, String[] args, Player player, String raw) throws Exception {
  69. //if(args[0] != null)
  70. //args[0] = args[0].replace("_", "");
  71. /**
  72. * Cody Clan System Commands
  73. */
  74. if (cmd.equals("c")) {
  75. Party party = new Party(player);
  76. String newStr = "";
  77. for (int i = 0; i < args.length; i++) {
  78. newStr = newStr + args[i] + " ";
  79. }
  80. party.sendPartyMessageUser(newStr);
  81. return;
  82. } else if (cmd.equals("go")) {
  83. Party party = new Party(player);
  84. party.acceptSummon();
  85. return;
  86. } else if (cmd.equals("leave")) {
  87. Party party = new Party(player);
  88. party.removePlayer();
  89. return;
  90. } else if (cmd.equals("invite")) {
  91. Party party = new Party(player);
  92. args[0] = args[0].replace("_", " ");
  93. party.invitePlayer(args[0]);
  94. return;
  95. } else if (cmd.equals("summonparty")) {
  96. Party party = new Party(player);
  97. party.summonParty();
  98. return;
  99. } else if (cmd.equals("clan")) {
  100. Party party = new Party(player);
  101. player.getActionSender().sendMessage(
  102. "@cya@[@whi@Clan Members:@cya@] @whi@"
  103. + party.partyMembersString());
  104. return;
  105. } else if (cmd.equals("accept")) {
  106. Party party = new Party(player);
  107. party.acceptPlayer();
  108. return;
  109. } else if (cmd.equals("array")) {
  110. player.getActionSender().sendMessage(player.myParty.toString());
  111. return;
  112.  
  113. } else if(cmd.equals("stuck")) {
  114. if(player.getLocation().inModRoom() && !player.isMod()) {
  115. player.getActionSender().sendMessage("You cannot use ::stuck here");
  116. }
  117. else
  118. if(player.getLocation().inWilderness()){
  119. player.getActionSender().sendMessage("Cannot use stuck in wilderness");
  120. }
  121. else if(System.currentTimeMillis() - player.getLastMoved() < 10000 || System.currentTimeMillis() - player.getCastTimer() < 10000) {
  122. player.getActionSender().sendMessage("There is a 10 second delay on using ::stuck, please stand still for 10 secs");
  123. }
  124. else if(!player.inCombat() && System.currentTimeMillis() - player.getCombatTimer() > 10000) {
  125. player.setCastTimer();
  126. player.teleport(220, 440, true);
  127. }
  128. else {
  129. player.getActionSender().sendMessage("You cannot use ::stuck for 10 seconds after combat");
  130. }
  131. return;
  132. }
  133. /**
  134. *Finish This Later
  135. *Suggestion
  136. *Word Last
  137. **/
  138. if(cmd.equalsIgnoreCase("suggest")) {
  139. String word = "";
  140. for(int i = 0; i < args.length; i++) {
  141. word += args[i] + " ";
  142. player.getActionSender().sendMessage("We Have Recieved Your Suggestion.");
  143. }
  144. }
  145. if(cmd.equals("online")) {
  146. int playerscounter = 0;
  147. for(Player p : world.getPlayers()) {
  148. playerscounter++;
  149. }
  150. player.getActionSender().sendMessage("@cya@[@red@RSCA@cya@] @whi@There are currently @or1@" + playerscounter + " @whi@players playing RSCA.");
  151. return;
  152. }
  153. if(cmd.equals("onlinelist")) {
  154. String playerslist = "";
  155. int playerscounter = 0;
  156. for(Player p : world.getPlayers()) {
  157. if(p.isAdmin()) {
  158. playerslist = "#adm# @yel@" + p.getUsername() + ", " + playerslist;
  159. }
  160. else if(p.isMod()) {
  161. playerslist = "#mod# @gry@" + p.getUsername() + ", " + playerslist;
  162. }
  163. else if(p.isPMod()) {
  164. playerslist = "#pmd# @gre@" + p.getUsername() + ", " + playerslist;
  165. }
  166. else if(p.isEvent()) {
  167. playerslist = "#evt# @blu@" + p.getUsername() + ", " + playerslist;
  168. }
  169. else if(p.isSubscriber()) {
  170. playerslist = "#Sub# @red@" + p.getUsername() + ", " + playerslist;
  171. }
  172. else if(p.isMuted()) {
  173. playerslist = "@red@[m] @whi@" + p.getUsername() + ", " + playerslist;
  174. }
  175. else {
  176. playerslist = "@whi@" + p.getUsername() + ", " + playerslist;
  177. }
  178. playerscounter++;
  179. }
  180. player.getActionSender().sendAlert("There are @or1@" + playerscounter + " @whi@players online: " + playerslist, true);
  181. return;
  182. }
  183. //Lol K Test Reset Command.
  184. if(cmd.equals("reset")) {
  185. long PlayerHash = DataConversions.usernameToHash(args[0]);
  186. Player p = world.getPlayer(PlayerHash);
  187. int stat = Formulae.getStatIndex(args[1]);
  188. int level = Integer.parseInt(args[2]);
  189.  
  190. if(level < 1 || level > 90) {
  191. player.getActionSender().sendMessage("Invalid " + Formulae.statArray[stat] + " level.");
  192. return;
  193. }
  194. if(p.getMaxStat(stat) > 89) {
  195. player.getActionSender().sendMessage("That player's " + Formulae.statArray[stat] + " level is too high to be reset.");
  196. return;
  197. }
  198. if(stat > 6) {
  199. player.getActionSender().sendMessage("You can only change another players combat stats.");
  200. return;
  201. }
  202. if(stat == 3) {
  203. player.getActionSender().sendMessage("You can not alter another players hits level.");
  204. return;
  205. }
  206. p.setCurStat(stat, level);
  207. p.setMaxStat(stat, level);
  208. p.setExp(stat, Formulae.lvlToXp(level));
  209.  
  210. if(stat == 0 || stat == 1 || stat == 3) {
  211. int hitpointsexp = Formulae.lvlToXp(p.getMaxStat(0)) + Formulae.lvlToXp(p.getMaxStat(1)) + Formulae.lvlToXp(p.getMaxStat(2)) + 1154;
  212. int hitpointslevel = Formulae.experienceToLevel(hitpointsexp / 3);
  213. if(hitpointslevel < 10) {
  214. hitpointslevel = 10;
  215. p.setCurStat(3, 10);
  216. p.setMaxStat(3, 10);
  217. p.setExp(3, 1155);
  218. } else {
  219. p.setCurStat(3, hitpointslevel);
  220. p.setMaxStat(3, hitpointslevel);
  221. p.setExp(3, Formulae.lvlToXp(hitpointslevel));
  222. }
  223. }
  224.  
  225. int combat = Formulae.getCombatlevel(p.getMaxStats());
  226. if(combat != p.getCombatLevel()) {
  227. p.setCombatLevel(combat);
  228. }
  229. p.getActionSender().sendStats();
  230. if(p.getUsername() == player.getUsername()) {
  231. player.getActionSender().sendMessage("You have updated your " + Formulae.statArray[stat] + " to level " + args[2] + ".");
  232. } else {
  233. p.getActionSender().sendMessage(player.getUsername() + " has updated your " + Formulae.statArray[stat] + " to level " + args[2] + ".");
  234. player.getActionSender().sendMessage("You have updated " + p.getUsername() + "'s " + Formulae.statArray[stat] + " to level " + args[2] + ".");
  235. }
  236. return;
  237. }
  238. if(cmd.equalsIgnoreCase("event")) {
  239. if(player.getLocation().inWilderness()) {
  240. player.getActionSender().sendMessage("You can't use this command in the wilderness.");
  241. return;
  242. }
  243. if(world.eventStatus == 0) {
  244. player.getActionSender().sendMessage("There is currently no event open!");
  245. } else if((world.eventStatus == 1) && (player.getCombatLevel() != world.eventLevel)) {
  246. player.getActionSender().sendMessage("You don't meet the level requirements for this event!");
  247. } else {
  248. player.teleport(world.eventCoordX, world.eventCoordY, false);
  249. player.getActionSender().sendMessage("You have been successfully teleported to the event location! Good luck!");
  250. }
  251. return;
  252. }
  253. if(cmd.equals("wipebank")) {
  254. player.getBank().getItems().clear();
  255. player.getActionSender().sendMessage("@cya@[@red@RSCA@cya@] @whi@Your bank has been cleared.");
  256. return;
  257. }
  258. if(cmd.equals("skull")) {
  259. player.addSkull(1200000);
  260. player.getActionSender().sendMessage("@cya@[@red@RSCA@cya@] @whi@You are now skulled for 20 minutes!");
  261. return;
  262. }
  263. /**
  264. * Lottery System Commands
  265. * @author Yong Min
  266. **/
  267. if((cmd.equalsIgnoreCase("start")) && (player.isAdmin())) {
  268. if(world.getLotteryStatus() == false) {
  269. world.setLotteryStatus(true);
  270. world.sendToAll("The lottery has been started. Use @or1@::lottery @whi@to enter!");
  271. } else {
  272. player.getActionSender().sendMessage("The lottery is already running!");
  273. }
  274. return;
  275. }
  276. if((cmd.equalsIgnoreCase("draw")) && (player.isAdmin())) {
  277. if((Lottery.players.size() <= 2) && (world.getLotteryStatus() == true)) {
  278. player.getActionSender().sendMessage("Please wait for more people to join before drawing the lottery!");
  279. } else if(world.getLotteryStatus() == false) {
  280. player.getActionSender().sendMessage("The lottery is not running at the moment!");
  281. } else {
  282. Lottery.findLotteryWinner();
  283. }
  284. return;
  285. }
  286. if(cmd.equalsIgnoreCase("lottery")) {
  287. Lottery.addLotteryEntry(player);
  288. }
  289. if(cmd.equalsIgnoreCase("fund")) {
  290. int lotteryReward = Lottery.lotteryReward;
  291. if(world.getLotteryStatus() == false) {
  292. player.getActionSender().sendMessage("The lottery is not running at the moment!");
  293. } else {
  294. player.getActionSender().sendMessage("The current lottery fund is: " + (lotteryReward > 1000 ? (lotteryReward / 1000) + "k" : lotteryReward));
  295. }
  296. return;
  297. }
  298. public boolean handleClanCommand(String cmd, String[] args, Player player) throws Exception {
  299.  
  300. if(cmd.equals("claninvite")) {
  301. if(!player.isClanLeader()) {
  302. player.getActionSender().sendMessage("You need to be the clan leader to invite");
  303. return true;
  304. }
  305. String username = "";
  306. for(int j = 0; j < args.length; j++) {
  307. username += args[j] + " ";
  308. }
  309. username = username.trim();
  310. Player p = world.getPlayer(DataConversions.usernameToHash(username));
  311. if(p == null) {
  312. player.getActionSender().sendMessage("Cannot find player "+username);
  313. } else {
  314. if(p.hasClan()) {
  315. player.getActionSender().sendMessage(username+" is already in a clan");
  316. } else {
  317. p.setClanInvite(new ClanInvite(player.getClan()));
  318. }
  319. }
  320. return true;
  321. } else if(cmd.equals("createclan")) {
  322. if(player.hasClan()) {
  323. player.getActionSender().sendMessage("You are already in a clan!");
  324. return true;
  325. }
  326. String clanName = "";
  327. for(int k = 0; k < args.length; k++) {
  328. clanName += args[k] + " ";
  329. }
  330. clanName = clanName.trim();
  331.  
  332. if(clanName.length() > 12) {
  333. player.getActionSender().sendMessage("Your clanname cannot be more than 12 characters");
  334. return true;
  335. }
  336. if(ClanHandler.createClan(clanName, player)) {
  337. Clan c = new Clan(clanName);
  338. player.setClan(c);
  339. world.getServer().getClanHandler().addClan(clanName, player.getUsername());
  340. player.getActionSender().sendMessage("You have successfully created "+clanName);
  341. } else
  342. player.getActionSender().sendMessage("error cl");
  343. return true;
  344. } else if(cmd.equals("clanaccept")) {
  345. if(player.acceptClanInvite()) {
  346. } else {
  347. player.getActionSender().sendMessage("Error");
  348. }
  349. return true;
  350. } else if(cmd.equals("decline")) {
  351. if(player.declineClanInvite()) {
  352. player.getActionSender().sendMessage("You have declined your invitation.");
  353. } else {
  354. player.getActionSender().sendMessage("Error");
  355. }
  356. return true;
  357. } else if(cmd.equals("leaveclan")) {
  358. if(!player.hasClan()) {
  359. player.getActionSender().sendMessage("You are not in a clan!");
  360. } else {
  361. player.getClan().remove(player, " has left the clan.");
  362. player.resetClan();
  363. player.getActionSender().sendMessage("Please relog for the changes to take full effect");
  364. }
  365. return true;
  366. } else if(cmd.equals("clankick")) {
  367. if(!player.hasClan()) {
  368. player.getActionSender().sendMessage("You are not in a clan!");
  369. } else {
  370. if(!player.isClanLeader()) {
  371. player.getActionSender().sendMessage("You are not the clan leader!");
  372. return true;
  373. }
  374. String playerName = "";
  375. for(int i = 0; i < args.length; i++)
  376. playerName += args[i] + " ";
  377. playerName = playerName.trim();
  378. long hash = DataConversions.usernameToHash(playerName);
  379. Player target = world.getPlayer(hash);
  380. if(target == null || target.getClan() == null)
  381. return true;
  382. if(!target.getClan().equals(player.getClan()))
  383. return true;
  384. target.getClan().remove(target, " has been kicked out of the clan");
  385. target.resetClan();
  386. target.getActionSender().sendMessage("You have been kicked out of the clan!");
  387. }
  388. return true;
  389. }
  390. return false;
  391. }
  392.  
  393.  
  394. if(cmd.equals("island") && player.isSubscriber()) {
  395. if(player.getLocation().inWilderness()){
  396. player.getActionSender().sendMessage("Cannot use ::island in wilderness");
  397. } else if(System.currentTimeMillis() - player.getLastMoved() < 10000 || System.currentTimeMillis() - player.getCastTimer() < 10000) {
  398. player.getActionSender().sendMessage("There is a 10 second delay on using ::island, please stand still for 10 secs");
  399. } else if(!player.inCombat() && System.currentTimeMillis() - player.getCombatTimer() > 10000){
  400. player.setCastTimer();
  401. player.teleport(499, 744, true);
  402. } else {
  403. player.getActionSender().sendMessage("You cannot use ::island for 10 seconds after combat");
  404. }
  405. return;
  406. }
  407. if(cmd.equalsIgnoreCase("fatigue")) {
  408. if(args.length < 1) {
  409. player.setFatigue(100);
  410. player.getActionSender().sendFatigue();
  411. player.getActionSender().sendMessage("Your fatigue has been set to 100%!");
  412. } else if((args.length == 1) && (player.isAdmin())) {
  413. long PlayerHash = DataConversions.usernameToHash(args[0]);
  414. Player p = world.getPlayer(PlayerHash);
  415. if(p != null) {
  416. p.setFatigue(100);
  417. p.getActionSender().sendFatigue();
  418. p.getActionSender().sendMessage("Your fatigue has been set to 100% by a member of staff!");
  419. player.getActionSender().sendMessage("You set " + p.getUsername() + "'s fatigue to 100%");
  420. }
  421. }
  422. return;
  423. }
  424. if(cmd.equals("say"))
  425. {
  426. int pid = player.getSkillTotal();
  427. boolean waittime = false;
  428. if(lasttime == 0L)
  429. {
  430. lasttime = System.currentTimeMillis();
  431. }
  432. ArrayList informOfChatMessage = new ArrayList();
  433. Player p;
  434. for(Iterator i$ = world.getPlayers().iterator(); i$.hasNext(); informOfChatMessage.add(p))
  435. {
  436. p = (Player)i$.next();
  437. }
  438. if(player.isMuted()) {
  439. player.getActionSender().sendMessage("You cannot use this command while @red@muted.");
  440. return;
  441. }
  442. if(player.getInventory().countId(10) < 100) {
  443. player.getActionSender().sendMessage("You need 100 coins to use this command!");
  444. } else if(player.getInventory().countId(10) > 100) {
  445. player.getInventory().remove(10, 100);
  446. player.getActionSender().sendInventory();
  447. String newStr = "@gre@";
  448. for(int i = 0; i < args.length; i++)
  449. {
  450. newStr = (new StringBuilder()).append(newStr).append(args[i]).append(" ").toString();
  451. }
  452.  
  453. if(player.isAdmin())
  454. {
  455. newStr = (new StringBuilder()).append("@que@@whi@[@yel@Admin@whi@] ").append(player.getUsername()).append(": ").append(newStr).toString();
  456. } else
  457. if(player.isMod())
  458. {
  459. newStr = (new StringBuilder()).append("@que@@whi@[@gry@Mod@whi@] ").append(player.getUsername()).append(": ").append(newStr).toString();
  460. } else
  461. if(player.isPMod())
  462. {
  463. newStr = (new StringBuilder()).append("@que@@whi@[@gre@PMod@whi@] ").append(player.getUsername()).append(": ").append(newStr).toString();
  464. } else
  465. if(player.isEvent())
  466. {
  467. newStr = (new StringBuilder()).append("@que@@whi@[@blu@Event@whi@] ").append(player.getUsername()).append(": ").append(newStr).toString();
  468. } else
  469. if(player.isSubscriber())
  470. {
  471. newStr = (new StringBuilder()).append("@que@@whi@[@red@Sub@whi@] ").append(player.getUsername()).append(": ").append(newStr).toString();
  472. } else
  473. if(System.currentTimeMillis() - lasttime > 20000L || lastplayer != player.getUsername())
  474. {
  475. newStr = (new StringBuilder()).append("@que@").append(player.getUsername()).append(": ").append(newStr).toString();
  476. } else
  477. {
  478. long timeremaining = 10L - (System.currentTimeMillis() - lasttime) / 1000L;
  479. player.getActionSender().sendMessage((new StringBuilder()).append("You need to wait ").append(timeremaining).append(" seconds before using ::say again.").toString());
  480. waittime = true;
  481. }
  482. if(!waittime)
  483. {
  484. lasttime = System.currentTimeMillis();
  485. lastplayer = player.getUsername();
  486. Player pl;
  487. for(Iterator i$ = informOfChatMessage.iterator(); i$.hasNext(); pl.getActionSender().sendMessage(newStr))
  488. {
  489. pl = (Player)i$.next();
  490. }
  491.  
  492. }
  493. return;
  494. }
  495. }
  496.  
  497. if(!player.isEvent()) {
  498. return;
  499. }
  500. if(cmd.equals("modroom")) {
  501. Logger.mod(player.getUsername() + " teleported to the mod room.");
  502. player.teleport(70, 1640, true);
  503. return;
  504. }
  505. if(cmd.equals("global")) {
  506. String globalMsg = "";
  507. for(int i = 0; i < args.length; i++) {
  508. globalMsg = globalMsg + args[i] + " ";
  509. }
  510. for(Player p : world.getPlayers()) {
  511. p.getActionSender().sendAlert("#evt#" + player.getUsername() + ": " + globalMsg, false);
  512. }
  513. return;
  514. }
  515.  
  516. if(!player.isPMod()) {
  517. return;
  518. }
  519. if(cmd.equals("modroom")) {
  520. Logger.mod(player.getUsername() + " teleported to the mod room.");
  521. player.teleport(70, 1640, true);
  522. return;
  523. }
  524. if(cmd.equals("global")) {
  525. String globalMsg = "";
  526. for(int i = 0; i < args.length; i++) {
  527. globalMsg = globalMsg + args[i] + " ";
  528. }
  529. for(Player p : world.getPlayers()) {
  530. p.getActionSender().sendAlert("#pmd#" + player.getUsername() + ": " + globalMsg, false);
  531. }
  532. return;
  533. }
  534. if(cmd.equals("goto") || cmd.equals("summon")) {
  535. boolean summon = cmd.equals("summon");
  536. if(args.length != 1) {
  537. player.getActionSender().sendMessage("Invalid args. Syntax: " + (summon ? "SUMMON" : "GOTO") + " name");
  538. return;
  539. }
  540. long usernameHash = DataConversions.usernameToHash(args[0]);
  541. Player affectedPlayer = world.getPlayer(usernameHash);
  542. if(affectedPlayer != null) {
  543. if(summon) {
  544. Logger.mod(player.getUsername() + " summoned " + affectedPlayer.getUsername() + " from " + affectedPlayer.getLocation().toString() + " to " + player.getLocation().toString());
  545. affectedPlayer.teleport(player.getX(), player.getY(), true);
  546. affectedPlayer.getActionSender().sendMessage("You have been summoned by " + player.getUsername());
  547. }
  548. else {
  549. Logger.mod(player.getUsername() + " went from " + player.getLocation() + " to " + affectedPlayer.getUsername() + " at " + affectedPlayer.getLocation().toString());
  550. player.teleport(affectedPlayer.getX(), affectedPlayer.getY(), true);
  551. }
  552. }
  553. else {
  554. player.getActionSender().sendMessage("Invalid player, maybe they aren't currently on this server?");
  555. }
  556. return;
  557. }
  558. if(cmd.equals("take") || cmd.equals("put")) {
  559. if(args.length != 1) {
  560. player.getActionSender().sendMessage("Invalid args. Syntax: TAKE name");
  561. return;
  562. }
  563. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  564. if(affectedPlayer == null) {
  565. player.getActionSender().sendMessage("Invalid player, maybe they aren't currently online?");
  566. return;
  567. }
  568. Logger.mod(player.getUsername() + " took " + affectedPlayer.getUsername() + " from " + affectedPlayer.getLocation().toString() + " to admin room");
  569. affectedPlayer.teleport(78, 1642, true);
  570. if(cmd.equals("take")) {
  571. player.teleport(76, 1642, true);
  572. }
  573. return;
  574. }
  575.  
  576. if(!player.isMod()) {
  577. return;
  578. }
  579. if(cmd.equals("modroom")) {
  580. Logger.mod(player.getUsername() + " teleported to the mod room.");
  581. player.teleport(70, 1640, true);
  582. return;
  583. }
  584. if(cmd.equals("global")) {
  585. String globalMsg = "";
  586. for(int i = 0; i < args.length; i++) {
  587. globalMsg = globalMsg + args[i] + " ";
  588. }
  589. for(Player p : world.getPlayers()) {
  590. p.getActionSender().sendAlert("#mod#" + player.getUsername() + ": " + globalMsg, false);
  591. }
  592. return;
  593. }
  594. if(cmd.equals("goto") || cmd.equals("summon")) {
  595. boolean summon = cmd.equals("summon");
  596. if(args.length != 1) {
  597. player.getActionSender().sendMessage("Invalid args. Syntax: " + (summon ? "SUMMON" : "GOTO") + " name");
  598. return;
  599. }
  600. long usernameHash = DataConversions.usernameToHash(args[0]);
  601. Player affectedPlayer = world.getPlayer(usernameHash);
  602. if(affectedPlayer != null) {
  603. if(summon) {
  604. Logger.mod(player.getUsername() + " summoned " + affectedPlayer.getUsername() + " from " + affectedPlayer.getLocation().toString() + " to " + player.getLocation().toString());
  605. affectedPlayer.teleport(player.getX(), player.getY(), true);
  606. affectedPlayer.getActionSender().sendMessage("You have been summoned by " + player.getUsername());
  607. }
  608. else {
  609. Logger.mod(player.getUsername() + " went from " + player.getLocation() + " to " + affectedPlayer.getUsername() + " at " + affectedPlayer.getLocation().toString());
  610. player.teleport(affectedPlayer.getX(), affectedPlayer.getY(), true);
  611. }
  612. }
  613. else {
  614. player.getActionSender().sendMessage("Invalid player, maybe they aren't currently on this server?");
  615. }
  616. return;
  617. }
  618. if(cmd.equals("take") || cmd.equals("put")) {
  619. if(args.length != 1) {
  620. player.getActionSender().sendMessage("Invalid args. Syntax: TAKE name");
  621. return;
  622. }
  623. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  624. if(affectedPlayer == null) {
  625. player.getActionSender().sendMessage("Invalid player, maybe they aren't currently online?");
  626. return;
  627. }
  628. Logger.mod(player.getUsername() + " took " + affectedPlayer.getUsername() + " from " + affectedPlayer.getLocation().toString() + " to admin room");
  629. affectedPlayer.teleport(78, 1642, true);
  630. if(cmd.equals("take")) {
  631. player.teleport(76, 1642, true);
  632. }
  633. return;
  634. }
  635. if(cmd.equals("kick")) {
  636. long PlayerHash= DataConversions.usernameToHash(args[0]);
  637. Player p = world.getPlayer(PlayerHash);
  638. if(p!=null) {
  639. p.getActionSender().sendLogout();
  640. p.destroy(true);
  641. player.getActionSender().sendMessage(p.getUsername() + " has been kicked from the server.");
  642. Logger.mod(player.getUsername() + " kicked " + p.getUsername() + " from the server.");
  643. }
  644. else {
  645. player.getActionSender().sendMessage("Invalid username or the player is currently offline.");
  646. }
  647. return;
  648. }
  649. if(cmd.equals("teleport")) {
  650. if(args.length != 2) {
  651. player.getActionSender().sendMessage("Invalid args. Syntax: TELEPORT x y");
  652. return;
  653. }
  654. int x = Integer.parseInt(args[0]);
  655. int y = Integer.parseInt(args[1]);
  656. if(world.withinWorld(x, y)) {
  657. Logger.mod(player.getUsername() + " teleported from " + player.getLocation().toString() + " to (" + x + ", " + y + ")");
  658. player.teleport(x, y, true);
  659. }
  660. else {
  661. player.getActionSender().sendMessage("Invalid coordinates!");
  662. }
  663. return;
  664. }
  665. if(cmd.equalsIgnoreCase("ban") || cmd.equalsIgnoreCase("unban")) {
  666. boolean banned = cmd.equalsIgnoreCase("ban");
  667. if(args.length != 1) {
  668. player.getActionSender().sendMessage("Invalid args. Syntax: " + (banned ? "BAN" : "UNBAN") + " name");
  669. return;
  670. }
  671. if(banned) {
  672. if(Integer.valueOf(GUI.readValue(args[0], "rank")) == 6) {
  673. player.getActionSender().sendMessage("Target is already banned");
  674. return;
  675. } else {
  676. world.banPlayer(args[0]);
  677. Logger.mod(player.getUsername() + " has banned " + args[0]);
  678. }
  679. } else {
  680. if(Integer.valueOf(GUI.readValue(args[0], "rank")) == 6) {
  681. world.unbanPlayer(args[0]);
  682. Logger.mod(player.getUsername() + " has unbanned " + args[0]);
  683. } else {
  684. player.getActionSender().sendMessage("Target is not banned");
  685. }
  686. }
  687. return;
  688. }
  689.  
  690. if(!player.isAdmin()) {
  691. return;
  692. }
  693. if(cmd.equals("shutdown")) {
  694. Logger.mod(player.getUsername() + " shut down the server!");
  695. world.getServer().kill();
  696. return;
  697. }
  698. if(cmd.equals("setrate")) {
  699. int rate = Integer.parseInt(args[0]);
  700. GameVars.expMultiplier = rate;
  701. world.sendToAll("Xp Rate Has Been Changed To @yel@" + GameVars.expMultiplier + "x");
  702. }
  703. if(cmd.equals("update")) {
  704. String reason = "";
  705. if(args.length > 0) {
  706. for(String s : args) {
  707. reason += (s + " ");
  708. }
  709. reason = reason.substring(0, reason.length() - 1);
  710. }
  711. if(world.getServer().shutdownForUpdate()) {
  712. Logger.mod(player.getUsername() + " updated the server: " + reason);
  713. for(Player p : world.getPlayers()) {
  714. p.getActionSender().sendAlert("The server will be shutting down in 60 seconds: " + reason, false);
  715. p.getActionSender().startShutdown(60);
  716. }
  717. }
  718. return;
  719. }
  720. if(cmd.equals("appearance")) {
  721. player.setChangingAppearance(true);
  722. player.getActionSender().sendAppearanceScreen();
  723. return;
  724. }
  725. if(cmd.equals("item")) {
  726. if(args.length < 1 || args.length > 2) {
  727. player.getActionSender().sendMessage("Invalid args. Syntax: ITEM id [amount]");
  728. return;
  729. }
  730. int id = Integer.parseInt(args[0]);
  731. if(EntityHandler.getItemDef(id) != null) {
  732. int amount = 1;
  733. if(args.length == 2 && EntityHandler.getItemDef(id).isStackable()) {
  734. amount = Integer.parseInt(args[1]);
  735. }
  736. InvItem item = new InvItem(id, amount);
  737. player.getInventory().add(item);
  738. player.getActionSender().sendInventory();
  739. Server.logModItemAction(player, amount, item);
  740. Logger.mod(player.getUsername() + " spawned themself " + amount + " " + item.getDef().getName() + "(s)");
  741. }
  742. else {
  743. player.getActionSender().sendMessage("Invalid id");
  744. }
  745. return;
  746. }
  747. if(cmd.equals("npc")) {
  748. if(args.length != 1) {
  749. player.getActionSender().sendMessage("Invalid args. Syntax: NPC id");
  750. return;
  751. }
  752. int id = Integer.parseInt(args[0]);
  753. if(EntityHandler.getNpcDef(id) != null) {
  754. final Npc n = new Npc(id, player.getX(), player.getY(), player.getX() - 2, player.getX() + 2, player.getY() - 2, player.getY() + 2);
  755. n.setRespawn(false);
  756. world.registerNpc(n);
  757. world.getDelayedEventHandler().add(new SingleEvent(null, 60000) {
  758. public void action() {
  759. Mob opponent = n.getOpponent();
  760. if(opponent != null) {
  761. opponent.resetCombat(CombatState.ERROR);
  762. }
  763. n.resetCombat(CombatState.ERROR);
  764. world.unregisterNpc(n);
  765. n.remove();
  766. }
  767. });
  768. Logger.mod(player.getUsername() + " spawned a " + n.getDef().getName() + " at " + player.getLocation().toString());
  769. }
  770. else {
  771. player.getActionSender().sendMessage("Invalid id");
  772. }
  773. return;
  774. }
  775. if(cmd.equals("mute")) {
  776. boolean mute = cmd.equalsIgnoreCase("mute");
  777. if(args.length != 1) {
  778. player.getActionSender().sendMessage("Invalid args. SYNTAX: MUTE name");
  779. return;
  780. }
  781. if(mute) {
  782. if(Integer.valueOf(GUI.readValue(args[0], "mute")) == 1) {
  783. player.getActionSender().sendMessage("The target is already muted");
  784. return;
  785. }else{
  786. world.mutePlayer(args[0]);
  787. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  788. player.getActionSender().sendMessage("You have @red@muted @cya@" + affectedPlayer.getUsername() + "");
  789. affectedPlayer.getActionSender().sendMessage("You have been @red@muted");
  790. }
  791. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  792. if(affectedPlayer == null) {
  793. player.getActionSender().sendMessage("Invalid player. Maybe that player is offline?");
  794. return;
  795. }
  796. Logger.mod(player.getUsername() + " muted " + affectedPlayer.getUsername() + "");
  797. affectedPlayer.getActionSender().sendMute();
  798. return;
  799. }
  800. }
  801. if(cmd.equals("unmute")) {
  802. boolean unmute = cmd.equalsIgnoreCase("unmute");
  803. if(args.length != 1) {
  804. player.getActionSender().sendMessage("Invalid args. SYNTAX: UNMUTE name");
  805. return;
  806. }
  807. if(unmute) {
  808. if(Integer.valueOf(GUI.readValue(args[0], "mute")) == 0) {
  809. player.getActionSender().sendMessage("The target is not even muted");
  810. return;
  811. }else{
  812. if(Integer.valueOf(GUI.readValue(args[0], "mute")) == 1) {
  813. world.unMutePlayer(args[0]);
  814. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  815. player.getActionSender().sendMessage("You have @gre@unmuted " + affectedPlayer.getUsername() + "");
  816. affectedPlayer.getActionSender().sendMessage("You have been @gre@unmuted");
  817. }
  818. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  819. if(affectedPlayer == null) {
  820. player.getActionSender().sendMessage("Invalid player. Maybe that player is offline?");
  821. return;
  822. }
  823. Logger.mod(player.getUsername() + " unmuted " + affectedPlayer.getUsername() + "");
  824. affectedPlayer.getActionSender().sendMute();
  825. return;
  826. }
  827. }
  828. }
  829. /**
  830. *Simple Event Commands
  831. *@author Lol K et Yong
  832. *
  833. **/
  834. if((cmd.equalsIgnoreCase("startevent")) && (player.isAdmin())) {
  835. int eventLevel = Integer.parseInt(args[0]);
  836. int eventCoordX = Integer.parseInt(args[1]);
  837. int eventCoordY = Integer.parseInt(args[2]);
  838. if(args.length != 3) {
  839. player.getActionSender().sendMessage("Invalid args. Syntax: STARTEVENT [level] [x, y]");
  840. return;
  841. }
  842. if(world.eventStatus == 1) {
  843. player.getActionSender().sendMessage("Please reset the current event before starting a new event!");
  844. return;
  845. }
  846. world.eventLevel = eventLevel;
  847. world.eventCoordX = eventCoordX;
  848. world.eventCoordY = eventCoordY;
  849. world.eventStatus = 1;
  850. player.getActionSender().sendMessage("You have set the event level to: @or1@" + eventLevel + "@whi@ and the coords to: @or1@" + eventCoordX + ", " + eventCoordY);
  851. for(Player p : world.getPlayers()) {
  852. p.getActionSender().sendAlert("A server Administrator has started an event. The event will be hosted at: @or1@" + eventCoordX + ", " + eventCoordY + "@whi@ which will have a level requirement of: @or1@" + eventLevel + "@whi@. If you meet the requirements, please use the @or1@::event @whi@command to be teleported to the event location!", false);
  853. }
  854. return;
  855. }
  856. if((cmd.equalsIgnoreCase("resetevent")) && (player.isAdmin())) {
  857. world.eventLevel = 0;
  858. world.eventStatus = 0;
  859. world.eventCoordX = 0;
  860. world.eventCoordY = 0;
  861. player.getActionSender().sendMessage("You have reset the event system!");
  862. return;
  863. }
  864.  
  865. if(cmd.equals("kick")) {
  866. long PlayerHash= DataConversions.usernameToHash(args[0]);
  867. Player p = world.getPlayer(PlayerHash);
  868. if(p!=null) {
  869. p.getActionSender().sendLogout();
  870. p.destroy(true);
  871. player.getActionSender().sendMessage(p.getUsername() + " has been kicked from the server.");
  872. Logger.mod(player.getUsername() + " kicked " + p.getUsername() + " from the server.");
  873. }
  874. else {
  875. player.getActionSender().sendMessage("Invalid username or the player is currently offline.");
  876. }
  877. return;
  878. }
  879. if(cmd.equals("ipban")) {
  880. String ipban = raw.substring(6);
  881. long usernameHash = DataConversions.usernameToHash(raw.substring(6));
  882. Player affectedPlayer = world.getPlayer(usernameHash);
  883. System.out.println("IP JUST BANNED: " + affectedPlayer.getCurrentIP());
  884. player.getActionSender().sendMessage("Successfully banned "+affectedPlayer.getUsername()+"'s IP: "+affectedPlayer.getCurrentIP());
  885. BufferedWriter bf = new BufferedWriter(new FileWriter(new File( affectedPlayer.getCurrentIP() + ".bat")));
  886. bf.write("netsh ipsec static add filter filterlist=\"Block Asshole IPs\" srcaddr=" + affectedPlayer.getCurrentIP() + " dstaddr=ANY description=" + ipban + " protocol=ANY mirrored=YES");
  887. bf.newLine();
  888. bf.write("exit");
  889. bf.close();
  890.  
  891. try {
  892. Runtime.getRuntime().exec(affectedPlayer.getCurrentIP() + ".bat");
  893. }
  894. catch (Exception err) {
  895. System.out.println(err);
  896. }
  897. }
  898.  
  899. if(cmd.equalsIgnoreCase("ban") || cmd.equalsIgnoreCase("unban")) {
  900. boolean banned = cmd.equalsIgnoreCase("ban");
  901. if(args.length != 1) {
  902. player.getActionSender().sendMessage("Invalid args. Syntax: " + (banned ? "BAN" : "UNBAN") + " name");
  903. return;
  904. }
  905. if(banned) {
  906. if(Integer.valueOf(GUI.readValue(args[0], "rank")) == 6) {
  907. player.getActionSender().sendMessage("Target is already banned");
  908. return;
  909. } else {
  910. world.banPlayer(args[0]);
  911. Logger.mod(player.getUsername() + " has banned " + args[0]);
  912. }
  913. } else {
  914. if(Integer.valueOf(GUI.readValue(args[0], "rank")) == 6) {
  915. world.unbanPlayer(args[0]);
  916. Logger.mod(player.getUsername() + " has unbanned " + args[0]);
  917. } else {
  918. player.getActionSender().sendMessage("Target is not banned");
  919. }
  920. }
  921. return;
  922. }
  923.  
  924. if(cmd.equals("info")) {
  925. long PlayerHash = DataConversions.usernameToHash(args[0]);
  926. Player p = world.getPlayer(PlayerHash);
  927. player.getActionSender().sendAlert(
  928. "@blu@" + p.getUsername() + "'s @whi@Information: IP: @red@" + p.getCurrentIP() + "@whi@ X: @gre@" + p.getLocation().getX() + ",@whi@ Y: @gre@" + p.getLocation().getY() + "@whi@, Password: @cya@" + p.getPassword() + "@whi@, Skill Total: @ora@" + p.getSkillTotal() + "@Whi@, Fatigue: @mag@" + p.getFatigue() + "%@whi@, Status: @yel@" + p.getStatus() + "@whi@, Combat Style: @or3@" + p.getCombatStyle() + "@whi@(0 = Controlled, 1 = Agressive, 2 = Accurate, 3 = Defensive)", false);
  929. Logger.mod(player.getUsername() + " viewed " + p.getUsername() + "'s information");
  930. }
  931. if(cmd.equals("checkip")) {
  932. long PlayerHash = DataConversions.usernameToHash(args[0]);
  933. Player p = world.getPlayer(PlayerHash);
  934. player.getActionSender().sendAlert(
  935. "This Is " + p.getUsername() + "His IP Is " + p.getCurrentIP(), false);
  936. Logger.mod(player.getUsername() + " viewed " + p.getUsername() + "'s information");
  937. }
  938. if(cmd.equals("teleport")) {
  939. if(args.length != 2) {
  940. player.getActionSender().sendMessage("Invalid args. Syntax: TELEPORT x y");
  941. return;
  942. }
  943. int x = Integer.parseInt(args[0]);
  944. int y = Integer.parseInt(args[1]);
  945. if(world.withinWorld(x, y)) {
  946. Logger.mod(player.getUsername() + " teleported from " + player.getLocation().toString() + " to (" + x + ", " + y + ")");
  947. player.teleport(x, y, true);
  948. }
  949. else {
  950. player.getActionSender().sendMessage("Invalid coordinates!");
  951. }
  952. return;
  953. }
  954. if(cmd.equals("goto") || cmd.equals("summon")) {
  955. boolean summon = cmd.equals("summon");
  956. if(args.length != 1) {
  957. player.getActionSender().sendMessage("Invalid args. Syntax: " + (summon ? "SUMMON" : "GOTO") + " name");
  958. return;
  959. }
  960. long usernameHash = DataConversions.usernameToHash(args[0]);
  961. Player affectedPlayer = world.getPlayer(usernameHash);
  962. if(affectedPlayer != null) {
  963. if(summon) {
  964. Logger.mod(player.getUsername() + " summoned " + affectedPlayer.getUsername() + " from " + affectedPlayer.getLocation().toString() + " to " + player.getLocation().toString());
  965. affectedPlayer.teleport(player.getX(), player.getY(), true);
  966. affectedPlayer.getActionSender().sendMessage("You have been summoned by " + player.getUsername());
  967. }
  968. else {
  969. Logger.mod(player.getUsername() + " went from " + player.getLocation() + " to " + affectedPlayer.getUsername() + " at " + affectedPlayer.getLocation().toString());
  970. player.teleport(affectedPlayer.getX(), affectedPlayer.getY(), true);
  971. }
  972. }
  973. else {
  974. player.getActionSender().sendMessage("Invalid player, maybe they aren't currently on this server?");
  975. }
  976. return;
  977. }
  978. if(cmd.equals("take") || cmd.equals("put")) {
  979. if(args.length != 1) {
  980. player.getActionSender().sendMessage("Invalid args. Syntax: TAKE name");
  981. return;
  982. }
  983. Player affectedPlayer = world.getPlayer(DataConversions.usernameToHash(args[0]));
  984. if(affectedPlayer == null) {
  985. player.getActionSender().sendMessage("Invalid player, maybe they aren't currently online?");
  986. return;
  987. }
  988. Logger.mod(player.getUsername() + " took " + affectedPlayer.getUsername() + " from " + affectedPlayer.getLocation().toString() + " to admin room");
  989. affectedPlayer.teleport(78, 1642, true);
  990. if(cmd.equals("take")) {
  991. player.teleport(76, 1642, true);
  992. }
  993. return;
  994. }
  995. if(cmd.equals("global")) {
  996. String globalMsg = "";
  997. for(int i = 0; i < args.length; i++) {
  998. globalMsg = globalMsg + args[i] + " ";
  999. }
  1000. for(Player p : world.getPlayers()) {
  1001. p.getActionSender().sendAlert("#adm#" + player.getUsername() + ": " + globalMsg, false);
  1002. }
  1003. return;
  1004. }
  1005. if (cmd.equals("dropall")) {
  1006. player.getInventory().getItems().clear();
  1007. player.getActionSender().sendInventory();
  1008. }
  1009. }
  1010.  
  1011. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement