2
0
Эх сурвалжийг харах

BETA: Improved `DocumentParser` parse'''Value''' functions.

Nos 11 жил өмнө
parent
commit
45043173cf
20 өөрчлөгдсөн 270 нэмэгдсэн , 175 устгасан
  1. 18 18
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ArmorSetsData.java
  2. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharTemplateTable.java
  3. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ClassListData.java
  4. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemGroupsData.java
  5. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemOptionsData.java
  6. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantSkillGroupsData.java
  7. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HitConditionBonus.java
  8. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/KarmaData.java
  9. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ManorData.java
  10. 17 17
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcTable.java
  11. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/OptionsData.java
  12. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/PetDataTable.java
  13. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java
  14. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SpawnTable.java
  15. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/TransformData.java
  16. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/UIData.java
  17. 166 71
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentParser.java
  18. 10 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MapRegionManager.java
  19. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java
  20. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java

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

@@ -72,83 +72,83 @@ public final class ArmorSetsData extends DocumentParser
 							{
 								case "chest":
 								{
-									set.addChest(parseInt(attrs, "id"));
+									set.addChest(parseInteger(attrs, "id"));
 									break;
 								}
 								case "feet":
 								{
-									set.addFeet(parseInt(attrs, "id"));
+									set.addFeet(parseInteger(attrs, "id"));
 									break;
 								}
 								case "gloves":
 								{
-									set.addGloves(parseInt(attrs, "id"));
+									set.addGloves(parseInteger(attrs, "id"));
 									break;
 								}
 								case "head":
 								{
-									set.addHead(parseInt(attrs, "id"));
+									set.addHead(parseInteger(attrs, "id"));
 									break;
 								}
 								case "legs":
 								{
-									set.addLegs(parseInt(attrs, "id"));
+									set.addLegs(parseInteger(attrs, "id"));
 									break;
 								}
 								case "shield":
 								{
-									set.addShield(parseInt(attrs, "id"));
+									set.addShield(parseInteger(attrs, "id"));
 									break;
 								}
 								case "skill":
 								{
-									int skillId = parseInt(attrs, "id");
-									int skillLevel = parseInt(attrs, "level");
+									int skillId = parseInteger(attrs, "id");
+									int skillLevel = parseInteger(attrs, "level");
 									set.addSkill(new SkillHolder(skillId, skillLevel));
 									break;
 								}
 								case "shield_skill":
 								{
-									int skillId = parseInt(attrs, "id");
-									int skillLevel = parseInt(attrs, "level");
+									int skillId = parseInteger(attrs, "id");
+									int skillLevel = parseInteger(attrs, "level");
 									set.addShieldSkill(new SkillHolder(skillId, skillLevel));
 									break;
 								}
 								case "enchant6skill":
 								{
-									int skillId = parseInt(attrs, "id");
-									int skillLevel = parseInt(attrs, "level");
+									int skillId = parseInteger(attrs, "id");
+									int skillLevel = parseInteger(attrs, "level");
 									set.addEnchant6Skill(new SkillHolder(skillId, skillLevel));
 									break;
 								}
 								case "con":
 								{
-									set.addCon(parseInt(attrs, "val"));
+									set.addCon(parseInteger(attrs, "val"));
 									break;
 								}
 								case "dex":
 								{
-									set.addDex(parseInt(attrs, "val"));
+									set.addDex(parseInteger(attrs, "val"));
 									break;
 								}
 								case "str":
 								{
-									set.addStr(parseInt(attrs, "val"));
+									set.addStr(parseInteger(attrs, "val"));
 									break;
 								}
 								case "men":
 								{
-									set.addMen(parseInt(attrs, "val"));
+									set.addMen(parseInteger(attrs, "val"));
 									break;
 								}
 								case "wit":
 								{
-									set.addWit(parseInt(attrs, "val"));
+									set.addWit(parseInteger(attrs, "val"));
 									break;
 								}
 								case "int":
 								{
-									set.addInt(parseInt(attrs, "val"));
+									set.addInt(parseInteger(attrs, "val"));
 									break;
 								}
 							}

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

