Bladeren bron

BETA Fixing server initialization when datapack is placed in a different location that core.
* Review of data loader classes.

Reported by: abramsba

Zoey76 11 jaren geleden
bovenliggende
commit
885bff06e3
24 gewijzigde bestanden met toevoegingen van 46 en 45 verwijderingen
  1. 2 1
      L2J_Server_BETA/java/com/l2jserver/Config.java
  2. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ArmorSetsData.java
  3. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/BuyListData.java
  4. 1 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CategoryData.java
  5. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharNameTable.java
  6. 4 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java
  7. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemHPBonusData.java
  8. 1 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemOptionsData.java
  9. 0 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HerbDropTable.java
  10. 1 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/KarmaData.java
  11. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ManorData.java
  12. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/MultisellData.java
  13. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcBufferTable.java
  14. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcTable.java
  15. 2 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/OptionsData.java
  16. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetDataTable.java
  17. 1 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillLearnData.java
  18. 1 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java
  19. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/StaticObjects.java
  20. 0 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TeleportLocationTable.java
  21. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TransformData.java
  22. 11 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentParser.java
  23. 1 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MapRegionManager.java
  24. 2 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/Config.java

@@ -1812,7 +1812,8 @@ public final class Config
 			
 			// Load L2J Datapack Version L2Properties file (if exists)
 			L2Properties dpVersion = new L2Properties();
-			final File dp_ver = new File(DATAPACK_VERSION_FILE);
+			
+			final File dp_ver = new File(DATAPACK_ROOT, DATAPACK_VERSION_FILE);
 			try (InputStream is = new FileInputStream(dp_ver))
 			{
 				dpVersion.load(is);

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ArmorSetsData.java

@@ -47,7 +47,7 @@ public final class ArmorSetsData extends DocumentParser
 	public void load()
 	{
 		_armorSets.clear();
-		parseDirectory("data/stats/armorsets");
+		parseDatapackDirectory("data/stats/armorsets", false);
 		_log.info(getClass().getSimpleName() + ": Loaded " + _armorSets.size() + " Armor sets.");
 	}
 	

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/BuyListData.java

@@ -53,10 +53,10 @@ public final class BuyListData extends DocumentParser
 	public synchronized void load()
 	{
 		_buyLists.clear();
-		parseDirectory("data/buylists");
+		parseDatapackDirectory("data/buylists", false);
 		if (Config.CUSTOM_BUYLIST_LOAD)
 		{
-			parseDirectory("data/buylists/custom");
+			parseDatapackDirectory("data/buylists/custom", false);
 		}
 		
 		_log.info(getClass().getSimpleName() + ": Loaded " + _buyLists.size() + " BuyLists.");

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CategoryData.java

@@ -49,6 +49,7 @@ public final class CategoryData extends DocumentParser
 	@Override
 	public void load()
 	{
+		_categories.clear();
 		parseDatapackFile("data/categoryData.xml");
 		_log.info(getClass().getSimpleName() + ": Loaded " + _categories.size() + " Categories.");
 	}

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharNameTable.java

@@ -53,11 +53,6 @@ public class CharNameTable
 		}
 	}
 	
-	public static CharNameTable getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
 	public final void addName(L2PcInstance player)
 	{
 		if (player != null)
@@ -262,6 +257,11 @@ public class CharNameTable
 		_log.info(getClass().getSimpleName() + ": Loaded " + _chars.size() + " char names.");
 	}
 	
