All pastes #22027 Raw Edit

Something

public text v1 · immutable
#22027 ·published 2005-09-03 06:47 UTC
rendered paste body
Index: 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;
     }