@@ -108,7 +108,7 @@ public final class CharTemplateTable extends DocumentParser
 									if ("node".equalsIgnoreCase(cnd.getNodeName()))
 									{
 										attrs = cnd.getAttributes();
-										creationPoints.add(new Location(parseInt(attrs, "x"), parseInt(attrs, "y"), parseInt(attrs, "z")));
+										creationPoints.add(new Location(parseInteger(attrs, "x"), parseInteger(attrs, "y"), parseInteger(attrs, "z")));
 									}
 									else if ("walk".equalsIgnoreCase(cnd.getNodeName()))
 									{
@@ -151,7 +151,7 @@ public final class CharTemplateTable extends DocumentParser
 							if ("level".equalsIgnoreCase(lvlNode.getNodeName()))
 							{
 								attrs = lvlNode.getAttributes();
-								int level = parseInt(attrs, "val");
+								int level = parseInteger(attrs, "val");
 								
 								for (Node valNode = lvlNode.getFirstChild(); valNode != null; valNode = valNode.getNextSibling())
 								{

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

@@ -72,13 +72,13 @@ public final class ClassListData extends DocumentParser
 					if ("class".equals(d.getNodeName()))
 					{
 						attr = attrs.getNamedItem("classId");
-						classId = ClassId.getClassId(parseInt(attr));
+						classId = ClassId.getClassId(parseInteger(attr));
 						attr = attrs.getNamedItem("name");
 						className = attr.getNodeValue();
 						attr = attrs.getNamedItem("serverName");
 						classServName = attr.getNodeValue();
 						attr = attrs.getNamedItem("parentClassId");
-						parentClassId = (attr != null) ? ClassId.getClassId(parseInt(attr)) : null;
+						parentClassId = (attr != null) ? ClassId.getClassId(parseInteger(attr)) : null;
 						_classData.put(classId, new ClassInfo(classId, className, classServName, parentClassId));
 					}
 				}

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

@@ -101,7 +101,7 @@ public final class EnchantItemGroupsData extends DocumentParser
 					}
 					else if ("enchantScrollGroup".equals(d.getNodeName()))
 					{
-						int id = parseInt(d.getAttributes(), "id");
+						int id = parseInteger(d.getAttributes(), "id");
 						final EnchantScrollGroup group = new EnchantScrollGroup(id);
 						for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
 						{
@@ -123,7 +123,7 @@ public final class EnchantItemGroupsData extends DocumentParser
 										}
 										if (attrs.getNamedItem("id") != null)
 										{
-											rateGroup.setItemId(parseInt(attrs, "id"));
+											rateGroup.setItemId(parseInteger(attrs, "id"));
 										}
 									}
 								}

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

