Addition of optional range parameter to delete command.
This commit is contained in:
@ -20,16 +20,16 @@ import org.l2jmobius.gameserver.data.sql.SpawnTable;
|
||||
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
|
||||
import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
|
||||
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
|
||||
import org.l2jmobius.gameserver.model.World;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.spawn.Spawn;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
import org.l2jmobius.gameserver.util.BuilderUtil;
|
||||
import org.l2jmobius.gameserver.util.Util;
|
||||
|
||||
/**
|
||||
* This class handles following admin commands: - delete = deletes target
|
||||
* @version $Revision: 1.2.2.1.2.4 $ $Date: 2005/04/11 10:05:56 $
|
||||
*/
|
||||
public class AdminDelete implements IAdminCommandHandler
|
||||
{
|
||||
@ -41,44 +41,66 @@ public class AdminDelete implements IAdminCommandHandler
|
||||
@Override
|
||||
public boolean useAdminCommand(String command, PlayerInstance activeChar)
|
||||
{
|
||||
if (command.equals("admin_delete"))
|
||||
if (command.startsWith("admin_delete"))
|
||||
{
|
||||
final WorldObject obj = activeChar.getTarget();
|
||||
if (obj instanceof NpcInstance)
|
||||
final String[] split = command.split(" ");
|
||||
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
private void handleDelete(PlayerInstance activeChar, int range)
|
||||
{
|
||||
if (range > 0)
|
||||
{
|
||||
for (WorldObject target : World.getInstance().getVisibleObjects(activeChar, range))
|
||||
{
|
||||
final NpcInstance target = (NpcInstance) obj;
|
||||
target.deleteMe();
|
||||
|
||||
final Spawn spawn = target.getSpawn();
|
||||
if (spawn != null)
|
||||
if (!target.isNpc())
|
||||
{
|
||||
if (GrandBossManager.getInstance().isDefined(spawn.getNpcId()))
|
||||
{
|
||||
BuilderUtil.sendSysMessage(activeChar, "You cannot delete a grandboss.");
|
||||
return true;
|
||||
}
|
||||
|
||||
spawn.stopRespawn();
|
||||
|
||||
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getNpcId()))
|
||||
{
|
||||
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
SpawnTable.getInstance().deleteSpawn(spawn, true);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
|
||||
deleteNpc(activeChar, (NpcInstance) target);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
final WorldObject obj = activeChar.getTarget();
|
||||
if (obj instanceof NpcInstance)
|
||||
{
|
||||
deleteNpc(activeChar, (NpcInstance) obj);
|
||||
}
|
||||
else
|
||||
{
|
||||
BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
|
||||
}
|
||||
}
|
||||
|
||||
private void deleteNpc(PlayerInstance activeChar, NpcInstance target)
|
||||
{
|
||||
target.deleteMe();
|
||||
|
||||
final Spawn spawn = target.getSpawn();
|
||||
if (spawn != null)
|
||||
{
|
||||
if (GrandBossManager.getInstance().isDefined(spawn.getNpcId()))
|
||||
{
|
||||
BuilderUtil.sendSysMessage(activeChar, "You cannot delete a grandboss.");
|
||||
return;
|
||||
}
|
||||
|
||||
spawn.stopRespawn();
|
||||
|
||||
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getNpcId()))
|
||||
{
|
||||
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
|
||||
}
|
||||
else
|
||||
{
|
||||
activeChar.sendPacket(SystemMessageId.INVALID_TARGET);
|
||||
SpawnTable.getInstance().deleteSpawn(spawn, true);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Reference in New Issue
Block a user