+	public static CharNameTable getInstance()
+	{
+		return SingletonHolder._instance;
+	}
+	
 	private static class SingletonHolder
 	{
 		protected static final CharNameTable _instance = new CharNameTable();

+ 4 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java

@@ -53,9 +53,10 @@ public final class CharTemplateTable extends DocumentParser
 	@Override
 	public void load()
 	{
-		parseDirectory("data/stats/chars/baseStats/");
-		_log.info(getClass().getSimpleName() + ": Loaded " + _charTemplates.size() + " Character Templates.");
-		_log.info(getClass().getSimpleName() + ": loaded " + _dataCount + " level upgain records");
+		_charTemplates.clear();
+		parseDatapackDirectory("data/stats/chars/baseStats", false);
+		_log.info(getClass().getSimpleName() + ": Loaded " + _charTemplates.size() + " character templates.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _dataCount + " level up gain records.");
 	}
 	
 	@Override

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemHPBonusData.java

@@ -131,7 +131,7 @@ public class EnchantItemHPBonusData extends DocumentParser
 	{
 		_armorHPBonuses.clear();
 		parseDatapackFile("data/stats/enchantHPBonus.xml");
-		_log.info(getClass().getSimpleName() + ": Loaded " + _armorHPBonuses.size() + " Enchant HP Bonuses!");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _armorHPBonuses.size() + " Enchant HP Bonuses.");
 	}
 	
 	/**

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemOptionsData.java

@@ -44,6 +44,7 @@ public class EnchantItemOptionsData extends DocumentParser
 	@Override
 	public synchronized void load()
 	{
+		_data.clear();
 		parseDatapackFile("data/enchantItemOptions.xml");
 	}
 	

+ 0 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HerbDropTable.java

@@ -32,10 +32,6 @@ import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.L2DropCategory;
 import com.l2jserver.gameserver.model.L2DropData;
 
-/**
- * This class ...
- * @version $Revision$ $Date$
- */
 public class HerbDropTable
 {
 	private static final Logger _log = Logger.getLogger(HerbDropTable.class.getName());

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/KarmaData.java

@@ -42,6 +42,7 @@ public class KarmaData extends DocumentParser
 	@Override
 	public synchronized void load()
 	{
+		_karmaTable.clear();
 		parseDatapackFile("data/stats/chars/pcKarmaIncrease.xml");
 		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded " + _karmaTable.size() + " karma modifiers.");
 	}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ManorData.java

@@ -53,7 +53,7 @@ public class ManorData extends DocumentParser
 	{
 		_seeds.clear();
 		parseDatapackFile("data/seeds.xml");
-		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _seeds.size() + " Seeds");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _seeds.size() + " seeds.");
 	}
 	
 	@Override

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/MultisellData.java

@@ -64,14 +64,14 @@ public class MultisellData extends DocumentParser
 	public final void load()
 	{
 		_entries.clear();
-		parseDirectory("data/multisell");
+		parseDatapackDirectory("data/multisell", false);
 		if (Config.CUSTOM_MULTISELL_LOAD)
 		{
-			parseDirectory("data/multisell/custom");
+			parseDatapackDirectory("data/multisell/custom", false);
 		}
 		
 		verify();
-		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded " + _entries.size() + " lists.");
+		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded " + _entries.size() + " multisell lists.");
 	}
 	
 	@Override

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcBufferTable.java

@@ -34,7 +34,7 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
 
 public class NpcBufferTable
 {
-	private static Logger _log = Logger.getLogger(NpcBufferTable.class.getName());
+	private static final Logger _log = Logger.getLogger(NpcBufferTable.class.getName());
 	
 	private final Map<Integer, NpcBufferSkills> _buffers = new HashMap<>();
 	

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcTable.java

@@ -95,7 +95,6 @@ public class NpcTable extends DocumentParser
 	 */
 	protected NpcTable()
 	{
-		_npcs.clear();
 		restoreNpcData();
 		load();
 	}
@@ -103,7 +102,8 @@ public class NpcTable extends DocumentParser
 	@Override
 	public synchronized void load()
 	{
-		parseDirectory("data/stats/npcs");
+		_npcs.clear();
+		parseDatapackDirectory("data/stats/npcs", false);
 	}
 	
 	@Override

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/OptionsData.java

@@ -49,7 +49,8 @@ public class OptionsData extends DocumentParser
 	@Override
 	public synchronized void load()
 	{
-		parseDirectory("data/stats/options");
+		_data.clear();
+		parseDatapackDirectory("data/stats/options", false);
 		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _data.size() + " Options.");
 	}
 	

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetDataTable.java

@@ -50,7 +50,7 @@ public final class PetDataTable extends DocumentParser
 	public void load()
 	{
 		_pets.clear();
-		parseDirectory("data/stats/pets/");
+		parseDatapackDirectory("data/stats/pets", false);
 		_log.info(getClass().getSimpleName() + ": Loaded " + _pets.size() + " Pets.");
 	}
 	

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillLearnData.java

@@ -44,6 +44,7 @@ public final class SkillLearnData extends DocumentParser
 	@Override
 	public synchronized void load()
 	{
+		_skillLearn.clear();
 		parseDatapackFile("data/skillLearn.xml");
 		_log.info(getClass().getSimpleName() + ": Loaded " + _skillLearn.size() + " Skill Learn data.");
 	}