@@ -62,7 +62,7 @@ public class EnchantItemOptionsData extends DocumentParser
 				{
 					if ("item".equalsIgnoreCase(d.getNodeName()))
 					{
-						int itemId = parseInt(d.getAttributes(), "id");
+						int itemId = parseInteger(d.getAttributes(), "id");
 						if (!_data.containsKey(itemId))
 						{
 							_data.put(itemId, new HashMap<Integer, EnchantOptions>());
@@ -71,7 +71,7 @@ public class EnchantItemOptionsData extends DocumentParser
 						{
 							if ("options".equalsIgnoreCase(cd.getNodeName()))
 							{
-								op = new EnchantOptions(parseInt(cd.getAttributes(), "level"));
+								op = new EnchantOptions(parseInteger(cd.getAttributes(), "level"));
 								_data.get(itemId).put(op.getLevel(), op);
 								
 								for (byte i = 0; i < 3; i++)
@@ -79,7 +79,7 @@ public class EnchantItemOptionsData extends DocumentParser
 									att = cd.getAttributes().getNamedItem("option" + (i + 1));
 									if ((att != null) && Util.isDigit(att.getNodeValue()))
 									{
-										op.setOption(i, parseInt(att));
+										op.setOption(i, parseInteger(att));
 									}
 								}
 								counter++;

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

@@ -90,7 +90,7 @@ public class EnchantSkillGroupsData extends DocumentParser
 					if ("group".equalsIgnoreCase(d.getNodeName()))
 					{
 						attrs = d.getAttributes();
-						id = parseInt(attrs, "id");
+						id = parseInteger(attrs, "id");
 						
 						group = _enchantSkillGroups.get(id);
 						if (group == null)

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/HitConditionBonus.java

@@ -76,25 +76,25 @@ public final class HitConditionBonus extends DocumentParser
 			switch (d.getNodeName())
 			{
 				case "front":
-					frontBonus = parseInt(attrs, "val");
+					frontBonus = parseInteger(attrs, "val");
 					break;
 				case "side":
-					sideBonus = parseInt(attrs, "val");
+					sideBonus = parseInteger(attrs, "val");
 					break;
 				case "back":
-					backBonus = parseInt(attrs, "val");
+					backBonus = parseInteger(attrs, "val");
 					break;
 				case "high":
-					highBonus = parseInt(attrs, "val");
+					highBonus = parseInteger(attrs, "val");
 					break;
 				case "low":
-					lowBonus = parseInt(attrs, "val");
+					lowBonus = parseInteger(attrs, "val");
 					break;
 				case "dark":
-					darkBonus = parseInt(attrs, "val");
+					darkBonus = parseInteger(attrs, "val");
 					break;
 				case "rain":
-					rainBonus = parseInt(attrs, "val");
+					rainBonus = parseInteger(attrs, "val");
 					break;
 			}
 		}

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

@@ -60,7 +60,7 @@ public class KarmaData extends DocumentParser
 					if ("increase".equalsIgnoreCase(d.getNodeName()))
 					{
 						attrs = d.getAttributes();
-						_karmaTable.put(parseInt(attrs, "lvl"), parseDouble(attrs, "val"));
+						_karmaTable.put(parseInteger(attrs, "lvl"), parseDouble(attrs, "val"));
 					}
 				}
 			}

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

@@ -71,7 +71,7 @@ public class ManorData extends DocumentParser
 				{
 					if ("castle".equalsIgnoreCase(d.getNodeName()))
 					{
-						castleId = parseInt(d.getAttributes(), "id");
+						castleId = parseInteger(d.getAttributes(), "id");
 						for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling())
 						{
 							if ("crop".equalsIgnoreCase(c.getNodeName()))

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

@@ -121,7 +121,7 @@ public class NpcTable extends DocumentParser
 					if ("npc".equals(d.getNodeName()))
 					{
 						attrs = d.getAttributes();
-						int id = parseInt(attrs, "id");
+						int id = parseInteger(attrs, "id");
 						if (_npcs.containsKey(id))
 						{
 							L2NpcTemplate template = _npcs.get(id);
@@ -137,7 +137,7 @@ public class NpcTable extends DocumentParser
 									case "base_attack":
 									{
 										final String type = parseString(attrs, "type");
-										final int range = parseInt(attrs, "range");
+										final int range = parseInteger(attrs, "range");
 										final L2WeaponType weaponType = L2WeaponType.findByName(type);
 										template.setBaseAttackType(weaponType);
 										template.setBaseAttackRange(range);
@@ -150,22 +150,22 @@ public class NpcTable extends DocumentParser
 											attrs = b.getAttributes();
 											if ("attack".equals(b.getNodeName()))
 											{
-												template.setBaseFire(parseInt(attrs, "fire"));
-												template.setBaseWater(parseInt(attrs, "water"));
-												template.setBaseEarth(parseInt(attrs, "earth"));
-												template.setBaseWind(parseInt(attrs, "wind"));
-												template.setBaseHoly(parseInt(attrs, "holy"));
-												template.setBaseDark(parseInt(attrs, "dark"));
+												template.setBaseFire(parseInteger(attrs, "fire"));
+												template.setBaseWater(parseInteger(attrs, "water"));
+												template.setBaseEarth(parseInteger(attrs, "earth"));
+												template.setBaseWind(parseInteger(attrs, "wind"));
+												template.setBaseHoly(parseInteger(attrs, "holy"));
+												template.setBaseDark(parseInteger(attrs, "dark"));
 											}
 											else if ("defend".equals(b.getNodeName()))
 											{
-												template.setBaseFireRes(parseInt(attrs, "fire"));
-												template.setBaseWaterRes(parseInt(attrs, "water"));
-												template.setBaseEarthRes(parseInt(attrs, "earth"));
-												template.setBaseWindRes(parseInt(attrs, "wind"));
-												template.setBaseHolyRes(parseInt(attrs, "holy"));
-												template.setBaseDarkRes(parseInt(attrs, "dark"));
-												template.setBaseElementRes(parseInt(attrs, "unknown"));
+												template.setBaseFireRes(parseInteger(attrs, "fire"));
+												template.setBaseWaterRes(parseInteger(attrs, "water"));
+												template.setBaseEarthRes(parseInteger(attrs, "earth"));
+												template.setBaseWindRes(parseInteger(attrs, "wind"));
+												template.setBaseHolyRes(parseInteger(attrs, "holy"));
+												template.setBaseDarkRes(parseInteger(attrs, "dark"));
+												template.setBaseElementRes(parseInteger(attrs, "unknown"));
 											}
 										}
 										break;
@@ -185,12 +185,12 @@ public class NpcTable extends DocumentParser
 												}
 												case "ai_skill":
 												{
-													set.set(parseString(attrs, "name"), new SkillHolder(parseInt(attrs, "id"), parseInt(attrs, "level")));
+													set.set(parseString(attrs, "name"), new SkillHolder(parseInteger(attrs, "id"), parseInteger(attrs, "level")));
 													break;
 												}
 												case "ai_item":
 												{
-													set.set(parseString(attrs, "name"), new ItemHolder(parseInt(attrs, "id"), 1));
+													set.set(parseString(attrs, "name"), new ItemHolder(parseInteger(attrs, "id"), 1));
 													break;
 												}
 												case "ai":

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/OptionsData.java

@@ -67,7 +67,7 @@ public class OptionsData extends DocumentParser
 				{
 					if ("option".equalsIgnoreCase(d.getNodeName()))
 					{
-						id = parseInt(d.getAttributes(), "id");
+						id = parseInteger(d.getAttributes(), "id");
 						op = new Options(id);
 						
 						for (Node cd = d.getFirstChild(); cd != null; cd = cd.getNextSibling())
@@ -116,27 +116,27 @@ public class OptionsData extends DocumentParser
 								}
 								case "active_skill":
 								{
-									op.setActiveSkill(new SkillHolder(parseInt(cd.getAttributes(), "id"), parseInt(cd.getAttributes(), "level")));
+									op.setActiveSkill(new SkillHolder(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "level")));
 									break;
 								}
 								case "passive_skill":
 								{
-									op.setPassiveSkill(new SkillHolder(parseInt(cd.getAttributes(), "id"), parseInt(cd.getAttributes(), "level")));
+									op.setPassiveSkill(new SkillHolder(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "level")));
 									break;
 								}
 								case "attack_skill":
 								{
-									op.addActivationSkill(new OptionsSkillHolder(parseInt(cd.getAttributes(), "id"), parseInt(cd.getAttributes(), "level"), parseDouble(cd.getAttributes(), "chance"), OptionsSkillType.ATTACK));
+									op.addActivationSkill(new OptionsSkillHolder(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "level"), parseDouble(cd.getAttributes(), "chance"), OptionsSkillType.ATTACK));
 									break;
 								}
 								case "magic_skill":
 								{
-									op.addActivationSkill(new OptionsSkillHolder(parseInt(cd.getAttributes(), "id"), parseInt(cd.getAttributes(), "level"), parseDouble(cd.getAttributes(), "chance"), OptionsSkillType.MAGIC));
+									op.addActivationSkill(new OptionsSkillHolder(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "level"), parseDouble(cd.getAttributes(), "chance"), OptionsSkillType.MAGIC));
 									break;
 								}
 								case "critical_skill":
 								{
-									op.addActivationSkill(new OptionsSkillHolder(parseInt(cd.getAttributes(), "id"), parseInt(cd.getAttributes(), "level"), parseDouble(cd.getAttributes(), "chance"), OptionsSkillType.CRITICAL));
+									op.addActivationSkill(new OptionsSkillHolder(parseInteger(cd.getAttributes(), "id"), parseInteger(cd.getAttributes(), "level"), parseDouble(cd.getAttributes(), "chance"), OptionsSkillType.CRITICAL));
 									break;
 								}
 							}

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

@@ -63,8 +63,8 @@ public final class PetDataTable extends DocumentParser
 		{
 			if (d.getNodeName().equals("pet"))
 			{
-				int npcId = parseInt(d.getAttributes(), "id");
-				int itemId = parseInt(d.getAttributes(), "itemId");
+				int npcId = parseInteger(d.getAttributes(), "id");
+				int itemId = parseInteger(d.getAttributes(), "itemId");
 				// index ignored for now
 				L2PetData data = new L2PetData(npcId, itemId);
 				for (Node p = d.getFirstChild(); p != null; p = p.getNextSibling())
@@ -82,15 +82,15 @@ public final class PetDataTable extends DocumentParser
 						}
 						else if ("load".equals(type))
 						{
-							data.setLoad(parseInt(attrs, "val"));
+							data.setLoad(parseInteger(attrs, "val"));
 						}
 						else if ("hungry_limit".equals(type))
 						{
-							data.setHungryLimit(parseInt(attrs, "val"));
+							data.setHungryLimit(parseInteger(attrs, "val"));
 						}
 						else if ("sync_level".equals(type))
 						{
-							data.setSyncLevel(parseInt(attrs, "val") == 1);
+							data.setSyncLevel(parseInteger(attrs, "val") == 1);
 						}
 						// evolve ignored
 					}
@@ -101,7 +101,7 @@ public final class PetDataTable extends DocumentParser
 							if (s.getNodeName().equals("skill"))
 							{
 								attrs = s.getAttributes();
-								data.addNewSkill(parseInt(attrs, "skillId"), parseInt(attrs, "skillLvl"), parseInt(attrs, "minLvl"));
+								data.addNewSkill(parseInteger(attrs, "skillId"), parseInteger(attrs, "skillLvl"), parseInteger(attrs, "minLvl"));
 							}
 						}
 					}

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

