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

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override

View File

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override

View File

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override

View File

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override

View File

@@ -216,6 +216,10 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); 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(); RaidBossSpawnManager.getInstance().cleanUp();
DayNightSpawnManager.getInstance().cleanUp(); DayNightSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) 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!"); AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_spawnday")) 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")) 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(); RaidBossSpawnManager.getInstance().cleanUp();
DayNightSpawnManager.getInstance().cleanUp(); DayNightSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
@@ -261,8 +270,7 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load();
SpawnTable.getInstance().load(); SpawnTable.getInstance().load();
RaidBossSpawnManager.getInstance().load(); RaidBossSpawnManager.getInstance().load();
AutoSpawnHandler.getInstance().reload(); AutoSpawnHandler.getInstance().reload();

View File

@@ -73,8 +73,29 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
{ {
@@ -93,17 +114,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _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() public void reload()
{
// unload
unload();
// create clean list
_registeredSpawns.clear();
_runningSpawns.clear();
// load
restoreSpawnData();
}
public void unload()
{ {
// stop all timers // stop all timers
for (ScheduledFuture<?> sf : _runningSpawns.values()) for (ScheduledFuture<?> sf : _runningSpawns.values())
@@ -106,13 +119,6 @@ public class AutoSpawnHandler
removeSpawn(asi); removeSpawn(asi);
} }
} }
// create clean list
_registeredSpawns.clear();
_runningSpawns.clear();
// load
restoreSpawnData();
} }
private void restoreSpawnData() private void restoreSpawnData()

View File

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override

View File

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override

View File

@@ -26,11 +26,13 @@ import java.util.regex.Pattern;
import com.l2jmobius.Config; import com.l2jmobius.Config;
import com.l2jmobius.gameserver.data.xml.impl.AdminData; import com.l2jmobius.gameserver.data.xml.impl.AdminData;
import com.l2jmobius.gameserver.data.xml.impl.NpcData; import com.l2jmobius.gameserver.data.xml.impl.NpcData;
import com.l2jmobius.gameserver.data.xml.impl.SpawnsData;
import com.l2jmobius.gameserver.datatables.SpawnTable; import com.l2jmobius.gameserver.datatables.SpawnTable;
import com.l2jmobius.gameserver.handler.IAdminCommandHandler; import com.l2jmobius.gameserver.handler.IAdminCommandHandler;
import com.l2jmobius.gameserver.instancemanager.DBSpawnManager; import com.l2jmobius.gameserver.instancemanager.DBSpawnManager;
import com.l2jmobius.gameserver.instancemanager.InstanceManager; import com.l2jmobius.gameserver.instancemanager.InstanceManager;
import com.l2jmobius.gameserver.instancemanager.QuestManager; import com.l2jmobius.gameserver.instancemanager.QuestManager;
import com.l2jmobius.gameserver.instancemanager.ZoneManager;
import com.l2jmobius.gameserver.model.L2Object; import com.l2jmobius.gameserver.model.L2Object;
import com.l2jmobius.gameserver.model.L2Spawn; import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.L2World; import com.l2jmobius.gameserver.model.L2World;
@@ -212,6 +214,19 @@ public class AdminSpawn implements IAdminCommandHandler
else if (command.startsWith("admin_unspawnall")) else if (command.startsWith("admin_unspawnall"))
{ {
Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME)); Broadcast.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_NPC_SERVER_IS_NOT_OPERATING_AT_THIS_TIME));
// Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -227,11 +242,26 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
AdminData.getInstance().broadcastMessageToGMs("NPC Unspawn completed!"); // Reload.
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC unspawn completed!");
} }
else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload")) else if (command.startsWith("admin_respawnall") || command.startsWith("admin_spawn_reload"))
{ {
// make sure all spawns are deleted // Unload all scripts.
QuestManager.getInstance().unloadAllScripts();
// Unload all zones.
ZoneManager.getInstance().unload();
// Delete all spawns.
for (L2Npc npc : DBSpawnManager.getInstance().getNpcs().values())
{
if (npc != null)
{
DBSpawnManager.getInstance().deleteSpawn(npc.getSpawn(), true);
npc.deleteMe();
}
}
DBSpawnManager.getInstance().cleanUp(); DBSpawnManager.getInstance().cleanUp();
for (L2Object obj : L2World.getInstance().getVisibleObjects()) for (L2Object obj : L2World.getInstance().getVisibleObjects())
{ {
@@ -247,11 +277,12 @@ public class AdminSpawn implements IAdminCommandHandler
} }
} }
} }
// now respawn all // Reload.
NpcData.getInstance().load(); SpawnsData.getInstance().init();
DBSpawnManager.getInstance().load(); DBSpawnManager.getInstance().load();
ZoneManager.getInstance().reload();
QuestManager.getInstance().reloadAllScripts(); QuestManager.getInstance().reloadAllScripts();
AdminData.getInstance().broadcastMessageToGMs("NPC Respawn completed!"); AdminData.getInstance().broadcastMessageToGMs("NPC respawn completed!");
} }
else if (command.startsWith("admin_spawnat")) else if (command.startsWith("admin_spawnat"))
{ {

View File

@@ -73,7 +73,27 @@ public final class QuestManager
*/ */
public void reloadAllScripts() public void reloadAllScripts()
{ {
unloadAllScripts();
LOGGER.info("Reloading all server scripts."); 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. // Unload quests.
for (Quest quest : _quests.values()) for (Quest quest : _quests.values())
@@ -93,17 +113,6 @@ public final class QuestManager
} }
} }
_scripts.clear(); _scripts.clear();
try
{
ScriptEngineManager.getInstance().executeScriptList();
}
catch (Exception e)
{
LOGGER.log(Level.SEVERE, "Failed executing script list!", e);
}
getInstance().report();
} }
/** /**

View File

@@ -93,6 +93,26 @@ public final class ZoneManager implements IGameXmlReader
* Reload. * Reload.
*/ */
public void reload() public void reload()
{
// Unload zones.
unload();
// Load the zones.
load();
// Re-validate all characters in zones.
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
}
public void unload()
{ {
// Get the world regions // Get the world regions
int count = 0; int count = 0;
@@ -119,20 +139,6 @@ public final class ZoneManager implements IGameXmlReader
} }
} }
LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions."); LOGGER.info(getClass().getSimpleName() + ": Removed zones in " + count + " regions.");
// Load the zones
load();
// Re-validate all characters in zones
for (L2Object obj : L2World.getInstance().getVisibleObjects())
{
if (obj.isCharacter())
{
((L2Character) obj).revalidateZone(true);
}
}
SETTINGS.clear();
} }
@Override @Override