Addition of optional range parameter to delete command.

This commit is contained in:
MobiusDevelopment
2021-07-15 00:14:03 +00:00
parent e7975fd78c
commit 02b8376575
25 changed files with 978 additions and 612 deletions

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,16 +20,16 @@ import org.l2jmobius.gameserver.data.sql.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager; import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.spawn.Spawn; import org.l2jmobius.gameserver.model.spawn.Spawn;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -41,44 +41,66 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
final WorldObject obj = activeChar.getTarget(); final String[] split = command.split(" ");
if (obj instanceof NpcInstance) 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; if (!target.isNpc())
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{ {
if (GrandBossManager.getInstance().isDefined(spawn.getNpcId())) continue;
{
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);
}
} }
deleteNpc(activeChar, (NpcInstance) target);
}
return;
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + "."); 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 else
{ {
activeChar.sendPacket(SystemMessageId.INVALID_TARGET); SpawnTable.getInstance().deleteSpawn(spawn, true);
} }
} }
return true; BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
@Override @Override

View File

@@ -20,16 +20,16 @@ import org.l2jmobius.gameserver.data.sql.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.GrandBossManager; import org.l2jmobius.gameserver.instancemanager.GrandBossManager;
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager; import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.instance.NpcInstance; import org.l2jmobius.gameserver.model.actor.instance.NpcInstance;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.spawn.Spawn; import org.l2jmobius.gameserver.model.spawn.Spawn;
import org.l2jmobius.gameserver.network.SystemMessageId;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -41,44 +41,66 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
final WorldObject obj = activeChar.getTarget(); final String[] split = command.split(" ");
if (obj instanceof NpcInstance) 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; if (!target.isNpc())
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{ {
if (GrandBossManager.getInstance().isDefined(spawn.getNpcId())) continue;
{
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);
}
} }
deleteNpc(activeChar, (NpcInstance) target);
}
return;
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + "."); 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 else
{ {
activeChar.sendPacket(SystemMessageId.INVALID_TARGET); SpawnTable.getInstance().deleteSpawn(spawn, true);
} }
} }
return true; BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
@Override @Override

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager; import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getId()))
{
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getId()))
{
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager; import org.l2jmobius.gameserver.instancemanager.RaidBossSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getId()))
{
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (RaidBossSpawnManager.getInstance().isDefined(spawn.getId()))
{
RaidBossSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }

View File

@@ -20,14 +20,15 @@ import org.l2jmobius.gameserver.data.SpawnTable;
import org.l2jmobius.gameserver.handler.IAdminCommandHandler; import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
import org.l2jmobius.gameserver.instancemanager.DBSpawnManager; import org.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import org.l2jmobius.gameserver.model.Spawn; import org.l2jmobius.gameserver.model.Spawn;
import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.WorldObject; import org.l2jmobius.gameserver.model.WorldObject;
import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Npc;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.util.BuilderUtil; import org.l2jmobius.gameserver.util.BuilderUtil;
import org.l2jmobius.gameserver.util.Util;
/** /**
* This class handles following admin commands: - delete = deletes target * 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 public class AdminDelete implements IAdminCommandHandler
{ {
@@ -39,9 +40,10 @@ public class AdminDelete implements IAdminCommandHandler
@Override @Override
public boolean useAdminCommand(String command, PlayerInstance activeChar) public boolean useAdminCommand(String command, PlayerInstance activeChar)
{ {
if (command.equals("admin_delete")) if (command.startsWith("admin_delete"))
{ {
handleDelete(activeChar); final String[] split = command.split(" ");
handleDelete(activeChar, (split.length > 1) && Util.isDigit(split[1]) ? Integer.parseInt(split[1]) : 0);
} }
return true; return true;
} }
@@ -52,35 +54,47 @@ public class AdminDelete implements IAdminCommandHandler
return ADMIN_COMMANDS; return ADMIN_COMMANDS;
} }
// TODO: add possibility to delete any WorldObject (except PlayerInstance) private void handleDelete(PlayerInstance activeChar, int range)
private void handleDelete(PlayerInstance activeChar)
{ {
if (range > 0)
{
World.getInstance().forEachVisibleObjectInRange(activeChar, Npc.class, range, target ->
{
deleteNpc(activeChar, target);
});
return;
}
final WorldObject obj = activeChar.getTarget(); final WorldObject obj = activeChar.getTarget();
if (obj instanceof Npc) if (obj instanceof Npc)
{ {
final Npc target = (Npc) obj; deleteNpc(activeChar, (Npc) obj);
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
} }
else else
{ {
BuilderUtil.sendSysMessage(activeChar, "Incorrect target."); BuilderUtil.sendSysMessage(activeChar, "Incorrect target.");
} }
} }
private void deleteNpc(PlayerInstance activeChar, Npc target)
{
target.deleteMe();
final Spawn spawn = target.getSpawn();
if (spawn != null)
{
spawn.stopRespawn();
if (DBSpawnManager.getInstance().isDefined(spawn.getId()))
{
DBSpawnManager.getInstance().deleteSpawn(spawn, true);
}
else
{
SpawnTable.getInstance().deleteSpawn(spawn, true);
}
}
BuilderUtil.sendSysMessage(activeChar, "Deleted " + target.getName() + " from " + target.getObjectId() + ".");
}
} }