@@ -201,10 +201,10 @@ public final class SkillTreesData extends DocumentParser
 									switch (b.getNodeName())
 									{
 										case "item":
-											skillLearn.addRequiredItem(new ItemHolder(parseInt(attrs, "id"), parseInt(attrs, "count")));
+											skillLearn.addRequiredItem(new ItemHolder(parseInteger(attrs, "id"), parseInteger(attrs, "count")));
 											break;
 										case "preRequisiteSkill":
-											skillLearn.addPreReqSkill(new SkillHolder(parseInt(attrs, "id"), parseInt(attrs, "lvl")));
+											skillLearn.addPreReqSkill(new SkillHolder(parseInteger(attrs, "id"), parseInteger(attrs, "lvl")));
 											break;
 										case "race":
 											skillLearn.addRace(PcRace.valueOf(b.getTextContent()));
@@ -216,7 +216,7 @@ public final class SkillTreesData extends DocumentParser
 											skillLearn.setSocialClass(Enum.valueOf(SocialClass.class, b.getTextContent()));
 											break;
 										case "subClassConditions":
-											skillLearn.addSubclassConditions(parseInt(attrs, "slot"), parseInt(attrs, "lvl"));
+											skillLearn.addSubclassConditions(parseInteger(attrs, "slot"), parseInteger(attrs, "lvl"));
 											break;
 									}
 								}

