/*
* Copyright (C) 2004-2013 L2J DataPack
*
* This file is part of L2J DataPack.
*
* L2J DataPack is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* L2J DataPack is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*/
importPackage(java.util);
importPackage(java.lang);
importPackage(com.l2jserver.gameserver.cache);
importPackage(com.l2jserver.gameserver.datatables);
importPackage(com.l2jserver.gameserver.handler);
importPackage(com.l2jserver.gameserver.instancemanager);
importPackage(com.l2jserver.gameserver.model);
importPackage(com.l2jserver.gameserver.model.actor);
importPackage(com.l2jserver.gameserver.model.actor.instance);
importPackage(com.l2jserver.gameserver.network.serverpackets);
importPackage(com.l2jserver.gameserver.util);
/**
* @author UnAfraid
*/
AdminCommandHandler.getInstance().registerHandler(new JavaAdapter(IAdminCommandHandler,
{
// Override useAdminCommand() method.
useAdminCommand : function(command, player)
{
var st = new StringTokenizer(command, " ");
if (st.hasMoreTokens())
{
var cmd = st.nextToken();
if (cmd == 'admin_scan')
{
var radius = 500;
if (st.hasMoreTokens())
{
var obj = st.nextToken();
if (Util.isDigit(obj))
{
radius = obj;
}
}
var htm = HtmCache.getInstance().getHtm(player.getHtmlPrefix(), "data/html/admin/scan.htm");
var sb = new StringBuilder();
var it = player.getKnownList().getKnownCharactersInRadius(radius).iterator();
while (it.hasNext())
{
var character = it.next();
if (character instanceof L2Npc)
{
sb.append("
");
sb.append("" + character.getId() + " | ");
sb.append("" + character.getName() + " | ");
sb.append("" + Math.round(Util.calculateDistance(player, character, false)) + " | ");
sb.append("Delete | ");
sb.append("Go to | ");
sb.append("
");
}
}
htm = htm.replaceAll("%data%", sb.toString());
player.sendPacket(new NpcHtmlMessage(0, htm));
}
else if (cmd = 'admin_deleteNpcByObjectId' && st.hasMoreTokens())
{
var objectId = st.nextToken();
if (Util.isDigit(objectId))
{
var it = player.getKnownList().getKnownCharacters().iterator();
while (it.hasNext())
{
var character = it.next();
if ((character instanceof L2Npc) && (character.getObjectId() == objectId))
{
character.deleteMe();
var spawn = character.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getId()))
{
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
player.sendMessage(character.getName() + " have been deleted.");
this.useAdminCommand("admin_scan", player);
}
}
}
}
}
return true;
},
// Override getAdminCommandList() method.
getAdminCommandList : function()
{
return new Array("admin_scan", "admin_deleteNpcByObjectId");
}
}));