+ 1 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java

@@ -18,7 +18,6 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import java.io.File;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -127,7 +126,7 @@ public final class SkillTreesData extends DocumentParser
 		_gameMasterAuraSkillTree.clear();
 		
 		// Load files.
-		parseDirectory(new File(Config.DATAPACK_ROOT, "data/skillTrees/"));
+		parseDatapackDirectory("data/skillTrees/", false);
 		
 		// Generate check arrays.
 		generateCheckArrays();

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/StaticObjects.java

@@ -52,7 +52,7 @@ public final class StaticObjects extends DocumentParser
 	{
 		_staticObjects.clear();
 		parseDatapackFile("data/staticObjects.xml");
-		_log.info(getClass().getSimpleName() + ": Loaded " + _staticObjects.size() + " StaticObject Templates.");
+		_log.info(getClass().getSimpleName() + ": Loaded " + _staticObjects.size() + " static object templates.");
 	}
 	
 	@Override

+ 0 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TeleportLocationTable.java

@@ -30,10 +30,6 @@ import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.model.L2TeleportLocation;
 
-/**
- * This class ...
- * @version $Revision: 1.3.2.2.2.3 $ $Date: 2005/03/27 15:29:18 $
- */
 public class TeleportLocationTable
 {
 	private static Logger _log = Logger.getLogger(TeleportLocationTable.class.getName());

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TransformData.java

@@ -52,7 +52,7 @@ public final class TransformData extends DocumentParser
 	public synchronized void load()
 	{
 		_transformData.clear();
-		parseDirectory("data/stats/transformations");
+		parseDatapackDirectory("data/stats/transformations", false);
 		_log.log(Level.INFO, getClass().getSimpleName() + ": Loaded: " + _transformData.size() + " transform templates.");
 	}
 	

+ 11 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentParser.java

@@ -182,6 +182,17 @@ public abstract class DocumentParser
 		return true;
 	}
 	
+	/**
+	 * Wrapper for {@link #parseDirectory(File, boolean)}.
+	 * @param path the path to the directory where the XML files are
+	 * @param recursive parses all sub folders if there is
+	 * @return {@code false} if it fails to find the directory, {@code true} otherwise
+	 */
+	protected boolean parseDatapackDirectory(String path, boolean recursive)
+	{
+		return parseDirectory(new File(Config.DATAPACK_ROOT, path), recursive);
+	}
+	
 	/**
 	 * Overridable method that could parse a custom document.<br>
 	 * @param doc the document to parse.

+ 1 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MapRegionManager.java

@@ -18,7 +18,6 @@
  */
 package com.l2jserver.gameserver.instancemanager;
 
-import java.io.File;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -26,7 +25,6 @@ import java.util.Map;
 import org.w3c.dom.NamedNodeMap;
 import org.w3c.dom.Node;
 
-import com.l2jserver.Config;
 import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.engines.DocumentParser;
 import com.l2jserver.gameserver.model.L2MapRegion;
@@ -62,7 +60,7 @@ public final class MapRegionManager extends DocumentParser
 	public void load()
 	{
 		_regions.clear();
-		parseDirectory(new File(Config.DATAPACK_ROOT, "data/mapregion/"));
+		parseDatapackDirectory("data/mapregion/", false);
 		_log.info(getClass().getSimpleName() + ": Loaded " + _regions.size() + " map regions.");
 	}
 	

+ 2 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java

@@ -340,15 +340,9 @@ public final class ZoneManager extends DocumentParser
 	@Override
 	public final void load()
 	{
-		_log.info(getClass().getSimpleName() + ": Loading zones...");
 		_classZones.clear();
-		
-		long started = System.currentTimeMillis();
-		
-		parseDirectory("data/zones");
-		
-		started = System.currentTimeMillis() - started;
-		_log.info(getClass().getSimpleName() + ": Loaded " + _classZones.size() + " zone classes and " + getSize() + " zones in " + (started / 1000) + " seconds.");
+		parseDatapackDirectory("data/zones", false);
+		_log.info(getClass().getSimpleName() + ": Loaded " + _classZones.size() + " zone classes and " + getSize() + " zones.");
 	}
 	
 	/**