Fixed admin respawn commands.
This commit is contained in:
@@ -216,6 +216,10 @@ public class AdminSpawn implements IAdminCommandHandler
|
||||
else if (command.startsWith("admin_unspawnall"))
|
||||
{
|
||||
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
|
||||
// Unload all scripts.
|
||||
QuestManager.getInstance().unloadAllScripts();
|
||||
// Delete all spawns.
|
||||
AutoSpawnHandler.getInstance().unload();
|
||||
RaidBossSpawnManager.getInstance().cleanUp();
|
||||
DayNightSpawnManager.getInstance().cleanUp();
|
||||
for (L2Object obj : L2World.getInstance().getVisibleObjects())
|
||||
@@ -232,6 +236,8 @@ public class AdminSpawn implements IAdminCommandHandler
|
||||
}
|
||||
}
|
||||
}
|
||||
// Reload.
|
||||
QuestManager.getInstance().reloadAllScripts();
|
||||
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
|
||||
}
|
||||
else if (command.startsWith("admin_spawnday"))
|
||||
@@ -244,7 +250,10 @@ public class AdminSpawn implements IAdminCommandHandler
|
||||
}
|
||||
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
|
||||
{
|
||||
// make sure all spawns are deleted
|
||||
// Unload all scripts.
|
||||
QuestManager.getInstance().unloadAllScripts();
|
||||
// Delete all spawns.
|
||||
AutoSpawnHandler.getInstance().unload();
|
||||
RaidBossSpawnManager.getInstance().cleanUp();
|
||||
DayNightSpawnManager.getInstance().cleanUp();
|
||||
for (L2Object obj : L2World.getInstance().getVisibleObjects())
|
||||
@@ -261,8 +270,7 @@ public class AdminSpawn implements IAdminCommandHandler
|
||||
}
|
||||
}
|
||||
}
|
||||
// now respawn all
|
||||
NpcData.getInstance().load();
|
||||
// Reload.
|
||||
SpawnTable.getInstance().load();
|
||||
RaidBossSpawnManager.getInstance().load();
|
||||
AutoSpawnHandler.getInstance().reload();
|
||||
|
||||
@@ -73,8 +73,29 @@ public final class QuestManager
|
||||
*/
|
||||
public void reloadAllScripts()
|
||||
{
|
||||
unloadAllScripts();
|
||||
|
||||
LOGGER.info("Reloading all server scripts.");
|
||||
|
||||
try
|
||||
{
|
||||
ScriptEngineManager.getInstance().executeScriptList();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
|
||||
}
|
||||
|
||||
getInstance().report();
|
||||
}
|
||||
|
||||
/**
|
||||
* Unload all quests and scripts.
|
||||
*/
|
||||
public void unloadAllScripts()
|
||||
{
|
||||
LOGGER.info("Unloading all server scripts.");
|
||||
|
||||
// Unload quests.
|
||||
for (Quest quest : _quests.values())
|
||||
{
|
||||
@@ -93,17 +114,6 @@ public final class QuestManager
|
||||
}
|
||||
}
|
||||
_scripts.clear();
|
||||
|
||||
try
|
||||
{
|
||||
ScriptEngineManager.getInstance().executeScriptList();
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
|
||||
}
|
||||
|
||||
getInstance().report();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -89,6 +89,19 @@ public class AutoSpawnHandler
|
||||
}
|
||||
|
||||
public void reload()
|
||||
{
|
||||
// unload
|
||||
unload();
|
||||
|
||||
// create clean list
|
||||
_registeredSpawns.clear();
|
||||
_runningSpawns.clear();
|
||||
|
||||
// load
|
||||
restoreSpawnData();
|
||||
}
|
||||
|
||||
public void unload()
|
||||
{
|
||||
// stop all timers
|
||||
for (ScheduledFuture<?> sf : _runningSpawns.values())
|
||||
@@ -106,13 +119,6 @@ public class AutoSpawnHandler
|
||||
removeSpawn(asi);
|
||||
}
|
||||
}
|
||||
|
||||
// create clean list
|
||||
_registeredSpawns.clear();
|
||||
_runningSpawns.clear();
|
||||
|
||||
// load
|
||||
restoreSpawnData();
|
||||
}
|
||||
|
||||
private void restoreSpawnData()
|
||||
|
||||
Reference in New Issue
Block a user