+ 8 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SpawnTable.java

@@ -175,7 +175,7 @@ public final class SpawnTable extends DocumentParser
 							else if (npctag.getNodeName().equalsIgnoreCase("npc"))
 							{
 								// mandatory
-								final int templateId = parseInt(attrs, "id");
+								final int templateId = parseInteger(attrs, "id");
 								// coordinates are optional, if territory is specified; mandatory otherwise
 								int x = 0;
 								int y = 0;
@@ -183,9 +183,9 @@ public final class SpawnTable extends DocumentParser
 								
 								try
 								{
-									x = parseInt(attrs, "x");
-									y = parseInt(attrs, "y");
-									z = parseInt(attrs, "z");
+									x = parseInteger(attrs, "x");
+									y = parseInteger(attrs, "y");
+									z = parseInteger(attrs, "z");
 								}
 								catch (NullPointerException npe)
 								{
@@ -209,22 +209,22 @@ public final class SpawnTable extends DocumentParser
 								// trying to read optional parameters
 								if (attrs.getNamedItem("heading") != null)
 								{
-									spawnInfo.set("heading", parseInt(attrs, "heading"));
+									spawnInfo.set("heading", parseInteger(attrs, "heading"));
 								}
 								
 								if (attrs.getNamedItem("count") != null)
 								{
-									spawnInfo.set("count", parseInt(attrs, "count"));
+									spawnInfo.set("count", parseInteger(attrs, "count"));
 								}
 								
 								if (attrs.getNamedItem("respawnDelay") != null)
 								{
-									spawnInfo.set("respawnDelay", parseInt(attrs, "respawnDelay"));
+									spawnInfo.set("respawnDelay", parseInteger(attrs, "respawnDelay"));
 								}
 								
 								if (attrs.getNamedItem("respawnRandom") != null)
 								{
-									spawnInfo.set("respawnRandom", parseInt(attrs, "respawnRandom"));
+									spawnInfo.set("respawnRandom", parseInteger(attrs, "respawnRandom"));
 								}
 								
 								if (attrs.getNamedItem("periodOfDay") != null)

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

@@ -127,8 +127,8 @@ public final class TransformData extends DocumentParser
 												if ("skill".equals(s.getNodeName()))
 												{
 													attrs = s.getAttributes();
-													int skillId = parseInt(attrs, "id");
-													int skillLevel = parseInt(attrs, "level");
+													int skillId = parseInteger(attrs, "id");
+													int skillLevel = parseInteger(attrs, "level");
 													templateData.addSkill(new SkillHolder(skillId, skillLevel));
 												}
 											}
@@ -158,9 +158,9 @@ public final class TransformData extends DocumentParser
 												if ("skill".equals(s.getNodeName()))
 												{
 													attrs = s.getAttributes();
-													int skillId = parseInt(attrs, "id");
-													int skillLevel = parseInt(attrs, "level");
-													int minLevel = parseInt(attrs, "minLevel");
+													int skillId = parseInteger(attrs, "id");
+													int skillLevel = parseInteger(attrs, "level");
+													int minLevel = parseInteger(attrs, "minLevel");
 													templateData.addAdditionalSkill(new AdditionalSkillHolder(skillId, skillLevel, minLevel));
 												}
 											}
