Browse Source

BETA: Item rework:
* Created new enums `CrystalType` and `MaterialType` and removed all static arrays related to them from `L2Item`
* Renamed `L2ActionType` to `ActionType`, `L2ArmorType` to `ArmorType`, `L2EtcItemType` to `EtcItemType`, `L2WeaponType` to `WeaponType`
Reviewed by: Nos, UnAfraid, Zoey76

Adry_85 11 năm trước cách đây
mục cha
commit
49e31eaddc
45 tập tin đã thay đổi với 443 bổ sung407 xóa
  1. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2CharacterAI.java
  2. 3 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemHPBonusData.java
  3. 6 46
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ItemTable.java
  4. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentBase.java
  5. 1 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/Hit.java
  6. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/ShortCuts.java
  7. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java
  8. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java
  9. 19 19
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  10. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java
  11. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/transform/TransformTemplate.java
  12. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionUsingItemType.java
  13. 10 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java
  14. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Armor.java
  15. 9 9
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2EtcItem.java
  16. 34 103
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Item.java
  17. 5 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2WarehouseItem.java
  18. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Weapon.java
  19. 15 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/enchant/AbstractEnchantItem.java
  20. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/enchant/EnchantScroll.java
  21. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/enchant/EnchantSupportItem.java
  22. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/instance/L2ItemInstance.java
  23. 53 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/ActionType.java
  24. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/ArmorType.java
  25. 86 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/CrystalType.java
  26. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/EtcItemType.java
  27. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/ItemType.java
  28. 31 28
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/MaterialType.java
  29. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/WeaponType.java
  30. 14 15
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/funcs/FuncEnchant.java
  31. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/stats/Formulas.java
  32. 23 22
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/AbstractRefinePacket.java
  33. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/MoveToLocationInAirShip.java
  34. 6 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestConfirmCancelItem.java
  35. 2 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestConfirmRefinerItem.java
  36. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestCrystallizeItem.java
  37. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestDropItem.java
  38. 3 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExRemoveItemAttribute.java
  39. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestMoveToLocationInVehicle.java
  40. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPreviewItem.java
  41. 6 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestRefineCancel.java
  42. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java
  43. 3 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowBaseAttributeCancelWindow.java
  44. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ShopPreviewList.java
  45. 16 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/SortedWareHouseWithdrawalList.java

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2CharacterAI.java

