rendered paste bodyIndex: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/NpcTable.java
===================================================================
--- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/NpcTable.java (revision 921)
+++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/NpcTable.java (working copy)
@@ -47,7 +47,7 @@
private HashMap<Integer, L2NpcTemplate> _npcs;
private HashMap<String, L2NpcTemplate> _npcsNames;
- private boolean _initialized = true;
+ private boolean _initialized = false;
public static NpcTable getInstance()
{
@@ -63,7 +63,6 @@
_npcs = new HashMap<Integer, L2NpcTemplate>();
_npcsNames = new HashMap<String, L2NpcTemplate>();
RestoreNpcData();
-
}
/**
@@ -183,6 +182,8 @@
} finally {
try { con.close(); } catch (Exception e) {}
}
+
+ _initialized = true;
}
private void fillNpcTable(ResultSet NpcData)
@@ -305,6 +306,13 @@
}
}
+ // just wrapper
+ public void reloadAllNpc()
+ {
+ RestoreNpcData();
+ }
+
+
public void saveNpc(StatsSet npc)
{
java.sql.Connection con = null;
Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/SpawnTable.java
===================================================================
--- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/SpawnTable.java (revision 921)
+++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/SpawnTable.java (working copy)
@@ -223,4 +223,10 @@
}
}
}
+
+ //just wrapper
+ public void reloadAll()
+ {
+ fillSpawnTable();
+ }
}
Index: C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminSpawn.java
===================================================================
--- C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminSpawn.java (revision 921)
+++ C:/eclipse-31m7/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminSpawn.java (working copy)
@@ -19,14 +19,19 @@
package net.sf.l2j.gameserver.handler.admincommandhandlers;
import java.util.StringTokenizer;
-import java.util.regex.*;
+import java.util.logging.Logger;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
import net.sf.l2j.Config;
import net.sf.l2j.gameserver.NpcTable;
import net.sf.l2j.gameserver.SpawnTable;
import net.sf.l2j.gameserver.handler.IAdminCommandHandler;
+import net.sf.l2j.gameserver.model.L2NpcInstance;
import net.sf.l2j.gameserver.model.L2Object;
import net.sf.l2j.gameserver.model.L2PcInstance;
import net.sf.l2j.gameserver.model.L2Spawn;
+import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.serverpackets.SystemMessage;
import net.sf.l2j.gameserver.templates.L2NpcTemplate;
@@ -40,7 +45,8 @@
public class AdminSpawn implements IAdminCommandHandler
{
- private static String[] _adminCommands = { "admin_show_spawns", "admin_spawn", "admin_spawn_monster", "admin_spawn_index" };
+ private static String[] _adminCommands = { "admin_show_spawns", "admin_spawn", "admin_spawn_monster", "admin_spawn_index","admin_unspawnall","admin_respawnall" };
+ private static Logger _log = Logger.getLogger(AdminSpawn.class.getName());
private static final int REQUIRED_LEVEL = Config.GM_NPC_EDIT;
@@ -81,6 +87,33 @@
// Case of wrong monster data
}
}
+ else if (command.startsWith("admin_unspawnall"))
+ {
+ _log.info("NPC removing STARTED!");
+ for(L2Object obj : L2World.getInstance().getAllVisibleObjects())
+ {
+ if(obj instanceof L2NpcInstance)
+ {
+ L2NpcInstance target = (L2NpcInstance) obj;
+ target.deleteMe();
+ L2Spawn spawn = target.getSpawn();
+ if (spawn != null)
+ {
+ spawn.stopRespawn();
+ SpawnTable.getInstance().deleteSpawn(spawn, false);
+ }
+ _log.finer("Removed NPC "+target.getObjectId());
+ }
+ }
+ _log.info("NPC removing completed");
+ }
+ else if (command.startsWith("admin_respawnall"))
+ {
+ _log.info("NPC spawn STARTED!");
+ NpcTable.getInstance().reloadAllNpc();
+ SpawnTable.getInstance().reloadAll();
+ _log.info("NPC spawn complete");
+ }
return true;
}