Fixed admin respawn commands.

This commit is contained in:
MobiusDev
2018-09-05 23:49:55 +00:00
parent af44edb79e
commit 0aed0ae98a
24 changed files with 577 additions and 231 deletions

View File

@@ -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();

View File

@@ -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();
}
/**

View File

@@ -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()