AdminScan.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. /*
  2. * Copyright (C) 2004-2013 L2J DataPack
  3. *
  4. * This file is part of L2J DataPack.
  5. *
  6. * L2J DataPack is free software: you can redistribute it and/or modify
  7. * it under the terms of the GNU General Public License as published by
  8. * the Free Software Foundation, either version 3 of the License, or
  9. * (at your option) any later version.
  10. *
  11. * L2J DataPack is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU General Public License
  17. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  18. */
  19. importPackage(java.util);
  20. importPackage(java.lang);
  21. importPackage(com.l2jserver.gameserver.cache);
  22. importPackage(com.l2jserver.gameserver.datatables);
  23. importPackage(com.l2jserver.gameserver.handler);
  24. importPackage(com.l2jserver.gameserver.instancemanager);
  25. importPackage(com.l2jserver.gameserver.model);
  26. importPackage(com.l2jserver.gameserver.model.actor);
  27. importPackage(com.l2jserver.gameserver.model.actor.instance);
  28. importPackage(com.l2jserver.gameserver.network.serverpackets);
  29. importPackage(com.l2jserver.gameserver.util);
  30. /**
  31. * @author UnAfraid
  32. */
  33. AdminCommandHandler.getInstance().registerHandler(new JavaAdapter(IAdminCommandHandler,
  34. {
  35. // Override useAdminCommand() method.
  36. useAdminCommand : function(command, player)
  37. {
  38. var st = new StringTokenizer(command, " ");
  39. if (st.hasMoreTokens())
  40. {
  41. var cmd = st.nextToken();
  42. if (cmd == 'admin_scan')
  43. {
  44. var radius = 500;
  45. if (st.hasMoreTokens())
  46. {
  47. var obj = st.nextToken();
  48. if (Util.isDigit(obj))
  49. {
  50. radius = obj;
  51. }
  52. }
  53. var htm = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/admin/scan.htm");
  54. var sb = new StringBuilder();
  55. var it = player.getKnownList().getKnownCharactersInRadius(radius).iterator();
  56. while (it.hasNext())
  57. {
  58. var character = it.next();
  59. if (character instanceof L2Npc)
  60. {
  61. sb.append("<tr>");
  62. sb.append("<td width=\"54\">" + character.getNpcId() + "</td>");
  63. sb.append("<td width=\"54\">" + character.getName() + "</td>");
  64. sb.append("<td width=\"54\">" + Math.round(Util.calculateDistance(player, character, false)) + "</td>");
  65. sb.append("<td width=\"54\"><a action=\"bypass -h admin_deleteNpcByObjectId " + character.getObjectId() + "\"><font color=\"LEVEL\">Delete</font></a></td>");
  66. sb.append("<td width=\"54\"><a action=\"bypass -h admin_move_to " + character.getX() + " " + character.getY() + " " + character.getZ() + "\"><font color=\"LEVEL\">Go to</font></a></td>");
  67. sb.append("</tr>");
  68. }
  69. }
  70. htm = htm.replaceAll("%data%", sb.toString());
  71. player.sendPacket(new NpcHtmlMessage(0, htm));
  72. }
  73. else if (cmd = 'admin_deleteNpcByObjectId' && st.hasMoreTokens())
  74. {
  75. var objectId = st.nextToken();
  76. if (Util.isDigit(objectId))
  77. {
  78. var it = player.getKnownList().getKnownCharacters().iterator();
  79. while (it.hasNext())
  80. {
  81. var character = it.next();
  82. if ((character instanceof L2Npc) && (character.getObjectId() == objectId))
  83. {
  84. character.deleteMe();
  85. var spawn = character.getSpawn();
  86. if (spawn != null)
  87. {
  88. spawn.stopRespawn();
  89. if (RaidBossSpawnManager.getInstance().isDefined(spawn.getNpcid()))
  90. {
  91. RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
  92. }
  93. else
  94. {
  95. SpawnTable.getInstance().deleteSpawn(spawn, true);
  96. }
  97. }
  98. player.sendMessage(character.getName() + " have been deleted.");
  99. this.useAdminCommand("admin_scan", player);
  100. }
  101. }
  102. }
  103. }
  104. }
  105. return true;
  106. },
  107. // Override getAdminCommandList() method.
  108. getAdminCommandList : function()
  109. {
  110. return new Array("admin_scan", "admin_deleteNpcByObjectId");
  111. }
  112. }));