@@ -178,7 +178,7 @@ public final class TransformData extends DocumentParser
 												if ("item".equals(s.getNodeName()))
 												{
 													attrs = s.getAttributes();
-													int itemId = parseInt(attrs, "id");
+													int itemId = parseInteger(attrs, "id");
 													boolean allowed = parseBoolean(attrs, "allowed");
 													templateData.addAdditionalItem(new AdditionalItemHolder(itemId, allowed));
 												}

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

@@ -74,7 +74,7 @@ public class UIData extends DocumentParser
 	
 	private void parseCategory(Node n)
 	{
-		final int cat = parseInt(n.getAttributes(), "id");
+		final int cat = parseInteger(n.getAttributes(), "id");
 		for (Node d = n.getFirstChild(); d != null; d = d.getNextSibling())
 		{
 			if ("commands".equalsIgnoreCase(d.getNodeName()))

+ 166 - 71
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentParser.java

@@ -208,102 +208,197 @@ public abstract class DocumentParser
 	 */
 	protected abstract void parseDocument();
 	
-	/**
-	 * Parses the int.
-	 * @param n the named node map.
-	 * @param name the attribute name.
-	 * @return a parsed integer.
-	 */
-	protected static int parseInt(NamedNodeMap n, String name)
+	protected Boolean parseBoolean(Node node, Boolean defaultValue)
 	{
-		return Integer.parseInt(n.getNamedItem(name).getNodeValue());
+		return node != null ? Boolean.valueOf(node.getNodeValue()) : defaultValue;
 	}
 	
-	/**
-	 * Parses the integer.
-	 * @param n the named node map.
-	 * @param name the attribute name.
-	 * @return a parsed integer object.
-	 */
-	protected static Integer parseInteger(NamedNodeMap n, String name)
+	protected Boolean parseBoolean(Node node)
 	{
-		return Integer.valueOf(n.getNamedItem(name).getNodeValue());
+		return parseBoolean(node, null);
 	}
 	
-	/**
-	 * Parses the int.
-	 * @param n the node to parse.
-	 * @return the parsed integer.
-	 */
-	protected static int parseInt(Node n)
+	protected Boolean parseBoolean(NamedNodeMap attrs, String name)
 	{
-		return Integer.parseInt(n.getNodeValue());
+		return parseBoolean(attrs.getNamedItem(name));
 	}
 	
-	/**
-	 * Parses the integer.
-	 * @param n the node to parse.
-	 * @return the parsed integer object.
-	 */
-	protected static Integer parseInteger(Node n)
+	protected Boolean parseBoolean(NamedNodeMap attrs, String name, Boolean defaultValue)
 	{
-		return Integer.valueOf(n.getNodeValue());
+		return parseBoolean(attrs.getNamedItem(name), defaultValue);
 	}
 	
-	/**
-	 * Parses the long.
-	 * @param n the named node map.
-	 * @param name the attribute name.
-	 * @return a parsed integer.
-	 */
-	protected static Long parseLong(NamedNodeMap n, String name)
+	protected Byte parseByte(Node node, Byte defaultValue)
 	{
-		return Long.valueOf(n.getNamedItem(name).getNodeValue());
+		return node != null ? Byte.valueOf(node.getNodeValue()) : defaultValue;
 	}
 	
-	/**
-	 * Parses the float.
-	 * @param n the named node map.
-	 * @param name the attribute name.
-	 * @return a parsed float.
-	 */
-	protected static float parseFloat(NamedNodeMap n, String name)
+	protected Byte parseByte(Node node)
 	{
-		return Float.parseFloat(n.getNamedItem(name).getNodeValue());
+		return parseByte(node, null);
 	}
 	
-	/**
-	 * Parses the double.
-	 * @param n the named node map.
-	 * @param name the attribute name.
-	 * @return a parsed double.
-	 */
-	protected static Double parseDouble(NamedNodeMap n, String name)
+	protected Byte parseByte(NamedNodeMap attrs, String name)
 	{
-		return Double.valueOf(n.getNamedItem(name).getNodeValue());
+		return parseByte(attrs.getNamedItem(name));
 	}
 	
-	/**
-	 * Parses the boolean.
-	 * @param n the named node map.
-	 * @param name the attribute name.
-	 * @return {@code true} if the attribute exists and it's value is {@code true}, {@code false} otherwise.
-	 */
-	protected static boolean parseBoolean(NamedNodeMap n, String name)
+	protected Byte parseByte(NamedNodeMap attrs, String name, Byte defaultValue)
 	{
-		final Node b = n.getNamedItem(name);
-		return (b != null) && Boolean.parseBoolean(b.getNodeValue());
+		return parseByte(attrs.getNamedItem(name), defaultValue);
 	}
 	
-	/**
-	 * @param n the named node map
-	 * @param name the attribute name
-	 * @return the node string value for the given node name and named node map if exist, otherwise an empty string
-	 */
-	protected static String parseString(NamedNodeMap n, String name)
+	protected Short parseShort(Node node, Short defaultValue)
+	{
+		return node != null ? Short.valueOf(node.getNodeValue()) : defaultValue;
+	}
+	
+	protected Short parseShort(Node node)
+	{
+		return parseShort(node, null);
+	}
+	
+	protected Short parseShort(NamedNodeMap attrs, String name)
+	{
+		return parseShort(attrs.getNamedItem(name));
+	}
+	
+	protected Short parseShort(NamedNodeMap attrs, String name, Short defaultValue)
+	{
+		return parseShort(attrs.getNamedItem(name), defaultValue);
+	}
+	
+	protected Integer parseInteger(Node node, Integer defaultValue)
+	{
+		return node != null ? Integer.valueOf(node.getNodeValue()) : defaultValue;
+	}
+	
+	protected Integer parseInteger(Node node)
+	{
+		return parseInteger(node, null);
+	}
+	
+	protected Integer parseInteger(NamedNodeMap attrs, String name)
+	{
+		return parseInteger(attrs.getNamedItem(name));
+	}
+	
+	protected Integer parseInteger(NamedNodeMap attrs, String name, Integer defaultValue)
+	{
+		return parseInteger(attrs.getNamedItem(name), defaultValue);
+	}
+	
+	protected Long parseLong(Node node, Long defaultValue)
+	{
+		return node != null ? Long.valueOf(node.getNodeValue()) : defaultValue;
+	}
+	
+	protected Long parseLong(Node node)
+	{
+		return parseLong(node, null);
+	}
+	
+	protected Long parseLong(NamedNodeMap attrs, String name)
+	{
+		return parseLong(attrs.getNamedItem(name));
+	}
+	
+	protected Long parseLong(NamedNodeMap attrs, String name, Long defaultValue)
+	{
+		return parseLong(attrs.getNamedItem(name), defaultValue);
+	}
+	
+	protected Float parseFloat(Node node, Float defaultValue)
+	{
+		return node != null ? Float.valueOf(node.getNodeValue()) : defaultValue;
+	}
+	
+	protected Float parseFloat(Node node)
+	{
+		return parseFloat(node, null);
+	}
+	
+	protected Float parseFloat(NamedNodeMap attrs, String name)
+	{
+		return parseFloat(attrs.getNamedItem(name));
+	}
+	
+	protected Float parseFloat(NamedNodeMap attrs, String name, Float defaultValue)
+	{
+		return parseFloat(attrs.getNamedItem(name), defaultValue);
+	}
+	
+	protected Double parseDouble(Node node, Double defaultValue)
+	{
+		return node != null ? Double.valueOf(node.getNodeValue()) : defaultValue;
+	}
+	
+	protected Double parseDouble(Node node)
+	{
+		return parseDouble(node, null);
+	}
+	
+	protected Double parseDouble(NamedNodeMap attrs, String name)
+	{
+		return parseDouble(attrs.getNamedItem(name));
+	}
+	
+	protected Double parseDouble(NamedNodeMap attrs, String name, Double defaultValue)
+	{
+		return parseDouble(attrs.getNamedItem(name), defaultValue);
+	}
+	
+	protected String parseString(Node node, String defaultValue)
+	{
+		return node != null ? node.getNodeValue() : defaultValue;
+	}
+	
+	protected String parseString(Node node)
+	{
+		return parseString(node, null);
+	}
+	
+	protected String parseString(NamedNodeMap attrs, String name)
+	{
+		return parseString(attrs.getNamedItem(name));
+	}
+	
+	protected String parseString(NamedNodeMap attrs, String name, String defaultValue)
+	{
+		return parseString(attrs.getNamedItem(name), defaultValue);
+	}
+	
+	protected <T extends Enum<T>> T parseEnum(Node node, Class<T> clazz, T defaultValue)
+	{
+		if (node == null)
+		{
+			return defaultValue;
+		}
+		
+		try
+		{
+			return Enum.valueOf(clazz, node.getNodeValue());
+		}
+		catch (IllegalArgumentException e)
+		{
+			_log.warning("[" + getCurrentFile().getName() + "] Invalid value specified for node: " + node.getNodeName() + " specified value: " + node.getNodeValue() + " should be enum value of \"" + clazz.getSimpleName() + "\" using default value: " + defaultValue);
+			return defaultValue;
+		}
+	}
+	
+	protected <T extends Enum<T>> T parseEnum(Node node, Class<T> clazz)
+	{
+		return parseEnum(node, clazz, null);
+	}
+	
+	protected <T extends Enum<T>> T parseEnum(NamedNodeMap attrs, Class<T> clazz, String name)
+	{
+		return parseEnum(attrs.getNamedItem(name), clazz);
+	}
+	
+	protected <T extends Enum<T>> T parseEnum(NamedNodeMap attrs, Class<T> clazz, String name, T defaultValue)
 	{
-		final Node b = n.getNamedItem(name);
-		return (b == null) ? "" : b.getNodeValue();
+		return parseEnum(attrs.getNamedItem(name), clazz, defaultValue);
 	}
 	
 	public void setCurrentFileFilter(FileFilter filter)

+ 10 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/MapRegionManager.java

@@ -85,9 +85,9 @@ public final class MapRegionManager extends DocumentParser
 						attrs = d.getAttributes();
 						name = attrs.getNamedItem("name").getNodeValue();
 						town = attrs.getNamedItem("town").getNodeValue();
-						locId = parseInt(attrs, "locId");
-						castle = parseInt(attrs, "castle");
-						bbs = parseInt(attrs, "bbs");
+						locId = parseInteger(attrs, "locId");
+						castle = parseInteger(attrs, "castle");
+						bbs = parseInteger(attrs, "bbs");
 						
 						L2MapRegion region = new L2MapRegion(name, town, locId, castle, bbs);
 						for (Node c = d.getFirstChild(); c != null; c = c.getNextSibling())
@@ -95,13 +95,13 @@ public final class MapRegionManager extends DocumentParser
 							attrs = c.getAttributes();
 							if ("respawnPoint".equalsIgnoreCase(c.getNodeName()))
 							{
-								int spawnX = parseInt(attrs, "X");
-								int spawnY = parseInt(attrs, "Y");
-								int spawnZ = parseInt(attrs, "Z");
+								int spawnX = parseInteger(attrs, "X");
+								int spawnY = parseInteger(attrs, "Y");
+								int spawnZ = parseInteger(attrs, "Z");
 								
-								boolean other = parseBoolean(attrs, "isOther");
-								boolean chaotic = parseBoolean(attrs, "isChaotic");
-								boolean banish = parseBoolean(attrs, "isBanish");
+								boolean other = parseBoolean(attrs, "isOther", false);
+								boolean chaotic = parseBoolean(attrs, "isChaotic", false);
+								boolean banish = parseBoolean(attrs, "isBanish", false);
 								
 								if (other)
 								{
@@ -122,7 +122,7 @@ public final class MapRegionManager extends DocumentParser
 							}
 							else if ("map".equalsIgnoreCase(c.getNodeName()))
 							{
-								region.addMap(parseInt(attrs, "X"), parseInt(attrs, "Y"));
+								region.addMap(parseInteger(attrs, "X"), parseInteger(attrs, "Y"));
 							}
 							else if ("banned".equalsIgnoreCase(c.getNodeName()))
 							{

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java

@@ -116,10 +116,10 @@ public final class WalkingManager extends DocumentParser
 					if (r.getNodeName().equals("point"))
 					{
 						NamedNodeMap attrs = r.getAttributes();
-						int x = parseInt(attrs, "X");
-						int y = parseInt(attrs, "Y");
-						int z = parseInt(attrs, "Z");
-						int delay = parseInt(attrs, "delay");
+						int x = parseInteger(attrs, "X");
+						int y = parseInteger(attrs, "Y");
+						int z = parseInteger(attrs, "Z");
+						int delay = parseInteger(attrs, "delay");
 						boolean run = parseBoolean(attrs, "run");
 						NpcStringId npcString = null;
 						String chatString = null;

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/ZoneManager.java

@@ -192,11 +192,11 @@ public final class ZoneManager extends DocumentParser
 							}
 						}
 						
-						minZ = parseInt(attrs, "minZ");
-						maxZ = parseInt(attrs, "maxZ");
+						minZ = parseInteger(attrs, "minZ");
+						maxZ = parseInteger(attrs, "maxZ");
 						
-						zoneType = attrs.getNamedItem("type").getNodeValue();
-						zoneShape = attrs.getNamedItem("shape").getNodeValue();
+						zoneType = parseString(attrs, "type");
+						zoneShape = parseString(attrs, "shape");
 						
 						// Get the zone shape from xml
 						L2ZoneForm zoneForm = null;
@@ -212,8 +212,8 @@ public final class ZoneManager extends DocumentParser
 								{
 									attrs = cd.getAttributes();
 									point = new int[2];
-									point[0] = parseInt(attrs, "X");
-									point[1] = parseInt(attrs, "Y");
+									point[0] = parseInteger(attrs, "X");
+									point[1] = parseInteger(attrs, "Y");
 									rs.add(point);
 								}
 							}