@@ -52,7 +52,7 @@ import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.interfaces.ILocational;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
@@ -1429,7 +1429,7 @@ public class L2CharacterAI extends AbstractAI
 			else
 			{
 				L2Weapon weapon = target.getActiveWeaponItem();
-				if ((weapon != null) && ((weapon.getItemType() == L2WeaponType.BOW) || (weapon.getItemType() == L2WeaponType.CROSSBOW)))
+				if ((weapon != null) && ((weapon.getItemType() == WeaponType.BOW) || (weapon.getItemType() == WeaponType.CROSSBOW)))
 				{
 					isArcher = true;
 				}

+ 3 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantItemHPBonusData.java

@@ -29,6 +29,7 @@ import org.w3c.dom.Node;
 import com.l2jserver.gameserver.engines.DocumentParser;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
 import com.l2jserver.gameserver.model.skills.funcs.FuncTemplate;
 import com.l2jserver.gameserver.model.skills.funcs.LambdaConst;
 import com.l2jserver.gameserver.model.stats.Stats;
@@ -85,7 +86,7 @@ public class EnchantItemHPBonusData extends DocumentParser
 			for (Integer itemId : armorIds)
 			{
 				item = it.getTemplate(itemId);
-				if ((item != null) && (item.getCrystalType() != L2Item.CRYSTAL_NONE))
+				if ((item != null) && (item.getCrystalType() != CrystalType.NONE))
 				{
 					switch (item.getBodyPart())
 					{
@@ -111,7 +112,7 @@ public class EnchantItemHPBonusData extends DocumentParser
 			for (Integer itemId : shieldIds)
 			{
 				item = it.getTemplate(itemId);
-				if ((item != null) && (item.getCrystalType() != L2Item.CRYSTAL_NONE))
+				if ((item != null) && (item.getCrystalType() != CrystalType.NONE))
 				{
 					switch (item.getBodyPart())
 					{

+ 6 - 46
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/ItemTable.java

@@ -48,8 +48,8 @@ import com.l2jserver.gameserver.model.items.L2EtcItem;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.scripting.scriptengine.events.ItemCreateEvent;
 import com.l2jserver.gameserver.scripting.scriptengine.listeners.player.NewItemListener;
 import com.l2jserver.gameserver.util.GMAudit;
@@ -64,11 +64,9 @@ public class ItemTable
 	
 	private static FastList<NewItemListener> newItemListeners = new FastList<NewItemListener>().shared();
 	
-	public static final Map<String, Integer> _materials = new FastMap<>();
-	public static final Map<String, Integer> _crystalTypes = new FastMap<>();
 	public static final Map<String, Integer> _slots = new FastMap<>();
-	public static final Map<String, L2WeaponType> _weaponTypes = new FastMap<>();
-	public static final Map<String, L2ArmorType> _armorTypes = new FastMap<>();
+	public static final Map<String, WeaponType> _weaponTypes = new FastMap<>();
+	public static final Map<String, ArmorType> _armorTypes = new FastMap<>();
 	
 	private L2Item[] _allTemplates;
 	private final Map<Integer, L2EtcItem> _etcItems;
@@ -77,52 +75,14 @@ public class ItemTable
 	
 	static
 	{
-		_materials.put("adamantaite", L2Item.MATERIAL_ADAMANTAITE);
-		_materials.put("blood_steel", L2Item.MATERIAL_BLOOD_STEEL);
-		_materials.put("bone", L2Item.MATERIAL_BONE);
-		_materials.put("bronze", L2Item.MATERIAL_BRONZE);
-		_materials.put("cloth", L2Item.MATERIAL_CLOTH);
-		_materials.put("chrysolite", L2Item.MATERIAL_CHRYSOLITE);
-		_materials.put("cobweb", L2Item.MATERIAL_COBWEB);
-		_materials.put("cotton", L2Item.MATERIAL_FINE_STEEL);
-		_materials.put("crystal", L2Item.MATERIAL_CRYSTAL);
-		_materials.put("damascus", L2Item.MATERIAL_DAMASCUS);
-		_materials.put("dyestuff", L2Item.MATERIAL_DYESTUFF);
-		_materials.put("fine_steel", L2Item.MATERIAL_FINE_STEEL);
-		_materials.put("fish", L2Item.MATERIAL_FISH);
-		_materials.put("gold", L2Item.MATERIAL_GOLD);
-		_materials.put("horn", L2Item.MATERIAL_HORN);
-		_materials.put("leather", L2Item.MATERIAL_LEATHER);
-		_materials.put("liquid", L2Item.MATERIAL_LIQUID);
-		_materials.put("mithril", L2Item.MATERIAL_MITHRIL);
-		_materials.put("oriharukon", L2Item.MATERIAL_ORIHARUKON);
-		_materials.put("paper", L2Item.MATERIAL_PAPER);
-		_materials.put("rune_xp", L2Item.MATERIAL_RUNE_XP);
-		_materials.put("rune_sp", L2Item.MATERIAL_RUNE_SP);
-		_materials.put("rune_remove_penalty", L2Item.MATERIAL_RUNE_PENALTY);
-		_materials.put("scale_of_dragon", L2Item.MATERIAL_SCALE_OF_DRAGON);
-		_materials.put("seed", L2Item.MATERIAL_SEED);
-		_materials.put("silver", L2Item.MATERIAL_SILVER);
-		_materials.put("steel", L2Item.MATERIAL_STEEL);
-		_materials.put("wood", L2Item.MATERIAL_WOOD);
-		
-		_crystalTypes.put("s84", L2Item.CRYSTAL_S84);
-		_crystalTypes.put("s80", L2Item.CRYSTAL_S80);
-		_crystalTypes.put("s", L2Item.CRYSTAL_S);
-		_crystalTypes.put("a", L2Item.CRYSTAL_A);
-		_crystalTypes.put("b", L2Item.CRYSTAL_B);
-		_crystalTypes.put("c", L2Item.CRYSTAL_C);
-		_crystalTypes.put("d", L2Item.CRYSTAL_D);
-		_crystalTypes.put("none", L2Item.CRYSTAL_NONE);
-		
 		// weapon types
-		for (L2WeaponType type : L2WeaponType.values())
+		for (WeaponType type : WeaponType.values())
 		{
 			_weaponTypes.put(type.getName(), type);
 		}
 		
 		// armor types
-		for (L2ArmorType type : L2ArmorType.values())
+		for (ArmorType type : ArmorType.values())
 		{
 			_armorTypes.put(type.getName(), type);
 		}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentBase.java

@@ -127,8 +127,8 @@ import com.l2jserver.gameserver.model.conditions.ConditionWithSkill;
 import com.l2jserver.gameserver.model.effects.AbstractEffect;
 import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
 import com.l2jserver.gameserver.model.items.L2Item;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.EffectScope;
 import com.l2jserver.gameserver.model.skills.Skill;
@@ -1088,7 +1088,7 @@ public abstract class DocumentBase
 					while (st.hasMoreTokens())
 					{
 						String item = st.nextToken().trim();
-						for (L2WeaponType wt : L2WeaponType.values())
+						for (WeaponType wt : WeaponType.values())
 						{
 							if (wt.getName().equals(item))
 							{
@@ -1096,7 +1096,7 @@ public abstract class DocumentBase
 								break;
 							}
 						}
-						for (L2ArmorType at : L2ArmorType.values())
+						for (ArmorType at : ArmorType.values())
 						{
 							if (at.getName().equals(item))
 							{

+ 1 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/Hit.java

@@ -18,6 +18,7 @@
  */
 package com.l2jserver.gameserver.model;
 
+
 /**
  * @author UnAfraid
  */

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/ShortCuts.java

@@ -31,7 +31,7 @@ import com.l2jserver.gameserver.enums.ShortcutType;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.interfaces.IRestorable;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
 import com.l2jserver.gameserver.network.serverpackets.ExAutoSoulShot;
 import com.l2jserver.gameserver.network.serverpackets.ShortCutInit;
 import com.l2jserver.gameserver.network.serverpackets.ShortCutRegister;
@@ -125,7 +125,7 @@ public class ShortCuts implements IRestorable
 		{
 			L2ItemInstance item = _owner.getInventory().getItemByObjectId(old.getId());
 			
-			if ((item != null) && (item.getItemType() == L2EtcItemType.SHOT))
+			if ((item != null) && (item.getItemType() == EtcItemType.SHOT))
 			{
 				if (_owner.removeAutoSoulShot(item.getId()))
 				{

+ 8 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java

@@ -99,7 +99,7 @@ import com.l2jserver.gameserver.model.itemcontainer.Inventory;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.options.OptionsSkillHolder;
 import com.l2jserver.gameserver.model.options.OptionsSkillType;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -860,7 +860,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 			L2Weapon wpn = getActiveWeaponItem();
 			if (!wpn.isAttackWeapon() && !isGM())
 			{
-				if (wpn.getItemType() == L2WeaponType.FISHINGROD)
+				if (wpn.getItemType() == WeaponType.FISHINGROD)
 				{
 					sendPacket(SystemMessageId.CANNOT_ATTACK_WITH_FISHING_POLE);
 				}
@@ -928,7 +928,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		// BOW and CROSSBOW checks
 		if ((weaponItem != null) && !isTransformed())
 		{
-			if (weaponItem.getItemType() == L2WeaponType.BOW)
+			if (weaponItem.getItemType() == WeaponType.BOW)
 			{
 				// Check for arrows and MP
 				if (isPlayer())
@@ -990,7 +990,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 					}
 				}
 			}
-			if (weaponItem.getItemType() == L2WeaponType.CROSSBOW)
+			if (weaponItem.getItemType() == WeaponType.CROSSBOW)
 			{
 				// Check for bolts
 				if (isPlayer())
@@ -1077,7 +1077,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		// the hit is calculated to happen halfway to the animation - might need further tuning e.g. in bow case
 		final int timeToHit = timeAtk / 2;
 		_attackEndTime = (GameTimeController.getInstance().getGameTicks() + (timeAtk / GameTimeController.MILLIS_IN_TICK)) - 1;
-		final int ssGrade = (weaponItem != null) ? weaponItem.getItemGradeSPlus() : 0;
+		final int ssGrade = (weaponItem != null) ? weaponItem.getItemGradeSPlus().getId() : 0;
 		// Create a Server->Client packet Attack
 		Attack attack = new Attack(this, target, wasSSCharged, ssGrade);
 		
@@ -4975,7 +4975,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		if (!miss && (damage > 0))
 		{
 			L2Weapon weapon = getActiveWeaponItem();
-			boolean isBow = ((weapon != null) && ((weapon.getItemType() == L2WeaponType.BOW) || (weapon.getItemType() == L2WeaponType.CROSSBOW)));
+			boolean isBow = ((weapon != null) && ((weapon.getItemType() == WeaponType.BOW) || (weapon.getItemType() == WeaponType.CROSSBOW)));
 			int reflectedDamage = 0;
 			
 			if (!isBow && !target.isInvul()) // Do not reflect if weapon is of type bow or target is invunlerable
@@ -6962,9 +6962,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	}
 	
 	/**
-	 * @return {@link L2WeaponType} of current character's weapon or basic weapon type.
+	 * @return {@link WeaponType} of current character's weapon or basic weapon type.
 	 */
-	public final L2WeaponType getAttackType()
+	public final WeaponType getAttackType()
 	{
 		final L2Weapon weapon = getActiveWeaponItem();
 		if (weapon != null)

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java

@@ -51,7 +51,7 @@ import com.l2jserver.gameserver.model.itemcontainer.PetInventory;
 import com.l2jserver.gameserver.model.items.L2EtcItem;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ActionType;
+import com.l2jserver.gameserver.model.items.type.ActionType;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameManager;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.skills.Skill;
@@ -1201,7 +1201,7 @@ public abstract class L2Summon extends L2Playable
 			{
 				if (magic)
 				{
-					if (item.getItem().getDefaultAction() == L2ActionType.summon_spiritshot)
+					if (item.getItem().getDefaultAction() == ActionType.SUMMON_SPIRITSHOT)
 					{
 						handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
 						if (handler != null)
@@ -1213,7 +1213,7 @@ public abstract class L2Summon extends L2Playable
 				
 				if (physical)
 				{
-					if (item.getItem().getDefaultAction() == L2ActionType.summon_soulshot)
+					if (item.getItem().getDefaultAction() == ActionType.SUMMON_SOULSHOT)
 					{
 						handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
 						if (handler != null)

+ 19 - 19
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -221,10 +221,10 @@ import com.l2jserver.gameserver.model.items.L2Henna;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ActionType;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.ActionType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.multisell.PreparedListContainer;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameManager;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameTask;
@@ -2293,9 +2293,9 @@ public final class L2PcInstance extends L2Playable
 		
 		for (L2ItemInstance item : getInventory().getItems())
 		{
-			if ((item != null) && item.isEquipped() && ((item.getItemType() != L2EtcItemType.ARROW) && (item.getItemType() != L2EtcItemType.BOLT)))
+			if ((item != null) && item.isEquipped() && ((item.getItemType() != EtcItemType.ARROW) && (item.getItemType() != EtcItemType.BOLT)))
 			{
-				crystaltype = item.getItem().getCrystalType();
+				crystaltype = item.getItem().getCrystalType().getId();
 				if (crystaltype > expertiseLevel)
 				{
 					if (item.isWeapon() && (crystaltype > weaponPenalty))
@@ -4783,7 +4783,7 @@ public final class L2PcInstance extends L2Playable
 		else
 		{
 			// if item is instance of L2ArmorType or L2WeaponType broadcast an "Attention" system message
-			if ((target.getItemType() instanceof L2ArmorType) || (target.getItemType() instanceof L2WeaponType))
+			if ((target.getItemType() instanceof ArmorType) || (target.getItemType() instanceof WeaponType))
 			{
 				if (target.getEnchantLevel() > 0)
 				{
@@ -4822,12 +4822,12 @@ public final class L2PcInstance extends L2Playable
 					final L2EtcItem etcItem = target.getEtcItem();
 					if (etcItem != null)
 					{
-						final L2EtcItemType itemType = etcItem.getItemType();
-						if ((weapon.getItemType() == L2WeaponType.BOW) && (itemType == L2EtcItemType.ARROW))
+						final EtcItemType itemType = etcItem.getItemType();
+						if ((weapon.getItemType() == WeaponType.BOW) && (itemType == EtcItemType.ARROW))
 						{
 							checkAndEquipArrows();
 						}
-						else if ((weapon.getItemType() == L2WeaponType.CROSSBOW) && (itemType == L2EtcItemType.BOLT))
+						else if ((weapon.getItemType() == WeaponType.CROSSBOW) && (itemType == EtcItemType.BOLT))
 						{
 							checkAndEquipBolts();
 						}
@@ -5147,14 +5147,14 @@ public final class L2PcInstance extends L2Playable
 		
 		if ((armor != null) && (legs != null))
 		{
-			if (((L2ArmorType) legs.getItemType() == L2ArmorType.HEAVY) && ((L2ArmorType) armor.getItemType() == L2ArmorType.HEAVY))
+			if (((ArmorType) legs.getItemType() == ArmorType.HEAVY) && ((ArmorType) armor.getItemType() == ArmorType.HEAVY))
 			{
 				return true;
 			}
 		}
 		if (armor != null)
 		{
-			if (((getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && ((L2ArmorType) armor.getItemType() == L2ArmorType.HEAVY)))
+			if (((getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && ((ArmorType) armor.getItemType() == ArmorType.HEAVY)))
 			{
 				return true;
 			}
@@ -5169,14 +5169,14 @@ public final class L2PcInstance extends L2Playable
 		
 		if ((armor != null) && (legs != null))
 		{
-			if (((L2ArmorType) legs.getItemType() == L2ArmorType.LIGHT) && ((L2ArmorType) armor.getItemType() == L2ArmorType.LIGHT))
+			if (((ArmorType) legs.getItemType() == ArmorType.LIGHT) && ((ArmorType) armor.getItemType() == ArmorType.LIGHT))
 			{
 				return true;
 			}
 		}
 		if (armor != null)
 		{
-			if (((getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && ((L2ArmorType) armor.getItemType() == L2ArmorType.LIGHT)))
+			if (((getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && ((ArmorType) armor.getItemType() == ArmorType.LIGHT)))
 			{
 				return true;
 			}
@@ -5191,14 +5191,14 @@ public final class L2PcInstance extends L2Playable
 		
 		if ((armor != null) && (legs != null))
 		{
-			if (((L2ArmorType) legs.getItemType() == L2ArmorType.MAGIC) && ((L2ArmorType) armor.getItemType() == L2ArmorType.MAGIC))
+			if (((ArmorType) legs.getItemType() == ArmorType.MAGIC) && ((ArmorType) armor.getItemType() == ArmorType.MAGIC))
 			{
 				return true;
 			}
 		}
 		if (armor != null)
 		{
-			if (((getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && ((L2ArmorType) armor.getItemType() == L2ArmorType.MAGIC)))
+			if (((getInventory().getPaperdollItem(Inventory.PAPERDOLL_CHEST).getItem().getBodyPart() == L2Item.SLOT_FULL_ARMOR) && ((ArmorType) armor.getItemType() == ArmorType.MAGIC)))
 			{
 				return true;
 			}
@@ -9556,7 +9556,7 @@ public final class L2PcInstance extends L2Playable
 			{
 				if (magic)
 				{
-					if (item.getItem().getDefaultAction() == L2ActionType.spiritshot)
+					if (item.getItem().getDefaultAction() == ActionType.SPIRITSHOT)
 					{
 						handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
 						if (handler != null)
@@ -9568,7 +9568,7 @@ public final class L2PcInstance extends L2Playable
 				
 				if (physical)
 				{
-					if (item.getItem().getDefaultAction() == L2ActionType.soulshot)
+					if (item.getItem().getDefaultAction() == ActionType.SOULSHOT)
 					{
 						handler = ItemHandler.getInstance().getHandler(item.getEtcItem());
 						if (handler != null)
@@ -9594,7 +9594,7 @@ public final class L2PcInstance extends L2Playable
 	{
 		for (int itemId : _activeSoulShots)
 		{
-			if (ItemTable.getInstance().getTemplate(itemId).getCrystalType() == crystalType)
+			if (ItemTable.getInstance().getTemplate(itemId).getCrystalType().getId() == crystalType)
 			{
 				disableAutoShot(itemId);
 			}

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java

@@ -23,7 +23,7 @@ import java.util.Collections;
 import java.util.Map;
 
 import com.l2jserver.gameserver.model.StatsSet;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.MoveType;
 
@@ -53,7 +53,7 @@ public class L2CharTemplate
 	private int _baseMAtkSpd;
 	private int _baseAttackRange;
 	private int _randomDamage;
-	private L2WeaponType _baseAttackType;
+	private WeaponType _baseAttackType;
 	private int _baseShldDef;
 	private int _baseShldRate;
 	private int _baseCritRate;
@@ -116,7 +116,7 @@ public class L2CharTemplate
 		_baseShldDef = set.getInt("baseShldDef", 0);
 		_baseAttackRange = set.getInt("baseAtkRange", 40);
 		_randomDamage = set.getInt("baseRndDam", 0);
-		_baseAttackType = L2WeaponType.findByName(set.getString("baseAtkType", "Fist"));
+		_baseAttackType = WeaponType.findByName(set.getString("baseAtkType", "Fist"));
 		_baseShldRate = set.getInt("baseShldRate", 0);
 		_baseCritRate = set.getInt("baseCritRate", 4);
 		_baseMCritRate = set.getInt("baseMCritRate", 0);
@@ -590,7 +590,7 @@ public class L2CharTemplate
 	/**
 	 * @return the base attack type (Sword, Fist, Blunt, etc..)
 	 */
-	public L2WeaponType getBaseAttackType()
+	public WeaponType getBaseAttackType()
 	{
 		return _baseAttackType;
 	}
@@ -599,7 +599,7 @@ public class L2CharTemplate
 	 * Sets base attack type.
 	 * @param type
 	 */
-	public void setBaseAttackType(L2WeaponType type)
+	public void setBaseAttackType(WeaponType type)
 	{
 		_baseAttackType = type;
 	}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/transform/TransformTemplate.java

@@ -30,7 +30,7 @@ import com.l2jserver.gameserver.model.holders.AdditionalItemHolder;
 import com.l2jserver.gameserver.model.holders.AdditionalSkillHolder;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.stats.MoveType;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.serverpackets.ExBasicActionList;
@@ -42,7 +42,7 @@ public final class TransformTemplate
 {
 	private final double _collisionRadius;
 	private final double _collisionHeight;
-	private final L2WeaponType _baseAttackType;
+	private final WeaponType _baseAttackType;
 	private final int _baseAttackRange;
 	private final double _baseRandomDamage;
 	private List<SkillHolder> _skills;
@@ -59,7 +59,7 @@ public final class TransformTemplate
 	{
 		_collisionRadius = set.getDouble("radius", 0);
 		_collisionHeight = set.getDouble("height", 0);
-		_baseAttackType = L2WeaponType.findByName(set.getString("attackType", "FIST"));
+		_baseAttackType = WeaponType.findByName(set.getString("attackType", "FIST"));
 		_baseAttackRange = set.getInt("range", 40);
 		_baseRandomDamage = set.getDouble("randomDamage", 0);
 		
@@ -160,7 +160,7 @@ public final class TransformTemplate
 		return _collisionHeight;
 	}
 	
-	public L2WeaponType getBaseAttackType()
+	public WeaponType getBaseAttackType()
 	{
 		return _baseAttackType;
 	}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionUsingItemType.java

@@ -21,7 +21,7 @@ package com.l2jserver.gameserver.model.conditions;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
 import com.l2jserver.gameserver.model.stats.Env;
 
 /**
@@ -40,7 +40,7 @@ public final class ConditionUsingItemType extends Condition
 	public ConditionUsingItemType(int mask)
 	{
 		_mask = mask;
-		_armor = (_mask & (L2ArmorType.MAGIC.mask() | L2ArmorType.LIGHT.mask() | L2ArmorType.HEAVY.mask())) != 0;
+		_armor = (_mask & (ArmorType.MAGIC.mask() | ArmorType.LIGHT.mask() | ArmorType.HEAVY.mask())) != 0;
 	}
 	
 	@Override

+ 10 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java

@@ -41,8 +41,8 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.serverpackets.SkillCoolTime;
@@ -182,7 +182,7 @@ public abstract class Inventory extends ItemContainer
 				return;
 			}
 			
-			if (item.getItemType() == L2WeaponType.BOW)
+			if (item.getItemType() == WeaponType.BOW)
 			{
 				L2ItemInstance arrow = inventory.getPaperdollItem(PAPERDOLL_LHAND);
 				
@@ -191,7 +191,7 @@ public abstract class Inventory extends ItemContainer
 					inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
 				}
 			}
-			else if (item.getItemType() == L2WeaponType.CROSSBOW)
+			else if (item.getItemType() == WeaponType.CROSSBOW)
 			{
 				L2ItemInstance bolts = inventory.getPaperdollItem(PAPERDOLL_LHAND);
 				
@@ -200,7 +200,7 @@ public abstract class Inventory extends ItemContainer
 					inventory.setPaperdollItem(PAPERDOLL_LHAND, null);
 				}
 			}
-			else if (item.getItemType() == L2WeaponType.FISHINGROD)
+			else if (item.getItemType() == WeaponType.FISHINGROD)
 			{
 				L2ItemInstance lure = inventory.getPaperdollItem(PAPERDOLL_LHAND);
 				
@@ -219,7 +219,7 @@ public abstract class Inventory extends ItemContainer
 				return;
 			}
 			
-			if (item.getItemType() == L2WeaponType.BOW)
+			if (item.getItemType() == WeaponType.BOW)
 			{
 				L2ItemInstance arrow = inventory.findArrowForBow(item.getItem());
 				
@@ -228,7 +228,7 @@ public abstract class Inventory extends ItemContainer
 					inventory.setPaperdollItem(PAPERDOLL_LHAND, arrow);
 				}
 			}
-			else if (item.getItemType() == L2WeaponType.CROSSBOW)
+			else if (item.getItemType() == WeaponType.CROSSBOW)
 			{
 				L2ItemInstance bolts = inventory.findBoltForCrossBow(item.getItem());
 				
@@ -1424,7 +1424,7 @@ public abstract class Inventory extends ItemContainer
 			case L2Item.SLOT_L_HAND:
 			{
 				L2ItemInstance rh = getPaperdollItem(PAPERDOLL_RHAND);
-				if ((rh != null) && (rh.getItem().getBodyPart() == L2Item.SLOT_LR_HAND) && !(((rh.getItemType() == L2WeaponType.BOW) && (item.getItemType() == L2EtcItemType.ARROW)) || ((rh.getItemType() == L2WeaponType.CROSSBOW) && (item.getItemType() == L2EtcItemType.BOLT)) || ((rh.getItemType() == L2WeaponType.FISHINGROD) && (item.getItemType() == L2EtcItemType.LURE))))
+				if ((rh != null) && (rh.getItem().getBodyPart() == L2Item.SLOT_LR_HAND) && !(((rh.getItemType() == WeaponType.BOW) && (item.getItemType() == EtcItemType.ARROW)) || ((rh.getItemType() == WeaponType.CROSSBOW) && (item.getItemType() == EtcItemType.BOLT)) || ((rh.getItemType() == WeaponType.FISHINGROD) && (item.getItemType() == EtcItemType.LURE))))
 				{
 					setPaperdollItem(PAPERDOLL_RHAND, null);
 				}
@@ -1612,7 +1612,7 @@ public abstract class Inventory extends ItemContainer
 		
 		for (L2ItemInstance item : getItems())
 		{
-			if (item.isEtcItem() && (item.getItem().getItemGradeSPlus() == bow.getItemGradeSPlus()) && (item.getEtcItem().getItemType() == L2EtcItemType.ARROW))
+			if (item.isEtcItem() && (item.getItem().getItemGradeSPlus() == bow.getItemGradeSPlus()) && (item.getEtcItem().getItemType() == EtcItemType.ARROW))
 			{
 				arrow = item;
 				break;
@@ -1634,7 +1634,7 @@ public abstract class Inventory extends ItemContainer
 		
 		for (L2ItemInstance item : getItems())
 		{
-			if (item.isEtcItem() && (item.getItem().getItemGradeSPlus() == crossbow.getItemGradeSPlus()) && (item.getEtcItem().getItemType() == L2EtcItemType.BOLT))
+			if (item.isEtcItem() && (item.getItem().getItemGradeSPlus() == crossbow.getItemGradeSPlus()) && (item.getEtcItem().getItemType() == EtcItemType.BOLT))
 			{
 				bolt = item;
 				break;

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Armor.java

@@ -20,7 +20,7 @@ package com.l2jserver.gameserver.model.items;
 
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.util.StringUtil;
 
@@ -33,7 +33,7 @@ public final class L2Armor extends L2Item
 	 * Skill that activates when armor is enchanted +4.
 	 */
 	private SkillHolder _enchant4Skill = null;
-	private L2ArmorType _type;
+	private ArmorType _type;
 	
 	/**
 	 * Constructor for Armor.
@@ -42,7 +42,7 @@ public final class L2Armor extends L2Item
 	public L2Armor(StatsSet set)
 	{
 		super(set);
-		_type = L2ArmorType.valueOf(set.getString("armor_type", "none").toUpperCase());
+		_type = ArmorType.valueOf(set.getString("armor_type", "none").toUpperCase());
 		
 		int _bodyPart = getBodyPart();
 		if ((_bodyPart == L2Item.SLOT_NECK) || ((_bodyPart & L2Item.SLOT_L_EAR) != 0) || ((_bodyPart & L2Item.SLOT_L_FINGER) != 0) || ((_bodyPart & L2Item.SLOT_R_BRACELET) != 0) || ((_bodyPart & L2Item.SLOT_L_BRACELET) != 0))
@@ -52,9 +52,9 @@ public final class L2Armor extends L2Item
 		}
 		else
 		{
-			if ((_type == L2ArmorType.NONE) && (getBodyPart() == L2Item.SLOT_L_HAND))
+			if ((_type == ArmorType.NONE) && (getBodyPart() == L2Item.SLOT_L_HAND))
 			{
-				_type = L2ArmorType.SHIELD;
+				_type = ArmorType.SHIELD;
 			}
 			_type1 = L2Item.TYPE1_SHIELD_ARMOR;
 			_type2 = L2Item.TYPE2_SHIELD_ARMOR;
@@ -91,7 +91,7 @@ public final class L2Armor extends L2Item
 	 * @return the type of the armor.
 	 */
 	@Override
-	public L2ArmorType getItemType()
+	public ArmorType getItemType()
 	{
 		return _type;
 	}

+ 9 - 9
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2EtcItem.java

@@ -24,7 +24,7 @@ import java.util.List;
 import com.l2jserver.gameserver.model.L2ExtractableProduct;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
 import com.l2jserver.util.StringUtil;
 
 /**
@@ -33,7 +33,7 @@ import com.l2jserver.util.StringUtil;
 public final class L2EtcItem extends L2Item
 {
 	private String _handler;
-	private L2EtcItemType _type;
+	private EtcItemType _type;
 	private final boolean _isBlessed;
 	private final List<L2ExtractableProduct> _extractableItems;
 	
@@ -44,17 +44,17 @@ public final class L2EtcItem extends L2Item
 	public L2EtcItem(StatsSet set)
 	{
 		super(set);
-		_type = L2EtcItemType.valueOf(set.getString("etcitem_type", "none").toUpperCase());
+		_type = EtcItemType.valueOf(set.getString("etcitem_type", "none").toUpperCase());
 		
 		// l2j custom - L2EtcItemType.SHOT
 		switch (getDefaultAction())
 		{
-			case soulshot:
-			case summon_soulshot:
-			case summon_spiritshot:
-			case spiritshot:
+			case SOULSHOT:
+			case SUMMON_SOULSHOT:
+			case SUMMON_SPIRITSHOT:
+			case SPIRITSHOT:
 			{
-				_type = L2EtcItemType.SHOT;
+				_type = EtcItemType.SHOT;
 				break;
 			}
 		}
@@ -123,7 +123,7 @@ public final class L2EtcItem extends L2Item
 	 * @return the type of Etc Item.
 	 */
 	@Override
-	public L2EtcItemType getItemType()
+	public EtcItemType getItemType()
 	{
 		return _type;
 	}

+ 34 - 103
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Item.java

@@ -38,9 +38,11 @@ import com.l2jserver.gameserver.model.effects.AbstractEffect;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ActionType;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
-import com.l2jserver.gameserver.model.items.type.L2ItemType;
+import com.l2jserver.gameserver.model.items.type.ActionType;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.ItemType;
+import com.l2jserver.gameserver.model.items.type.MaterialType;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.Skill;
@@ -110,85 +112,14 @@ public abstract class L2Item implements IIdentifiable
 	
 	public static final int SLOT_MULTI_ALLWEAPON = SLOT_LR_HAND | SLOT_R_HAND;
 	
-	public static final int MATERIAL_STEEL = 0x00; // ??
-	public static final int MATERIAL_FINE_STEEL = 0x01; // ??
-	public static final int MATERIAL_BLOOD_STEEL = 0x02; // ??
-	public static final int MATERIAL_BRONZE = 0x03; // ??
-	public static final int MATERIAL_SILVER = 0x04; // ??
-	public static final int MATERIAL_GOLD = 0x05; // ??
-	public static final int MATERIAL_MITHRIL = 0x06; // ??
-	public static final int MATERIAL_ORIHARUKON = 0x07; // ??
-	public static final int MATERIAL_PAPER = 0x08; // ??
-	public static final int MATERIAL_WOOD = 0x09; // ??
-	public static final int MATERIAL_CLOTH = 0x0a; // ??
-	public static final int MATERIAL_LEATHER = 0x0b; // ??
-	public static final int MATERIAL_BONE = 0x0c; // ??
-	public static final int MATERIAL_HORN = 0x0d; // ??
-	public static final int MATERIAL_DAMASCUS = 0x0e; // ??
-	public static final int MATERIAL_ADAMANTAITE = 0x0f; // ??
-	public static final int MATERIAL_CHRYSOLITE = 0x10; // ??
-	public static final int MATERIAL_CRYSTAL = 0x11; // ??
-	public static final int MATERIAL_LIQUID = 0x12; // ??
-	public static final int MATERIAL_SCALE_OF_DRAGON = 0x13; // ??
-	public static final int MATERIAL_DYESTUFF = 0x14; // ??
-	public static final int MATERIAL_COBWEB = 0x15; // ??
-	public static final int MATERIAL_SEED = 0x16; // ??
-	public static final int MATERIAL_FISH = 0x17; // ??
-	public static final int MATERIAL_RUNE_XP = 0x18; // ??
-	public static final int MATERIAL_RUNE_SP = 0x19; // ??
-	public static final int MATERIAL_RUNE_PENALTY = 0x20; // ??
-	
-	public static final int CRYSTAL_NONE = 0x00; // ??
-	public static final int CRYSTAL_D = 0x01; // ??
-	public static final int CRYSTAL_C = 0x02; // ??
-	public static final int CRYSTAL_B = 0x03; // ??
-	public static final int CRYSTAL_A = 0x04; // ??
-	public static final int CRYSTAL_S = 0x05; // ??
-	public static final int CRYSTAL_S80 = 0x06; // ??
-	public static final int CRYSTAL_S84 = 0x07; // ??
-	
-	private static final int[] CRYSTAL_ITEM_ID =
-	{
-		0,
-		1458,
-		1459,
-		1460,
-		1461,
-		1462,
-		1462,
-		1462
-	};
-	private static final int[] CRYSTAL_ENCHANT_BONUS_ARMOR =
-	{
-		0,
-		11,
-		6,
-		11,
-		19,
-		25,
-		25,
-		25
-	};
-	private static final int[] CRYSTAL_ENCHANT_BONUS_WEAPON =
-	{
-		0,
-		90,
-		45,
-		67,
-		144,
-		250,
-		250,
-		250
-	};
-	
 	private final int _itemId;
 	private final int _displayId;
 	private final String _name;
 	private final String _icon;
 	private final int _weight;
 	private final boolean _stackable;
-	private final int _materialType;
-	private final int _crystalType; // default to none-grade
+	private final MaterialType _materialType;
+	private final CrystalType _crystalType;
 	private final int _equipReuseDelay;
 	private final int _duration;
 	private final int _time;
@@ -213,7 +144,7 @@ public abstract class L2Item implements IIdentifiable
 	private final boolean _immediate_effect;
 	private final boolean _ex_immediate_effect;
 	private final int _defaultEnchantLevel;
-	private final L2ActionType _defaultAction;
+	private final ActionType _defaultAction;
 	
 	protected int _type1; // needed for item list (inventory)
 	protected int _type2; // different lists for armor, weapon, etc
@@ -241,14 +172,14 @@ public abstract class L2Item implements IIdentifiable
 		_name = set.getString("name");
 		_icon = set.getString("icon", null);
 		_weight = set.getInt("weight", 0);
-		_materialType = ItemTable._materials.get(set.getString("material", "steel")); // default is steel, yeah and what?
+		_materialType = set.getEnum("material", MaterialType.class, MaterialType.STEEL);
 		_equipReuseDelay = set.getInt("equip_reuse_delay", 0) * 1000;
 		_duration = set.getInt("duration", -1);
 		_time = set.getInt("time", -1);
 		_autoDestroyTime = set.getInt("auto_destroy_time", -1) * 1000;
 		_bodyPart = ItemTable._slots.get(set.getString("bodypart", "none"));
 		_referencePrice = set.getInt("price", 0);
-		_crystalType = ItemTable._crystalTypes.get(set.getString("crystal_type", "none")); // default to none-grade
+		_crystalType = set.getEnum("crystal_type", CrystalType.class, CrystalType.NONE);
 		_crystalCount = set.getInt("crystal_count", 0);
 		
 		_stackable = set.getBoolean("is_stackable", false);
@@ -267,7 +198,7 @@ public abstract class L2Item implements IIdentifiable
 		_immediate_effect = set.getBoolean("immediate_effect", false);
 		_ex_immediate_effect = set.getBoolean("ex_immediate_effect", false);
 		
-		_defaultAction = set.getEnum("default_action", L2ActionType.class, L2ActionType.none);
+		_defaultAction = set.getEnum("default_action", ActionType.class, ActionType.NONE);
 		_useSkillDisTime = set.getInt("useSkillDisTime", 0);
 		_defaultEnchantLevel = set.getInt("enchanted", 0);
 		_reuseDelay = set.getInt("reuse_delay", 0);
@@ -352,7 +283,7 @@ public abstract class L2Item implements IIdentifiable
 	 * Returns the itemType.
 	 * @return Enum
 	 */
-	public abstract L2ItemType getItemType();
+	public abstract ItemType getItemType();
 	
 	/**
 	 * Verifies if the item is a magic weapon.
@@ -420,9 +351,9 @@ public abstract class L2Item implements IIdentifiable
 	
 	/**
 	 * Return the type of material of the item
-	 * @return int
+	 * @return MaterialType
 	 */
-	public final int getMaterialType()
+	public final MaterialType getMaterialType()
 	{
 		return _materialType;
 	}
@@ -451,25 +382,25 @@ public abstract class L2Item implements IIdentifiable
 	 */
 	public final boolean isCrystallizable()
 	{
-		return (_crystalType != L2Item.CRYSTAL_NONE) && (_crystalCount > 0);
+		return (_crystalType != CrystalType.NONE) && (_crystalCount > 0);
 	}
 	
 	/**
 	 * Return the type of crystal if item is crystallizable
-	 * @return int
+	 * @return CrystalType
 	 */
-	public final int getCrystalType()
+	public final CrystalType getCrystalType()
 	{
 		return _crystalType;
 	}
 	
 	/**
-	 * Return the type of crystal if item is crystallizable
+	 * Return the ID of crystal if item is crystallizable
 	 * @return int
 	 */
 	public final int getCrystalItemId()
 	{
-		return CRYSTAL_ITEM_ID[_crystalType];
+		return _crystalType.getCrystalId();
 	}
 	
 	/**
@@ -477,9 +408,9 @@ public abstract class L2Item implements IIdentifiable
 	 * <BR>
 	 * <U><I>Concept :</I></U><BR>
 	 * In fact, this function returns the type of crystal of the item.
-	 * @return int
+	 * @return CrystalType
 	 */
-	public final int getItemGrade()
+	public final CrystalType getItemGrade()
 	{
 		return getCrystalType();
 	}
@@ -488,13 +419,13 @@ public abstract class L2Item implements IIdentifiable
 	 * For grades S80 and S84 return S
 	 * @return the grade of the item.
 	 */
-	public final int getItemGradeSPlus()
+	public final CrystalType getItemGradeSPlus()
 	{
 		switch (getItemGrade())
 		{
-			case CRYSTAL_S80:
-			case CRYSTAL_S84:
-				return CRYSTAL_S;
+			case S80:
+			case S84:
+				return CrystalType.S;
 			default:
 				return getItemGrade();
 		}
@@ -520,9 +451,9 @@ public abstract class L2Item implements IIdentifiable
 			{
 				case TYPE2_SHIELD_ARMOR:
 				case TYPE2_ACCESSORY:
-					return _crystalCount + (CRYSTAL_ENCHANT_BONUS_ARMOR[getCrystalType()] * ((3 * enchantLevel) - 6));
+					return _crystalCount + (getCrystalType().getCrystalEnchantBonusArmor() * ((3 * enchantLevel) - 6));
 				case TYPE2_WEAPON:
-					return _crystalCount + (CRYSTAL_ENCHANT_BONUS_WEAPON[getCrystalType()] * ((2 * enchantLevel) - 3));
+					return _crystalCount + (getCrystalType().getCrystalEnchantBonusWeapon() * ((2 * enchantLevel) - 3));
 				default:
 					return _crystalCount;
 			}
@@ -533,9 +464,9 @@ public abstract class L2Item implements IIdentifiable
 			{
 				case TYPE2_SHIELD_ARMOR:
 				case TYPE2_ACCESSORY:
-					return _crystalCount + (CRYSTAL_ENCHANT_BONUS_ARMOR[getCrystalType()] * enchantLevel);
+					return _crystalCount + (getCrystalType().getCrystalEnchantBonusArmor() * enchantLevel);
 				case TYPE2_WEAPON:
-					return _crystalCount + (CRYSTAL_ENCHANT_BONUS_WEAPON[getCrystalType()] * enchantLevel);
+					return _crystalCount + (getCrystalType().getCrystalEnchantBonusWeapon() * enchantLevel);
 				default:
 					return _crystalCount;
 			}
@@ -632,7 +563,7 @@ public abstract class L2Item implements IIdentifiable
 	 */
 	public boolean isEquipable()
 	{
-		return (getBodyPart() != 0) && !(getItemType() instanceof L2EtcItemType);
+		return (getBodyPart() != 0) && !(getItemType() instanceof EtcItemType);
 	}
 	
 	/**
@@ -729,12 +660,12 @@ public abstract class L2Item implements IIdentifiable
 	
 	public boolean isPotion()
 	{
-		return (getItemType() == L2EtcItemType.POTION);
+		return (getItemType() == EtcItemType.POTION);
 	}
 	
 	public boolean isElixir()
 	{
-		return (getItemType() == L2EtcItemType.ELIXIR);
+		return (getItemType() == EtcItemType.ELIXIR);
 	}
 	
 	/**
@@ -1017,7 +948,7 @@ public abstract class L2Item implements IIdentifiable
 	/**
 	 * @return the _default_action
 	 */
-	public L2ActionType getDefaultAction()
+	public ActionType getDefaultAction()
 	{
 		return _defaultAction;
 	}
@@ -1076,7 +1007,7 @@ public abstract class L2Item implements IIdentifiable
 	
 	public boolean isPetItem()
 	{
-		return getItemType() == L2EtcItemType.PET_COLLAR;
+		return getItemType() == EtcItemType.PET_COLLAR;
 	}
 	
 	public Skill getEnchant4Skill()

+ 5 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2WarehouseItem.java

@@ -19,7 +19,8 @@
 package com.l2jserver.gameserver.model.items;
 
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ItemType;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
+import com.l2jserver.gameserver.model.items.type.ItemType;
 
 /**
  * This class contains L2ItemInstance<BR>
@@ -39,7 +40,7 @@ public class L2WarehouseItem
 	private final int _owner;
 	private final int _locationSlot;
 	private final int _enchant;
-	private final int _grade;
+	private final CrystalType _grade;
 	private boolean _isAugmented;
 	private int _augmentationId;
 	private final int _customType1;
@@ -154,7 +155,7 @@ public class L2WarehouseItem
 	/**
 	 * @return the second type.
 	 */
-	public final L2ItemType getItemType()
+	public final ItemType getItemType()
 	{
 		return _item.getItemType();
 	}
@@ -186,7 +187,7 @@ public class L2WarehouseItem
 	/**
 	 * @return the item grade
 	 */
-	public final int getItemGrade()
+	public final CrystalType getItemGrade()
 	{
 		return _grade;
 	}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Weapon.java

@@ -29,7 +29,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.conditions.Condition;
 import com.l2jserver.gameserver.model.conditions.ConditionGameChance;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Env;
@@ -42,7 +42,7 @@ import com.l2jserver.util.StringUtil;
  */
 public final class L2Weapon extends L2Item
 {
-	private final L2WeaponType _type;
+	private final WeaponType _type;
 	private final boolean _isMagicWeapon;
 	private final int _rndDam;
 	private final int _soulShotCount;
@@ -79,7 +79,7 @@ public final class L2Weapon extends L2Item
 	public L2Weapon(StatsSet set)
 	{
 		super(set);
-		_type = L2WeaponType.valueOf(set.getString("weapon_type", "none").toUpperCase());
+		_type = WeaponType.valueOf(set.getString("weapon_type", "none").toUpperCase());
 		_type1 = L2Item.TYPE1_WEAPON_RING_EARRING_NECKLACE;
 		_type2 = L2Item.TYPE2_WEAPON;
 		_isMagicWeapon = set.getBoolean("is_magic_weapon", false);
@@ -196,7 +196,7 @@ public final class L2Weapon extends L2Item
 	 * @return the type of Weapon
 	 */
 	@Override
-	public L2WeaponType getItemType()
+	public WeaponType getItemType()
 	{
 		return _type;
 	}

+ 15 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/enchant/AbstractEnchantItem.java

@@ -24,8 +24,9 @@ import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
-import com.l2jserver.gameserver.model.items.type.L2ItemType;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.ItemType;
 import com.l2jserver.gameserver.util.Util;
 
 /**
@@ -35,20 +36,20 @@ public abstract class AbstractEnchantItem
 {
 	protected static final Logger _log = Logger.getLogger(AbstractEnchantItem.class.getName());
 	
-	private static final L2ItemType[] ENCHANT_TYPES = new L2ItemType[]
+	private static final ItemType[] ENCHANT_TYPES = new ItemType[]
 	{
-		L2EtcItemType.ANCIENT_CRYSTAL_ENCHANT_AM,
-		L2EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP,
-		L2EtcItemType.BLESS_SCRL_ENCHANT_AM,
-		L2EtcItemType.BLESS_SCRL_ENCHANT_WP,
-		L2EtcItemType.SCRL_ENCHANT_AM,
-		L2EtcItemType.SCRL_ENCHANT_WP,
-		L2EtcItemType.SCRL_INC_ENCHANT_PROP_AM,
-		L2EtcItemType.SCRL_INC_ENCHANT_PROP_WP,
+		EtcItemType.ANCIENT_CRYSTAL_ENCHANT_AM,
+		EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP,
+		EtcItemType.BLESS_SCRL_ENCHANT_AM,
+		EtcItemType.BLESS_SCRL_ENCHANT_WP,
+		EtcItemType.SCRL_ENCHANT_AM,
+		EtcItemType.SCRL_ENCHANT_WP,
+		EtcItemType.SCRL_INC_ENCHANT_PROP_AM,
+		EtcItemType.SCRL_INC_ENCHANT_PROP_WP,
 	};
 	
 	private final int _id;
-	private final int _grade;
+	private final CrystalType _grade;
 	private final int _maxEnchantLevel;
 	private final double _bonusRate;
 	
@@ -63,7 +64,7 @@ public abstract class AbstractEnchantItem
 		{
 			throw new IllegalAccessError();
 		}
-		_grade = ItemTable._crystalTypes.get(set.getString("targetGrade", "none"));
+		_grade = set.getEnum("targetGrade", CrystalType.class, CrystalType.NONE);
 		_maxEnchantLevel = set.getInt("maxEnchant", 65535);
 		_bonusRate = set.getDouble("bonusRate", 0);
 	}
@@ -95,7 +96,7 @@ public abstract class AbstractEnchantItem
 	/**
 	 * @return grade of the item/scroll.
 	 */
-	public final int getGrade()
+	public final CrystalType getGrade()
 	{
 		return _grade;
 	}

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/enchant/EnchantScroll.java

@@ -26,8 +26,8 @@ import com.l2jserver.gameserver.datatables.EnchantItemGroupsData;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
-import com.l2jserver.gameserver.model.items.type.L2ItemType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.ItemType;
 import com.l2jserver.gameserver.network.Debug;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
@@ -48,10 +48,10 @@ public final class EnchantScroll extends AbstractEnchantItem
 		super(set);
 		_scrollGroupId = set.getInt("scrollGroupId", 0);
 		
-		final L2ItemType type = getItem().getItemType();
-		_isWeapon = (type == L2EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP) || (type == L2EtcItemType.BLESS_SCRL_ENCHANT_WP) || (type == L2EtcItemType.SCRL_ENCHANT_WP);
-		_isBlessed = (type == L2EtcItemType.BLESS_SCRL_ENCHANT_AM) || (type == L2EtcItemType.BLESS_SCRL_ENCHANT_WP);
-		_isSafe = (type == L2EtcItemType.ANCIENT_CRYSTAL_ENCHANT_AM) || (type == L2EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP);
+		final ItemType type = getItem().getItemType();
+		_isWeapon = (type == EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP) || (type == EtcItemType.BLESS_SCRL_ENCHANT_WP) || (type == EtcItemType.SCRL_ENCHANT_WP);
+		_isBlessed = (type == EtcItemType.BLESS_SCRL_ENCHANT_AM) || (type == EtcItemType.BLESS_SCRL_ENCHANT_WP);
+		_isSafe = (type == EtcItemType.ANCIENT_CRYSTAL_ENCHANT_AM) || (type == EtcItemType.ANCIENT_CRYSTAL_ENCHANT_WP);
 	}
 	
 	@Override

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/enchant/EnchantSupportItem.java

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.model.items.enchant;
 
 import com.l2jserver.gameserver.model.StatsSet;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
 
 /**
  * @author UnAfraid
@@ -31,7 +31,7 @@ public final class EnchantSupportItem extends AbstractEnchantItem
 	public EnchantSupportItem(StatsSet set)
 	{
 		super(set);
-		_isWeapon = getItem().getItemType() == L2EtcItemType.SCRL_INC_ENCHANT_PROP_WP;
+		_isWeapon = getItem().getItemType() == EtcItemType.SCRL_INC_ENCHANT_PROP_WP;
 	}
 	
 	@Override

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/instance/L2ItemInstance.java

@@ -66,8 +66,8 @@ import com.l2jserver.gameserver.model.items.L2Armor;
 import com.l2jserver.gameserver.model.items.L2EtcItem;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
-import com.l2jserver.gameserver.model.items.type.L2ItemType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.ItemType;
 import com.l2jserver.gameserver.model.options.EnchantOptions;
 import com.l2jserver.gameserver.model.options.Options;
 import com.l2jserver.gameserver.model.quest.Quest;
@@ -552,7 +552,7 @@ public final class L2ItemInstance extends L2Object
 	 */
 	public boolean isEquipable()
 	{
-		return !((_item.getBodyPart() == 0) || (_item.getItemType() == L2EtcItemType.ARROW) || (_item.getItemType() == L2EtcItemType.BOLT) || (_item.getItemType() == L2EtcItemType.LURE));
+		return !((_item.getBodyPart() == 0) || (_item.getItemType() == EtcItemType.ARROW) || (_item.getItemType() == EtcItemType.BOLT) || (_item.getItemType() == EtcItemType.LURE));
 	}
 	
 	/**
@@ -616,7 +616,7 @@ public final class L2ItemInstance extends L2Object
 	/**
 	 * @return the type of item.
 	 */
-	public L2ItemType getItemType()
+	public ItemType getItemType()
 	{
 		return _item.getItemType();
 	}
@@ -874,7 +874,7 @@ public final class L2ItemInstance extends L2Object
 			&& (player.getActiveEnchantSupportItemId() != getObjectId()) // Not momentarily used enchant support item
 			&& (player.getActiveEnchantAttrItemId() != getObjectId()) // Not momentarily used enchant attribute item
 			&& (allowAdena || (getId() != Inventory.ADENA_ID)) // Not Adena
-			&& ((player.getCurrentSkill() == null) || (player.getCurrentSkill().getSkill().getItemConsumeId() != getId())) && (!player.isCastingSimultaneouslyNow() || (player.getLastSimultaneousSkillCast() == null) || (player.getLastSimultaneousSkillCast().getItemConsumeId() != getId())) && (allowNonTradeable || (isTradeable() && (!((getItem().getItemType() == L2EtcItemType.PET_COLLAR) && player.havePetInvItems())))));
+			&& ((player.getCurrentSkill() == null) || (player.getCurrentSkill().getSkill().getItemConsumeId() != getId())) && (!player.isCastingSimultaneouslyNow() || (player.getLastSimultaneousSkillCast() == null) || (player.getLastSimultaneousSkillCast().getItemConsumeId() != getId())) && (allowNonTradeable || (isTradeable() && (!((getItem().getItemType() == EtcItemType.PET_COLLAR) && player.havePetInvItems())))));
 	}
 	
 	/**
@@ -2052,7 +2052,7 @@ public final class L2ItemInstance extends L2Object
 	
 	public boolean hasPassiveSkills()
 	{
-		return (getItemType() == L2EtcItemType.RUNE) && (getItemLocation() == ItemLocation.INVENTORY) && (getOwnerId() > 0) && getItem().hasSkills();
+		return (getItemType() == EtcItemType.RUNE) && (getItemLocation() == ItemLocation.INVENTORY) && (getOwnerId() > 0) && getItem().hasSkills();
 	}
 	
 	public void giveSkillsToOwner()

+ 53 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/ActionType.java

@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2004-2014 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.model.items.type;
+
+/**
+ * Action Type enumerated.
+ * @author nBd
+ */
+public enum ActionType
+{
+	CALC,
+	CALL_SKILL,
+	CAPSULE,
+	CREATE_MPCC,
+	DICE,
+	EQUIP,
+	FISHINGSHOT,
+	HARVEST,
+	HIDE_NAME,
+	KEEP_EXP,
+	NICK_COLOR,
+	NONE,
+	PEEL,
+	RECIPE,
+	SEED,
+	SHOW_ADVENTURER_GUIDE_BOOK,
+	SHOW_HTML,
+	SHOW_SSQ_STATUS,
+	SKILL_MAINTAIN,
+	SKILL_REDUCE,
+	SOULSHOT,
+	SPIRITSHOT,
+	START_QUEST,
+	SUMMON_SOULSHOT,
+	SUMMON_SPIRITSHOT,
+	XMAS_OPEN,
+}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/L2ArmorType.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/ArmorType.java

@@ -22,7 +22,7 @@ package com.l2jserver.gameserver.model.items.type;
  * Description of Armor Type
  */
 
-public enum L2ArmorType implements L2ItemType
+public enum ArmorType implements ItemType
 {
 	NONE("None"),
 	LIGHT("Light"),
@@ -37,12 +37,12 @@ public enum L2ArmorType implements L2ItemType
 	final String _name;
 	
 	/**
-	 * Constructor of the L2ArmorType.
+	 * Constructor of the ArmorType.
 	 * @param name : String designating the name of the ArmorType
 	 */
-	private L2ArmorType(String name)
+	private ArmorType(String name)
 	{
-		_mask = 1 << (ordinal() + L2WeaponType.values().length);
+		_mask = 1 << (ordinal() + WeaponType.values().length);
 		_name = name;
 	}
 	

+ 86 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/CrystalType.java

@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2004-2014 L2J Server
+ * 
+ * This file is part of L2J Server.
+ * 
+ * L2J Server is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * L2J Server is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.model.items.type;
+
+/**
+ * Crystal Type enumerated.
+ * @author Adry_85
+ */
+public enum CrystalType
+{
+	NONE(0, 0, 0, 0),
+	D(1, 1458, 11, 90),
+	C(2, 1459, 6, 45),
+	B(3, 1460, 11, 67),
+	A(4, 1461, 20, 145),
+	S(5, 1462, 25, 250),
+	S80(6, 1462, 25, 250),
+	S84(7, 1462, 25, 250);
+	
+	private final int _id;
+	private final int _crystalId;
+	private final int _crystalEnchantBonusArmor;
+	private final int _crystalEnchantBonusWeapon;
+	
+	private CrystalType(int id, int crystalId, int crystalEnchantBonusArmor, int crystalEnchantBonusWeapon)
+	{
+		_id = id;
+		_crystalId = crystalId;
+		_crystalEnchantBonusArmor = crystalEnchantBonusArmor;
+		_crystalEnchantBonusWeapon = crystalEnchantBonusWeapon;
+	}
+	
+	/**
+	 * Gets the crystal type ID.
+	 * @return the crystal type ID
+	 */
+	public int getId()
+	{
+		return _id;
+	}
+	
+	/**
+	 * Gets the item ID of the crystal.
+	 * @return the item ID of the crystal
+	 */
+	public int getCrystalId()
+	{
+		return _crystalId;
+	}
+	
+	public int getCrystalEnchantBonusArmor()
+	{
+		return _crystalEnchantBonusArmor;
+	}
+	
+	public int getCrystalEnchantBonusWeapon()
+	{
+		return _crystalEnchantBonusWeapon;
+	}
+	
+	public boolean isGreater(CrystalType crystalType)
+	{
+		return getId() > crystalType.getId();
+	}
+	
+	public boolean isLesser(CrystalType crystalType)
+	{
+		return getId() < crystalType.getId();
+	}
+}

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/L2EtcItemType.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/EtcItemType.java

@@ -21,7 +21,7 @@ package com.l2jserver.gameserver.model.items.type;
 /**
  * Description of EtcItem Type
  */
-public enum L2EtcItemType implements L2ItemType
+public enum EtcItemType implements ItemType
 {
 	NONE(1, "none"),
 	ARROW(2, "arrow"),
@@ -63,11 +63,11 @@ public enum L2EtcItemType implements L2ItemType
 	private final String _name;
 	
 	/**
-	 * Constructor of the L2EtcItemType.
+	 * Constructor of the EtcItemType.
 	 * @param id : int designating the ID of the EtcItemType
 	 * @param name : String designating the name of the EtcItemType
 	 */
-	private L2EtcItemType(int id, String name)
+	private EtcItemType(int id, String name)
 	{
 		_id = id;
 		_name = name;

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/L2ItemType.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/ItemType.java

@@ -22,7 +22,7 @@ package com.l2jserver.gameserver.model.items.type;
  * Created for allow comparing different item types
  * @author DS
  */
-public interface L2ItemType
+public interface ItemType
 {
 	public int mask();
 	

+ 31 - 28
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/L2ActionType.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/MaterialType.java

@@ -19,34 +19,37 @@
 package com.l2jserver.gameserver.model.items.type;
 
 /**
- * @author nBd
+ * Material Type enumerated.
+ * @author Adry_85
  */
-public enum L2ActionType
+public enum MaterialType
 {
-	calc,
-	call_skill,
-	capsule,
-	create_mpcc,
-	dice,
-	equip,
-	fishingshot,
-	harvest,
-	hide_name,
-	keep_exp,
-	nick_color,
-	none,
-	peel,
-	recipe,
-	seed,
-	show_adventurer_guide_book,
-	show_html,
-	show_ssq_status,
-	skill_maintain,
-	skill_reduce,
-	soulshot,
-	spiritshot,
-	start_quest,
-	summon_soulshot,
-	summon_spiritshot,
-	xmas_open,
+	STEEL,
+	FINE_STEEL,
+	COTTON,
+	BLOOD_STEEL,
+	BRONZE,
+	SILVER,
+	GOLD,
+	MITHRIL,
+	ORIHARUKON,
+	PAPER,
+	WOOD,
+	CLOTH,
+	LEATHER,
+	BONE,
+	HORN,
+	DAMASCUS,
+	ADAMANTAITE,
+	CHRYSOLITE,
+	CRYSTAL,
+	LIQUID,
+	SCALE_OF_DRAGON,
+	DYESTUFF,
+	COBWEB,
+	SEED,
+	FISH,
+	RUNE_XP,
+	RUNE_SP,
+	RUNE_REMOVE_PENALTY;
 }

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/L2WeaponType.java → L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/type/WeaponType.java

@@ -27,7 +27,7 @@ import com.l2jserver.gameserver.model.stats.TraitType;
  * @author mkizub <BR>
  *         Description of Weapon Type
  */
-public enum L2WeaponType implements L2ItemType
+public enum WeaponType implements ItemType
 {
 	SWORD("Sword", TraitType.SWORD),
 	BLUNT("Blunt", TraitType.BLUNT),
@@ -51,17 +51,17 @@ public enum L2WeaponType implements L2ItemType
 	BIGBLUNT("Big Blunt", TraitType.BLUNT),
 	BIGSWORD("Big Sword", TraitType.SWORD);
 	
-	private static final Logger _log = Logger.getLogger(L2WeaponType.class.getName());
+	private static final Logger _log = Logger.getLogger(WeaponType.class.getName());
 	private final int _mask;
 	private final String _name;
 	private final TraitType _traitType;
 	
 	/**
-	 * Constructor of the L2WeaponType.
+	 * Constructor of the WeaponType.
 	 * @param name : String designating the name of the WeaponType
 	 * @param traitType
 	 */
-	private L2WeaponType(String name, TraitType traitType)
+	private WeaponType(String name, TraitType traitType)
 	{
 		_mask = 1 << ordinal();
 		_name = name;
@@ -94,7 +94,7 @@ public enum L2WeaponType implements L2ItemType
 		return _traitType;
 	}
 	
-	public static L2WeaponType findByName(String name)
+	public static WeaponType findByName(String name)
 	{
 		if (name.equalsIgnoreCase("DUAL"))
 		{
@@ -104,14 +104,14 @@ public enum L2WeaponType implements L2ItemType
 		{
 			name = "Dual Fist";
 		}
-		for (L2WeaponType type : values())
+		for (WeaponType type : values())
 		{
 			if (type.getName().equalsIgnoreCase(name))
 			{
 				return type;
 			}
 		}
-		_log.log(Level.WARNING, L2WeaponType.class.getSimpleName() + ": Requested unexistent enum member: " + name, new IllegalStateException());
+		_log.log(Level.WARNING, WeaponType.class.getSimpleName() + ": Requested unexistent enum member: " + name, new IllegalStateException());
 		return FIST;
 	}
 }

+ 14 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/funcs/FuncEnchant.java

@@ -20,9 +20,8 @@ package com.l2jserver.gameserver.model.skills.funcs;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.stats.Env;
 import com.l2jserver.gameserver.model.stats.Stats;
 
@@ -84,20 +83,20 @@ public class FuncEnchant extends Func
 		{
 			switch (item.getItem().getItemGradeSPlus())
 			{
-				case L2Item.CRYSTAL_S:
+				case S:
 					// M. Atk. increases by 4 for all weapons.
 					// Starting at +4, M. Atk. bonus double.
 					env.addValue((4 * enchant) + (8 * overenchant));
 					break;
-				case L2Item.CRYSTAL_A:
-				case L2Item.CRYSTAL_B:
-				case L2Item.CRYSTAL_C:
+				case A:
+				case B:
+				case C:
 					// M. Atk. increases by 3 for all weapons.
 					// Starting at +4, M. Atk. bonus double.
 					env.addValue((3 * enchant) + (6 * overenchant));
 					break;
-				case L2Item.CRYSTAL_D:
-				case L2Item.CRYSTAL_NONE:
+				case D:
+				case NONE:
 					// M. Atk. increases by 2 for all weapons. Starting at +4, M. Atk. bonus double.
 					// Starting at +4, M. Atk. bonus double.
 					env.addValue((2 * enchant) + (4 * overenchant));
@@ -108,10 +107,10 @@ public class FuncEnchant extends Func
 		
 		if (item.isWeapon())
 		{
-			final L2WeaponType type = (L2WeaponType) item.getItemType();
+			final WeaponType type = (WeaponType) item.getItemType();
 			switch (item.getItem().getItemGradeSPlus())
 			{
-				case L2Item.CRYSTAL_S:
+				case S:
 					switch (type)
 					{
 						case BOW:
@@ -137,7 +136,7 @@ public class FuncEnchant extends Func
 							break;
 					}
 					break;
-				case L2Item.CRYSTAL_A:
+				case A:
 					switch (type)
 					{
 						case BOW:
@@ -163,8 +162,8 @@ public class FuncEnchant extends Func
 							break;
 					}
 					break;
-				case L2Item.CRYSTAL_B:
-				case L2Item.CRYSTAL_C:
+				case B:
+				case C:
 					switch (type)
 					{
 						case BOW:
@@ -190,8 +189,8 @@ public class FuncEnchant extends Func
 							break;
 					}
 					break;
-				case L2Item.CRYSTAL_D:
-				case L2Item.CRYSTAL_NONE:
+				case D:
+				case NONE:
 					switch (type)
 					{
 						case BOW:

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/stats/Formulas.java

@@ -49,8 +49,8 @@ import com.l2jserver.gameserver.model.entity.Siege;
 import com.l2jserver.gameserver.model.items.L2Armor;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.funcs.formulas.FuncArmorSet;
@@ -800,7 +800,7 @@ public final class Formulas
 		if (target.isAttackable())
 		{
 			final L2Weapon weapon = attacker.getActiveWeaponItem();
-			if ((weapon != null) && ((weapon.getItemType() == L2WeaponType.BOW) || (weapon.getItemType() == L2WeaponType.CROSSBOW)))
+			if ((weapon != null) && ((weapon.getItemType() == WeaponType.BOW) || (weapon.getItemType() == WeaponType.CROSSBOW)))
 			{
 				if (skill != null)
 				{
@@ -1104,7 +1104,7 @@ public final class Formulas
 		if (Config.ALT_GAME_CANCEL_BOW && target.isAttackingNow())
 		{
 			L2Weapon wpn = target.getActiveWeaponItem();
-			if ((wpn != null) && (wpn.getItemType() == L2WeaponType.BOW))
+			if ((wpn != null) && (wpn.getItemType() == WeaponType.BOW))
 			{
 				init = 15;
 			}
@@ -1202,7 +1202,7 @@ public final class Formulas
 		}
 		
 		L2Item item = target.getSecondaryWeaponItem();
-		if ((item == null) || !(item instanceof L2Armor) || (((L2Armor) item).getItemType() == L2ArmorType.SIGIL))
+		if ((item == null) || !(item instanceof L2Armor) || (((L2Armor) item).getItemType() == ArmorType.SIGIL))
 		{
 			return 0;
 		}
@@ -1223,7 +1223,7 @@ public final class Formulas
 		// if attacker
 		// if attacker use bow and target wear shield, shield block rate is multiplied by 1.3 (30%)
 		L2Weapon at_weapon = attacker.getActiveWeaponItem();
-		if ((at_weapon != null) && (at_weapon.getItemType() == L2WeaponType.BOW))
+		if ((at_weapon != null) && (at_weapon.getItemType() == WeaponType.BOW))
 		{
 			shldRate *= 1.3;
 		}

+ 23 - 22
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/AbstractRefinePacket.java

@@ -30,6 +30,7 @@ import com.l2jserver.gameserver.model.items.L2Armor;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
 public abstract class AbstractRefinePacket extends L2GameClientPacket
@@ -226,7 +227,7 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
 			return false;
 		}
 		
-		final int grade = item.getItem().getItemGrade();
+		final CrystalType grade = item.getItem().getItemGrade();
 		final LifeStone ls = _lifeStones.get(refinerItem.getId());
 		
 		// Check for item id
@@ -338,7 +339,7 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
 		{
 			return false;
 		}
-		if (item.getItem().getCrystalType() < L2Item.CRYSTAL_C)
+		if (item.getItem().getCrystalType().isLesser(CrystalType.C))
 		{
 			return false;
 		}
@@ -444,18 +445,18 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
 	 * @param itemGrade
 	 * @return GemStone itemId based on item grade
 	 */
-	protected static final int getGemStoneId(int itemGrade)
+	protected static final int getGemStoneId(CrystalType itemGrade)
 	{
 		switch (itemGrade)
 		{
-			case L2Item.CRYSTAL_C:
-			case L2Item.CRYSTAL_B:
+			case C:
+			case B:
 				return GEMSTONE_D;
-			case L2Item.CRYSTAL_A:
-			case L2Item.CRYSTAL_S:
+			case A:
+			case S:
 				return GEMSTONE_C;
-			case L2Item.CRYSTAL_S80:
-			case L2Item.CRYSTAL_S84:
+			case S80:
+			case S84:
 				return GEMSTONE_B;
 			default:
 				return 0;
@@ -468,24 +469,24 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
 	 * @param lifeStoneGrade
 	 * @return GemStone count based on item grade and life stone grade
 	 */
-	protected static final int getGemStoneCount(int itemGrade, int lifeStoneGrade)
+	protected static final int getGemStoneCount(CrystalType itemGrade, int lifeStoneGrade)
 	{
 		switch (lifeStoneGrade)
 		{
 			case GRADE_ACC:
 				switch (itemGrade)
 				{
-					case L2Item.CRYSTAL_C:
+					case C:
 						return 200;
-					case L2Item.CRYSTAL_B:
+					case B:
 						return 300;
-					case L2Item.CRYSTAL_A:
+					case A:
 						return 200;
-					case L2Item.CRYSTAL_S:
+					case S:
 						return 250;
-					case L2Item.CRYSTAL_S80:
+					case S80:
 						return 360;
-					case L2Item.CRYSTAL_S84:
+					case S84:
 						return 480;
 					default:
 						return 0;
@@ -493,16 +494,16 @@ public abstract class AbstractRefinePacket extends L2GameClientPacket
 			default:
 				switch (itemGrade)
 				{
-					case L2Item.CRYSTAL_C:
+					case C:
 						return 20;
-					case L2Item.CRYSTAL_B:
+					case B:
 						return 30;
-					case L2Item.CRYSTAL_A:
+					case A:
 						return 20;
-					case L2Item.CRYSTAL_S:
+					case S:
 						return 25;
-					case L2Item.CRYSTAL_S80:
-					case L2Item.CRYSTAL_S84:
+					case S80:
+					case S84:
 						return 36;
 					default:
 						return 0;

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/MoveToLocationInAirShip.java

@@ -22,7 +22,7 @@ import com.l2jserver.gameserver.TaskPriority;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.instance.L2AirShipInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ExMoveToLocationInAirShip;
 import com.l2jserver.gameserver.network.serverpackets.StopMoveInVehicle;
@@ -75,7 +75,7 @@ public class MoveToLocationInAirShip extends L2GameClientPacket
 			return;
 		}
 		
-		if (activeChar.isAttackingNow() && (activeChar.getActiveWeaponItem() != null) && (activeChar.getActiveWeaponItem().getItemType() == L2WeaponType.BOW))
+		if (activeChar.isAttackingNow() && (activeChar.getActiveWeaponItem() != null) && (activeChar.getActiveWeaponItem().getItemType() == WeaponType.BOW))
 		{
 			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
 			return;

+ 6 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestConfirmCancelItem.java

@@ -20,7 +20,6 @@ package com.l2jserver.gameserver.network.clientpackets;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ExPutItemResultForVariationCancel;
@@ -76,7 +75,7 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
 		int price = 0;
 		switch (item.getItem().getCrystalType())
 		{
-			case L2Item.CRYSTAL_C:
+			case C:
 				if (item.getCrystalCount() < 1720)
 				{
 					price = 95000;
@@ -90,7 +89,7 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
 					price = 210000;
 				}
 				break;
-			case L2Item.CRYSTAL_B:
+			case B:
 				if (item.getCrystalCount() < 1746)
 				{
 					price = 240000;
@@ -100,7 +99,7 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
 					price = 270000;
 				}
 				break;
-			case L2Item.CRYSTAL_A:
+			case A:
 				if (item.getCrystalCount() < 2160)
 				{
 					price = 330000;
@@ -114,11 +113,11 @@ public final class RequestConfirmCancelItem extends L2GameClientPacket
 					price = 420000;
 				}
 				break;
-			case L2Item.CRYSTAL_S:
+			case S:
 				price = 480000;
 				break;
-			case L2Item.CRYSTAL_S80:
-			case L2Item.CRYSTAL_S84:
+			case S80:
+			case S84:
 				price = 920000;
 				break;
 			// TODO: S84 TOP price 3.2M

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestConfirmRefinerItem.java

@@ -20,6 +20,7 @@ package com.l2jserver.gameserver.network.clientpackets;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ExPutIntensiveResultForVariationMake;
 
@@ -69,7 +70,7 @@ public class RequestConfirmRefinerItem extends AbstractRefinePacket
 		}
 		
 		final int refinerItemId = refinerItem.getItem().getId();
-		final int grade = targetItem.getItem().getItemGrade();
+		final CrystalType grade = targetItem.getItem().getItemGrade();
 		final LifeStone ls = getLifeStone(refinerItemId);
 		final int gemStoneId = getGemStoneId(grade);
 		final int gemStoneCount = getGemStoneCount(grade, ls.getGrade());

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestCrystallizeItem.java

@@ -24,8 +24,8 @@ import com.l2jserver.gameserver.enums.PrivateStoreType;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
-import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
 import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -119,7 +119,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 			return;
 		}
 		
-		if (!itemToRemove.getItem().isCrystallizable() || (itemToRemove.getItem().getCrystalCount() <= 0) || (itemToRemove.getItem().getCrystalType() == L2Item.CRYSTAL_NONE))
+		if (!itemToRemove.getItem().isCrystallizable() || (itemToRemove.getItem().getCrystalCount() <= 0) || (itemToRemove.getItem().getCrystalType() == CrystalType.NONE))
 		{
 			_log.warning(activeChar.getName() + " (" + activeChar.getObjectId() + ") tried to crystallize " + itemToRemove.getItem().getId());
 			return;
@@ -136,7 +136,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 		
 		switch (itemToRemove.getItem().getItemGradeSPlus())
 		{
-			case L2Item.CRYSTAL_C:
+			case C:
 			{
 				if (skillLevel <= 1)
 				{
@@ -144,7 +144,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 				}
 				break;
 			}
-			case L2Item.CRYSTAL_B:
+			case B:
 			{
 				if (skillLevel <= 2)
 				{
@@ -152,7 +152,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 				}
 				break;
 			}
-			case L2Item.CRYSTAL_A:
+			case A:
 			{
 				if (skillLevel <= 3)
 				{
@@ -160,7 +160,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 				}
 				break;
 			}
-			case L2Item.CRYSTAL_S:
+			case S:
 			{
 				if (skillLevel <= 4)
 				{

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestDropItem.java

@@ -26,7 +26,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
@@ -74,7 +74,7 @@ public final class RequestDropItem extends L2GameClientPacket
 		
 		L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);
 		
-		if ((item == null) || (_count == 0) || !activeChar.validateItemManipulation(_objectId, "drop") || (!Config.ALLOW_DISCARDITEM && !activeChar.canOverrideCond(PcCondOverride.DROP_ALL_ITEMS)) || (!item.isDropable() && !(activeChar.canOverrideCond(PcCondOverride.DROP_ALL_ITEMS) && Config.GM_TRADE_RESTRICTED_ITEMS)) || ((item.getItemType() == L2EtcItemType.PET_COLLAR) && activeChar.havePetInvItems()) || activeChar.isInsideZone(ZoneId.NO_ITEM_DROP))
+		if ((item == null) || (_count == 0) || !activeChar.validateItemManipulation(_objectId, "drop") || (!Config.ALLOW_DISCARDITEM && !activeChar.canOverrideCond(PcCondOverride.DROP_ALL_ITEMS)) || (!item.isDropable() && !(activeChar.canOverrideCond(PcCondOverride.DROP_ALL_ITEMS) && Config.GM_TRADE_RESTRICTED_ITEMS)) || ((item.getItemType() == EtcItemType.PET_COLLAR) && activeChar.havePetInvItems()) || activeChar.isInsideZone(ZoneId.NO_ITEM_DROP))
 		{
 			activeChar.sendPacket(SystemMessageId.CANNOT_DISCARD_THIS_ITEM);
 			return;

+ 3 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExRemoveItemAttribute.java

@@ -20,7 +20,6 @@ package com.l2jserver.gameserver.network.clientpackets;
 
 import com.l2jserver.gameserver.model.Elementals;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -131,7 +130,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
 	{
 		switch (item.getItem().getCrystalType())
 		{
-			case L2Item.CRYSTAL_S:
+			case S:
 				if (item.getItem() instanceof L2Weapon)
 				{
 					_price = 50000;
@@ -141,7 +140,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
 					_price = 40000;
 				}
 				break;
-			case L2Item.CRYSTAL_S80:
+			case S80:
 				if (item.getItem() instanceof L2Weapon)
 				{
 					_price = 100000;
@@ -151,7 +150,7 @@ public class RequestExRemoveItemAttribute extends L2GameClientPacket
 					_price = 80000;
 				}
 				break;
-			case L2Item.CRYSTAL_S84:
+			case S84:
 				if (item.getItem() instanceof L2Weapon)
 				{
 					_price = 200000;

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestMoveToLocationInVehicle.java

@@ -24,7 +24,7 @@ import com.l2jserver.gameserver.instancemanager.BoatManager;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.instance.L2BoatInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.MoveToLocationInVehicle;
@@ -81,7 +81,7 @@ public final class RequestMoveToLocationInVehicle extends L2GameClientPacket
 			return;
 		}
 		
-		if (activeChar.isAttackingNow() && (activeChar.getActiveWeaponItem() != null) && (activeChar.getActiveWeaponItem().getItemType() == L2WeaponType.BOW))
+		if (activeChar.isAttackingNow() && (activeChar.getActiveWeaponItem() != null) && (activeChar.getActiveWeaponItem().getItemType() == WeaponType.BOW))
 		{
 			activeChar.sendPacket(ActionFailed.STATIC_PACKET);
 			return;

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPreviewItem.java

@@ -36,8 +36,8 @@ import com.l2jserver.gameserver.model.itemcontainer.Inventory;
 import com.l2jserver.gameserver.model.items.L2Armor;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.ShopPreviewInfo;
@@ -197,11 +197,11 @@ public final class RequestPreviewItem extends L2GameClientPacket
 			{
 				if (_activeChar.getRace().ordinal() == 5)
 				{
-					if (template.getItemType() == L2WeaponType.NONE)
+					if (template.getItemType() == WeaponType.NONE)
 					{
 						continue;
 					}
-					else if ((template.getItemType() == L2WeaponType.RAPIER) || (template.getItemType() == L2WeaponType.CROSSBOW) || (template.getItemType() == L2WeaponType.ANCIENTSWORD))
+					else if ((template.getItemType() == WeaponType.RAPIER) || (template.getItemType() == WeaponType.CROSSBOW) || (template.getItemType() == WeaponType.ANCIENTSWORD))
 					{
 						continue;
 					}
@@ -211,7 +211,7 @@ public final class RequestPreviewItem extends L2GameClientPacket
 			{
 				if (_activeChar.getRace().ordinal() == 5)
 				{
-					if ((template.getItemType() == L2ArmorType.HEAVY) || (template.getItemType() == L2ArmorType.MAGIC))
+					if ((template.getItemType() == ArmorType.HEAVY) || (template.getItemType() == ArmorType.MAGIC))
 					{
 						continue;
 					}

+ 6 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestRefineCancel.java

@@ -20,7 +20,6 @@ package com.l2jserver.gameserver.network.clientpackets;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ExVariationCancelResult;
@@ -74,7 +73,7 @@ public final class RequestRefineCancel extends L2GameClientPacket
 		int price = 0;
 		switch (targetItem.getItem().getCrystalType())
 		{
-			case L2Item.CRYSTAL_C:
+			case C:
 				if (targetItem.getCrystalCount() < 1720)
 				{
 					price = 95000;
@@ -88,7 +87,7 @@ public final class RequestRefineCancel extends L2GameClientPacket
 					price = 210000;
 				}
 				break;
-			case L2Item.CRYSTAL_B:
+			case B:
 				if (targetItem.getCrystalCount() < 1746)
 				{
 					price = 240000;
@@ -98,7 +97,7 @@ public final class RequestRefineCancel extends L2GameClientPacket
 					price = 270000;
 				}
 				break;
-			case L2Item.CRYSTAL_A:
+			case A:
 				if (targetItem.getCrystalCount() < 2160)
 				{
 					price = 330000;
@@ -112,11 +111,11 @@ public final class RequestRefineCancel extends L2GameClientPacket
 					price = 420000;
 				}
 				break;
-			case L2Item.CRYSTAL_S:
+			case S:
 				price = 480000;
 				break;
-			case L2Item.CRYSTAL_S80:
-			case L2Item.CRYSTAL_S84:
+			case S80:
+			case S84:
 				price = 920000;
 				break;
 			// any other item type is not augmentable

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/UseItem.java

@@ -41,8 +41,8 @@ import com.l2jserver.gameserver.model.items.L2EtcItem;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2ArmorType;
-import com.l2jserver.gameserver.model.items.type.L2WeaponType;
+import com.l2jserver.gameserver.model.items.type.ArmorType;
+import com.l2jserver.gameserver.model.items.type.WeaponType;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -296,7 +296,7 @@ public final class UseItem extends L2GameClientPacket
 				case L2Item.SLOT_FULL_ARMOR:
 				case L2Item.SLOT_LEGS:
 				{
-					if ((activeChar.getRace() == PcRace.Kamael) && ((item.getItem().getItemType() == L2ArmorType.HEAVY) || (item.getItem().getItemType() == L2ArmorType.MAGIC)))
+					if ((activeChar.getRace() == PcRace.Kamael) && ((item.getItem().getItemType() == ArmorType.HEAVY) || (item.getItem().getItemType() == ArmorType.MAGIC)))
 					{
 						activeChar.sendPacket(SystemMessageId.CANNOT_EQUIP_ITEM_DUE_TO_BAD_CONDITION);
 						return;
@@ -340,7 +340,7 @@ public final class UseItem extends L2GameClientPacket
 		else
 		{
 			final L2Weapon weaponItem = activeChar.getActiveWeaponItem();
-			if (((weaponItem != null) && (weaponItem.getItemType() == L2WeaponType.FISHINGROD)) && (((_itemId >= 6519) && (_itemId <= 6527)) || ((_itemId >= 7610) && (_itemId <= 7613)) || ((_itemId >= 7807) && (_itemId <= 7809)) || ((_itemId >= 8484) && (_itemId <= 8486)) || ((_itemId >= 8505) && (_itemId <= 8513))))
+			if (((weaponItem != null) && (weaponItem.getItemType() == WeaponType.FISHINGROD)) && (((_itemId >= 6519) && (_itemId <= 6527)) || ((_itemId >= 7610) && (_itemId <= 7613)) || ((_itemId >= 7807) && (_itemId <= 7809)) || ((_itemId >= 8484) && (_itemId <= 8486)) || ((_itemId >= 8505) && (_itemId <= 8513))))
 			{
 				activeChar.getInventory().setPaperdollItem(Inventory.PAPERDOLL_LHAND, item);
 				activeChar.broadcastUserInfo();

+ 3 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ExShowBaseAttributeCancelWindow.java

@@ -19,7 +19,6 @@
 package com.l2jserver.gameserver.network.serverpackets;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 
@@ -55,7 +54,7 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
 	{
 		switch (item.getItem().getCrystalType())
 		{
-			case L2Item.CRYSTAL_S:
+			case S:
 				if (item.getItem() instanceof L2Weapon)
 				{
 					_price = 50000;
@@ -65,7 +64,7 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
 					_price = 40000;
 				}
 				break;
-			case L2Item.CRYSTAL_S80:
+			case S80:
 				if (item.getItem() instanceof L2Weapon)
 				{
 					_price = 100000;
@@ -75,7 +74,7 @@ public class ExShowBaseAttributeCancelWindow extends L2GameServerPacket
 					_price = 80000;
 				}
 				break;
-			case L2Item.CRYSTAL_S84:
+			case S84:
 				if (item.getItem() instanceof L2Weapon)
 				{
 					_price = 200000;

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/ShopPreviewList.java

@@ -61,7 +61,7 @@ public class ShopPreviewList extends L2GameServerPacket
 		int newlength = 0;
 		for (Product product : _list)
 		{
-			if ((product.getItem().getCrystalType() <= _expertise) && product.getItem().isEquipable())
+			if ((product.getItem().getCrystalType().getId() <= _expertise) && product.getItem().isEquipable())
 			{
 				newlength++;
 			}
@@ -70,7 +70,7 @@ public class ShopPreviewList extends L2GameServerPacket
 		
 		for (Product product : _list)
 		{
-			if ((product.getItem().getCrystalType() <= _expertise) && product.getItem().isEquipable())
+			if ((product.getItem().getCrystalType().getId() <= _expertise) && product.getItem().isEquipable())
 			{
 				writeD(product.getItemId());
 				writeH(product.getItem().getType2()); // item type2

+ 16 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/SortedWareHouseWithdrawalList.java

@@ -30,7 +30,9 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.L2WarehouseItem;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
+import com.l2jserver.gameserver.model.items.type.CrystalType;
+import com.l2jserver.gameserver.model.items.type.EtcItemType;
+import com.l2jserver.gameserver.model.items.type.MaterialType;
 
 public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 {
@@ -289,7 +291,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 			{
 				return (order == A2Z ? A2Z : Z2A);
 			}
-			if ((o1.isEtcItem() && (o1.getItemType() == L2EtcItemType.RECIPE)) && (o2.isEtcItem() && (o2.getItemType() == L2EtcItemType.RECIPE)))
+			if ((o1.isEtcItem() && (o1.getItemType() == EtcItemType.RECIPE)) && (o2.isEtcItem() && (o2.getItemType() == EtcItemType.RECIPE)))
 			{
 				try
 				{
@@ -374,8 +376,8 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 			{
 				return (order == A2Z ? A2Z : Z2A);
 			}
-			Integer i1 = o1.getItemGrade();
-			Integer i2 = o2.getItemGrade();
+			CrystalType i1 = o1.getItemGrade();
+			CrystalType i2 = o2.getItemGrade();
 			return (order == A2Z ? i1.compareTo(i2) : i2.compareTo(i1));
 		}
 	}
@@ -405,8 +407,8 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 			}
 			try
 			{
-				Integer i1 = o1.getItem().getMaterialType();
-				Integer i2 = o2.getItem().getMaterialType();
+				MaterialType i1 = o1.getItem().getMaterialType();
+				MaterialType i2 = o2.getItem().getMaterialType();
 				return (order == A2Z ? i1.compareTo(i2) : i2.compareTo(i1));
 			}
 			catch (Exception e)
@@ -426,7 +428,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if (item.isWeapon() || (item.getItem().getType2() == L2Item.TYPE2_WEAPON) || (item.isEtcItem() && (item.getItemType() == L2EtcItemType.ARROW)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if (item.isWeapon() || (item.getItem().getType2() == L2Item.TYPE2_WEAPON) || (item.isEtcItem() && (item.getItemType() == EtcItemType.ARROW)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -501,7 +503,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == L2EtcItemType.MATERIAL)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.MATERIAL)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -526,7 +528,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == L2EtcItemType.RECIPE)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.RECIPE)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -601,7 +603,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && ((item.getEtcItem().getItemType() == L2EtcItemType.SCROLL) || (item.getEtcItem().getItemType() == L2EtcItemType.SHOT))) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && ((item.getEtcItem().getItemType() == EtcItemType.SCROLL) || (item.getEtcItem().getItemType() == EtcItemType.SHOT))) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -626,7 +628,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == L2EtcItemType.SHOT)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SHOT)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -651,7 +653,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == L2EtcItemType.SCROLL)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SCROLL)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -676,7 +678,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == L2EtcItemType.SEED)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && (item.getEtcItem().getItemType() == EtcItemType.SEED)) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{
@@ -701,7 +703,7 @@ public class SortedWareHouseWithdrawalList extends L2GameServerPacket
 		List<L2WarehouseItem> _list = new FastList<>();
 		for (L2ItemInstance item : _items)
 		{
-			if ((item.isEtcItem() && ((item.getEtcItem().getItemType() != L2EtcItemType.MATERIAL) && (item.getEtcItem().getItemType() != L2EtcItemType.RECIPE) && (item.getEtcItem().getItemType() != L2EtcItemType.SCROLL) && (item.getEtcItem().getItemType() != L2EtcItemType.SHOT))) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
+			if ((item.isEtcItem() && ((item.getEtcItem().getItemType() != EtcItemType.MATERIAL) && (item.getEtcItem().getItemType() != EtcItemType.RECIPE) && (item.getEtcItem().getItemType() != EtcItemType.SCROLL) && (item.getEtcItem().getItemType() != EtcItemType.SHOT))) || (item.getItem().getType2() == L2Item.TYPE2_MONEY))
 			{
 				if (_list.size() < MAX_SORT_LIST_ITEMS)
 				{