Bladeren bron

BETA: Moved `SkillData.FrequentSkill` enum to its own file and renamed it to `CommonSkill`.
* Moved all static skill id variables from `Skill` class to `CommonSkill` enum.
* Changed `SkillData._enchantable` type from `ArrayList` to `HashSet` since `HashSet#contains` is faster.

Reviewed by: Zoey76, xban1x

Nos 11 jaren geleden
bovenliggende
commit
9c90e526b4
16 gewijzigde bestanden met toevoegingen van 143 en 125 verwijderingen
  1. 2 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/RecipeController.java
  2. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSigns.java
  3. 4 55
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillData.java
  4. 2 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java
  5. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortSiegeManager.java
  6. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/CursedWeapon.java
  7. 6 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java
  8. 16 16
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  9. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2WeddingManagerInstance.java
  10. 78 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/CommonSkill.java
  11. 2 15
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/Skill.java
  12. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
  13. 3 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestAcquireSkill.java
  14. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestCrystallizeItem.java
  15. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestEnchantItem.java
  16. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/serverpackets/AcquireSkillInfo.java

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/RecipeController.java

@@ -38,6 +38,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.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -194,7 +195,7 @@ public class RecipeController
 			_recipeList = pRecipeList;
 			
 			_isValid = false;
-			_skillId = _recipeList.isDwarvenRecipe() ? Skill.SKILL_CREATE_DWARVEN : Skill.SKILL_CREATE_COMMON;
+			_skillId = _recipeList.isDwarvenRecipe() ? CommonSkill.CREATE_DWARVEN.getId() : CommonSkill.CREATE_COMMON.getId();
 			_skillLevel = _player.getSkillLevel(_skillId);
 			_skill = _player.getKnownSkill(_skillId);
 			

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSigns.java

@@ -34,7 +34,6 @@ import javolution.util.FastMap;
 
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.model.AutoSpawnHandler;
 import com.l2jserver.gameserver.model.AutoSpawnHandler.AutoSpawnInstance;
@@ -44,6 +43,7 @@ import com.l2jserver.gameserver.model.TeleportWhereType;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.interfaces.IProcedure;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SSQInfo;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -1671,12 +1671,12 @@ public class SevenSigns
 				{
 					if (cabal == _strifeOwner)
 					{
-						character.addSkill(SkillData.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
+						character.addSkill(CommonSkill.THE_VICTOR_OF_WAR.getSkill());
 					}
 					else
 					{
 						// Gives "The Vanquished of War" passive skill to all online characters with Cabal, which does not control Seal of Strife
-						character.addSkill(SkillData.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
+						character.addSkill(CommonSkill.THE_VANQUISHED_OF_WAR.getSkill());
 					}
 				}
 			}
@@ -1697,8 +1697,8 @@ public class SevenSigns
 			if (character != null)
 			{
 				// Remove SevenSigns' buffs/debuffs.
-				character.removeSkill(SkillData.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
-				character.removeSkill(SkillData.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
+				character.removeSkill(CommonSkill.THE_VICTOR_OF_WAR.getSkill());
+				character.removeSkill(CommonSkill.THE_VANQUISHED_OF_WAR.getSkill());
 			}
 			return true;
 		}

+ 4 - 55
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillData.java

@@ -18,17 +18,15 @@
  */
 package com.l2jserver.gameserver.datatables;
 
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
-import java.util.List;
+import java.util.HashSet;
 import java.util.Map;
+import java.util.Set;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.engines.DocumentEngine;
-import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
@@ -40,7 +38,7 @@ public final class SkillData
 	
 	private final Map<Integer, Skill> _skills = new HashMap<>();
 	private final Map<Integer, Integer> _skillMaxLevel = new HashMap<>();
-	private final List<Integer> _enchantable = new ArrayList<>();
+	private final Set<Integer> _enchantable = new HashSet<>();
 	
 	protected SkillData()
 	{
@@ -80,9 +78,6 @@ public final class SkillData
 				_skillMaxLevel.put(skillId, skillLvl);
 			}
 		}
-		
-		// Sorting for binary-search.
-		Collections.sort(_enchantable);
 	}
 	
 	/**
@@ -143,7 +138,7 @@ public final class SkillData
 	 */
 	public boolean isEnchantable(int skillId)
 	{
-		return Collections.binarySearch(_enchantable, skillId) >= 0;
+		return _enchantable.contains(skillId);
 	}
 	
 	/**
@@ -170,52 +165,6 @@ public final class SkillData
 		return temp;
 	}
 	
-	/**
-	 * Enum to hold some important references to frequently used (hardcoded) skills in core
-	 * @author DrHouse
-	 */
-	public static enum FrequentSkill
-	{
-		RAID_CURSE(4215, 1),
-		RAID_CURSE2(4515, 1),
-		SEAL_OF_RULER(246, 1),
-		BUILD_HEADQUARTERS(247, 1),
-		WYVERN_BREATH(4289, 1),
-		STRIDER_SIEGE_ASSAULT(325, 1),
-		FIREWORK(5965, 1),
-		LARGE_FIREWORK(2025, 1),
-		BLESSING_OF_PROTECTION(5182, 1),
-		VOID_BURST(3630, 1),
-		VOID_FLOW(3631, 1),
-		THE_VICTOR_OF_WAR(5074, 1),
-		THE_VANQUISHED_OF_WAR(5075, 1),
-		SPECIAL_TREE_RECOVERY_BONUS(2139, 1),
-		WEAPON_GRADE_PENALTY(6209, 1),
-		ARMOR_GRADE_PENALTY(6213, 1);
-		
-		private final SkillHolder _holder;
-		
-		private FrequentSkill(int id, int level)
-		{
-			_holder = new SkillHolder(id, level);
-		}
-		
-		public int getId()
-		{
-			return _holder.getSkillId();
-		}
-		
-		public int getLevel()
-		{
-			return _holder.getSkillLvl();
-		}
-		
-		public Skill getSkill()
-		{
-			return _holder.getSkill();
-		}
-	}
-	
 	public static SkillData getInstance()
 	{
 		return SingletonHolder._instance;

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

@@ -46,6 +46,7 @@ import com.l2jserver.gameserver.model.holders.ItemHolder;
 import com.l2jserver.gameserver.model.holders.PlayerSkillHolder;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.interfaces.ISkillsHolder;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 
 import gnu.trove.map.hash.TIntObjectHashMap;
@@ -543,7 +544,7 @@ public final class SkillTreesData extends DocumentParser
 			for (L2SkillLearn s : learnable)
 			{
 				Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
-				if ((sk == null) || ((sk.getId() == Skill.SKILL_DIVINE_INSPIRATION) && !Config.AUTO_LEARN_DIVINE_INSPIRATION && !player.isGM()))
+				if ((sk == null) || ((sk.getId() == CommonSkill.DIVINE_INSPIRATION.getId()) && !Config.AUTO_LEARN_DIVINE_INSPIRATION && !player.isGM()))
 				{
 					unLearnable++;
 					continue;

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortSiegeManager.java

@@ -35,7 +35,6 @@ import javolution.util.FastMap;
 
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.model.CombatFlag;
 import com.l2jserver.gameserver.model.FortSiegeSpawn;
 import com.l2jserver.gameserver.model.L2Clan;
@@ -45,6 +44,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.FortSiege;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
@@ -72,8 +72,8 @@ public final class FortSiegeManager
 	
 	public final void addSiegeSkills(L2PcInstance character)
 	{
-		character.addSkill(SkillData.FrequentSkill.SEAL_OF_RULER.getSkill(), false);
-		character.addSkill(SkillData.FrequentSkill.BUILD_HEADQUARTERS.getSkill(), false);
+		character.addSkill(CommonSkill.SEAL_OF_RULER.getSkill(), false);
+		character.addSkill(CommonSkill.BUILD_HEADQUARTERS.getSkill(), false);
 	}
 	
 	/**
@@ -152,8 +152,8 @@ public final class FortSiegeManager
 	
 	public final void removeSiegeSkills(L2PcInstance character)
 	{
-		character.removeSkill(SkillData.FrequentSkill.SEAL_OF_RULER.getSkill());
-		character.removeSkill(SkillData.FrequentSkill.BUILD_HEADQUARTERS.getSkill());
+		character.removeSkill(CommonSkill.SEAL_OF_RULER.getSkill());
+		character.removeSkill(CommonSkill.BUILD_HEADQUARTERS.getSkill());
 	}
 	
 	private final void load()

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/CursedWeapon.java

@@ -29,7 +29,6 @@ import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.SkillData;
-import com.l2jserver.gameserver.datatables.SkillData.FrequentSkill;
 import com.l2jserver.gameserver.datatables.TransformData;
 import com.l2jserver.gameserver.instancemanager.CursedWeaponsManager;
 import com.l2jserver.gameserver.model.L2Party.messageType;
@@ -39,6 +38,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.interfaces.INamable;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.Earthquake;
@@ -335,10 +335,10 @@ public class CursedWeapon implements INamable
 		_player.addSkill(skill, false);
 		
 		// Void Burst, Void Flow
-		_player.addSkill(FrequentSkill.VOID_BURST.getSkill(), false);
-		_player.addTransformSkill(FrequentSkill.VOID_BURST.getId());
-		_player.addSkill(FrequentSkill.VOID_FLOW.getSkill(), false);
-		_player.addTransformSkill(FrequentSkill.VOID_FLOW.getId());
+		_player.addSkill(CommonSkill.VOID_BURST.getSkill(), false);
+		_player.addTransformSkill(CommonSkill.VOID_BURST.getId());
+		_player.addSkill(CommonSkill.VOID_FLOW.getSkill(), false);
+		_player.addTransformSkill(CommonSkill.VOID_FLOW.getId());
 		_player.sendSkillList();
 	}
 	
@@ -375,8 +375,8 @@ public class CursedWeapon implements INamable
 	public void removeSkill()
 	{
 		_player.removeSkill(_skillId);
-		_player.removeSkill(SkillData.FrequentSkill.VOID_BURST.getSkill().getId());
-		_player.removeSkill(SkillData.FrequentSkill.VOID_FLOW.getSkill().getId());
+		_player.removeSkill(CommonSkill.VOID_BURST.getSkill().getId());
+		_player.removeSkill(CommonSkill.VOID_FLOW.getSkill().getId());
 		_player.untransform();
 		_player.sendSkillList();
 	}

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

@@ -106,6 +106,7 @@ import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.EffectScope;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.SkillChannelized;
@@ -4998,7 +4999,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		{
 			if (getLevel() > (target.getLevel() + 8))
 			{
-				Skill skill = SkillData.FrequentSkill.RAID_CURSE2.getSkill();
+				Skill skill = CommonSkill.RAID_CURSE2.getSkill();
 				
 				if (skill != null)
 				{
@@ -6058,7 +6059,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 					{
 						if (skill.isMagic())
 						{
-							Skill tempSkill = SkillData.FrequentSkill.RAID_CURSE.getSkill();
+							Skill tempSkill = CommonSkill.RAID_CURSE.getSkill();
 							if (tempSkill != null)
 							{
 								abortAttack();
@@ -6073,7 +6074,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 						}
 						else
 						{
-							Skill tempSkill = SkillData.FrequentSkill.RAID_CURSE2.getSkill();
+							Skill tempSkill = CommonSkill.RAID_CURSE2.getSkill();
 							if (tempSkill != null)
 							{
 								abortAttack();
@@ -6731,9 +6732,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	public int getMaxBuffCount()
 	{
 		int count = Config.BUFFS_MAX_AMOUNT;
-		if (isAffectedBySkill(Skill.SKILL_DIVINE_INSPIRATION))
+		if (isAffectedBySkill(CommonSkill.DIVINE_INSPIRATION.getId()))
 		{
-			final BuffInfo info = getEffectList().getBuffInfoBySkillId(Skill.SKILL_DIVINE_INSPIRATION);
+			final BuffInfo info = getEffectList().getBuffInfoBySkillId(CommonSkill.DIVINE_INSPIRATION.getId());
 			for (AbstractEffect effect : info.getEffects())
 			{
 				count += (int) effect.getValue();

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

@@ -85,7 +85,6 @@ import com.l2jserver.gameserver.datatables.NpcData;
 import com.l2jserver.gameserver.datatables.PetDataTable;
 import com.l2jserver.gameserver.datatables.RecipeData;
 import com.l2jserver.gameserver.datatables.SkillData;
-import com.l2jserver.gameserver.datatables.SkillData.FrequentSkill;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.HtmlActionScope;
@@ -236,6 +235,7 @@ import com.l2jserver.gameserver.model.quest.QuestState;
 import com.l2jserver.gameserver.model.quest.State;
 import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.model.stats.Formulas;
@@ -2025,12 +2025,12 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public boolean hasDwarvenCraft()
 	{
-		return getSkillLevel(Skill.SKILL_CREATE_DWARVEN) >= 1;
+		return getSkillLevel(CommonSkill.CREATE_DWARVEN.getId()) >= 1;
 	}
 	
 	public int getDwarvenCraft()
 	{
-		return getSkillLevel(Skill.SKILL_CREATE_DWARVEN);
+		return getSkillLevel(CommonSkill.CREATE_DWARVEN.getId());
 	}
 	
 	/**
@@ -2038,12 +2038,12 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public boolean hasCommonCraft()
 	{
-		return getSkillLevel(Skill.SKILL_CREATE_COMMON) >= 1;
+		return getSkillLevel(CommonSkill.CREATE_COMMON.getId()) >= 1;
 	}
 	
 	public int getCommonCraft()
 	{
-		return getSkillLevel(Skill.SKILL_CREATE_COMMON);
+		return getSkillLevel(CommonSkill.CREATE_COMMON.getId());
 	}
 	
 	/**
@@ -2332,16 +2332,16 @@ public final class L2PcInstance extends L2Playable
 		weaponPenalty = weaponPenalty - expertiseLevel - bonus;
 		weaponPenalty = Math.min(Math.max(weaponPenalty, 0), 4);
 		
-		if ((getExpertiseWeaponPenalty() != weaponPenalty) || (getSkillLevel(FrequentSkill.WEAPON_GRADE_PENALTY.getId()) != weaponPenalty))
+		if ((getExpertiseWeaponPenalty() != weaponPenalty) || (getSkillLevel(CommonSkill.WEAPON_GRADE_PENALTY.getId()) != weaponPenalty))
 		{
 			_expertiseWeaponPenalty = weaponPenalty;
 			if (_expertiseWeaponPenalty > 0)
 			{
-				addSkill(SkillData.getInstance().getSkill(FrequentSkill.WEAPON_GRADE_PENALTY.getId(), _expertiseWeaponPenalty));
+				addSkill(SkillData.getInstance().getSkill(CommonSkill.WEAPON_GRADE_PENALTY.getId(), _expertiseWeaponPenalty));
 			}
 			else
 			{
-				removeSkill(getKnownSkill(FrequentSkill.WEAPON_GRADE_PENALTY.getId()), false, true);
+				removeSkill(getKnownSkill(CommonSkill.WEAPON_GRADE_PENALTY.getId()), false, true);
 			}
 			changed = true;
 		}
@@ -2350,16 +2350,16 @@ public final class L2PcInstance extends L2Playable
 		armorPenalty = armorPenalty - expertiseLevel - bonus;
 		armorPenalty = Math.min(Math.max(armorPenalty, 0), 4);
 		
-		if ((getExpertiseArmorPenalty() != armorPenalty) || (getSkillLevel(FrequentSkill.ARMOR_GRADE_PENALTY.getId()) != armorPenalty))
+		if ((getExpertiseArmorPenalty() != armorPenalty) || (getSkillLevel(CommonSkill.ARMOR_GRADE_PENALTY.getId()) != armorPenalty))
 		{
 			_expertiseArmorPenalty = armorPenalty;
 			if (_expertiseArmorPenalty > 0)
 			{
-				addSkill(SkillData.getInstance().getSkill(FrequentSkill.ARMOR_GRADE_PENALTY.getId(), _expertiseArmorPenalty));
+				addSkill(SkillData.getInstance().getSkill(CommonSkill.ARMOR_GRADE_PENALTY.getId(), _expertiseArmorPenalty));
 			}
 			else
 			{
-				removeSkill(getKnownSkill(FrequentSkill.ARMOR_GRADE_PENALTY.getId()), false, true);
+				removeSkill(getKnownSkill(CommonSkill.ARMOR_GRADE_PENALTY.getId()), false, true);
 			}
 			changed = true;
 		}
@@ -5801,7 +5801,7 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public boolean isLucky()
 	{
-		return (getLevel() <= 9) && isAffectedBySkill(Skill.SKILL_LUCKY);
+		return (getLevel() <= 9) && isAffectedBySkill(CommonSkill.LUCKY.getId());
 	}
 	
 	/**
@@ -5831,7 +5831,7 @@ public final class L2PcInstance extends L2Playable
 		// Get the level of the L2PcInstance
 		final int lvl = getLevel();
 		
-		int clan_luck = getSkillLevel(Skill.SKILL_CLAN_LUCK);
+		int clan_luck = getSkillLevel(CommonSkill.CLAN_LUCK.getId());
 		
 		double clan_luck_modificator = 1.0;
 		
@@ -6755,7 +6755,7 @@ public final class L2PcInstance extends L2Playable
 		clearPetData();
 		if (wasFlying)
 		{
-			removeSkill(SkillData.FrequentSkill.WYVERN_BREATH.getSkill());
+			removeSkill(CommonSkill.WYVERN_BREATH.getSkill());
 		}
 		broadcastPacket(new Ride(this));
 		setMountObjectID(0);
@@ -9342,7 +9342,7 @@ public final class L2PcInstance extends L2Playable
 			{
 				if (isNoble())
 				{
-					addSkill(FrequentSkill.STRIDER_SIEGE_ASSAULT.getSkill(), false);
+					addSkill(CommonSkill.STRIDER_SIEGE_ASSAULT.getSkill(), false);
 				}
 				break;
 			}
@@ -13916,7 +13916,7 @@ public final class L2PcInstance extends L2Playable
 			learn = SkillTreesData.getInstance().getClassSkill(e.getKey(), e.getValue().getLevel() % 100, getClassId());
 			if (learn != null)
 			{
-				int lvlDiff = e.getKey() == Skill.SKILL_EXPERTISE ? 0 : 9;
+				int lvlDiff = e.getKey() == CommonSkill.EXPERTISE.getId() ? 0 : 9;
 				if (getLevel() < (learn.getGetLevel() - lvlDiff))
 				{
 					deacreaseSkillLevel(e.getValue(), lvlDiff);

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2WeddingManagerInstance.java

@@ -20,7 +20,6 @@ package com.l2jserver.gameserver.model.actor.instance;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.Announcements;
-import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.instancemanager.CoupleManager;
 import com.l2jserver.gameserver.model.L2World;
@@ -28,6 +27,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.entity.Couple;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -137,7 +137,7 @@ public class L2WeddingManagerInstance extends L2Npc
 			ptarget.broadcastPacket(MSU);
 			
 			// Fireworks
-			Skill skill = SkillData.FrequentSkill.LARGE_FIREWORK.getSkill();
+			Skill skill = CommonSkill.LARGE_FIREWORK.getSkill();
 			if (skill != null)
 			{
 				MSU = new MagicSkillUse(player, player, 2025, 1, 1, 0);

+ 78 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/CommonSkill.java

@@ -0,0 +1,78 @@
+/*
+ * 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.skills;
+
+import com.l2jserver.gameserver.model.holders.SkillHolder;
+
+/**
+ * An Enum to hold some important references to commonly used skills
+ * @author DrHouse
+ */
+public enum CommonSkill
+{
+	RAID_CURSE(4215, 1),
+	RAID_CURSE2(4515, 1),
+	SEAL_OF_RULER(246, 1),
+	BUILD_HEADQUARTERS(247, 1),
+	WYVERN_BREATH(4289, 1),
+	STRIDER_SIEGE_ASSAULT(325, 1),
+	FIREWORK(5965, 1),
+	LARGE_FIREWORK(2025, 1),
+	BLESSING_OF_PROTECTION(5182, 1),
+	VOID_BURST(3630, 1),
+	VOID_FLOW(3631, 1),
+	THE_VICTOR_OF_WAR(5074, 1),
+	THE_VANQUISHED_OF_WAR(5075, 1),
+	SPECIAL_TREE_RECOVERY_BONUS(2139, 1),
+	WEAPON_GRADE_PENALTY(6209, 1),
+	ARMOR_GRADE_PENALTY(6213, 1),
+	CUBIC_MASTERY(143, 1),
+	CREATE_DWARVEN(172, 1),
+	LUCKY(194, 1),
+	EXPERTISE(239, 1),
+	CRYSTALLIZE(248, 1),
+	CLAN_LUCK(390, 1),
+	ONYX_BEAST_TRANSFORMATION(617, 1),
+	CREATE_COMMON(1320, 1),
+	DIVINE_INSPIRATION(1405, 1),
+	SERVITOR_SHARE(1557, 1),
+	CARAVANS_SECRET_MEDICINE(2341, 1);
+	
+	private final SkillHolder _holder;
+	
+	private CommonSkill(int id, int level)
+	{
+		_holder = new SkillHolder(id, level);
+	}
+	
+	public int getId()
+	{
+		return _holder.getSkillId();
+	}
+	
+	public int getLevel()
+	{
+		return _holder.getSkillLvl();
+	}
+	
+	public Skill getSkill()
+	{
+		return _holder.getSkill();
+	}
+}

+ 2 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/skills/Skill.java

@@ -77,19 +77,6 @@ public final class Skill implements IChanceSkillTrigger, IIdentifiable
 	
 	private static final L2Object[] EMPTY_TARGET_LIST = new L2Object[0];
 	
-	public static final int SKILL_CUBIC_MASTERY = 143;
-	public static final int SKILL_CREATE_DWARVEN = 172;
-	public static final int SKILL_LUCKY = 194;
-	public static final int SKILL_EXPERTISE = 239;
-	public static final int SKILL_CRYSTALLIZE = 248;
-	public static final int SKILL_CLAN_LUCK = 390;
-	public static final int SKILL_ONYX_BEAST_TRANSFORMATION = 617;
-	public static final int SKILL_CREATE_COMMON = 1320;
-	public static final int SKILL_DIVINE_INSPIRATION = 1405;
-	public static final int SKILL_SERVITOR_SHARE = 1557;
-	public static final int SKILL_CARAVANS_SECRET_MEDICINE = 2341;
-	public static final int SKILL_NPC_RACE = 4416;
-	
 	/** Skill ID. */
 	private final int _id;
 	/** Skill level. */
@@ -1424,7 +1411,7 @@ public final class Skill implements IChanceSkillTrigger, IIdentifiable
 			
 			// Support for buff sharing feature.
 			// Avoiding Servitor Share since it's implementation already "shares" the effect.
-			if (addContinuousEffects && effected.isPlayer() && effected.hasServitor() && isContinuous() && !isDebuff() && (getId() != SKILL_SERVITOR_SHARE))
+			if (addContinuousEffects && effected.isPlayer() && effected.hasServitor() && isContinuous() && !isDebuff() && (getId() != CommonSkill.SERVITOR_SHARE.getId()))
 			{
 				applyEffects(effector, effected.getSummon(), false, 0);
 			}
@@ -1654,7 +1641,7 @@ public final class Skill implements IChanceSkillTrigger, IIdentifiable
 	 */
 	public boolean canBeStolen()
 	{
-		return !isPassive() && !isToggle() && !isDebuff() && !isHeroSkill() && !isGMSkill() && !(isStatic() && (getId() != SKILL_CARAVANS_SECRET_MEDICINE)) && canBeDispeled() && (getId() != SKILL_SERVITOR_SHARE);
+		return !isPassive() && !isToggle() && !isDebuff() && !isHeroSkill() && !isGMSkill() && !(isStatic() && (getId() != CommonSkill.CARAVANS_SECRET_MEDICINE.getId())) && canBeDispeled() && (getId() != CommonSkill.SERVITOR_SHARE.getId());
 	}
 	
 	public boolean isClanSkill()

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

@@ -26,7 +26,6 @@ import com.l2jserver.gameserver.TaskPriority;
 import com.l2jserver.gameserver.cache.HtmCache;
 import com.l2jserver.gameserver.communitybbs.Manager.RegionBBSManager;
 import com.l2jserver.gameserver.datatables.AdminTable;
-import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
@@ -60,6 +59,7 @@ import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
@@ -332,18 +332,18 @@ public class EnterWorld extends L2GameClientPacket
 			{
 				if (cabal == SevenSigns.getInstance().getSealOwner(SevenSigns.SEAL_STRIFE))
 				{
-					activeChar.addSkill(SkillData.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
+					activeChar.addSkill(CommonSkill.THE_VICTOR_OF_WAR.getSkill());
 				}
 				else
 				{
-					activeChar.addSkill(SkillData.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
+					activeChar.addSkill(CommonSkill.THE_VANQUISHED_OF_WAR.getSkill());
 				}
 			}
 		}
 		else
 		{
-			activeChar.removeSkill(SkillData.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
-			activeChar.removeSkill(SkillData.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
+			activeChar.removeSkill(CommonSkill.THE_VICTOR_OF_WAR.getSkill());
+			activeChar.removeSkill(CommonSkill.THE_VANQUISHED_OF_WAR.getSkill());
 		}
 		
 		if (Config.ENABLE_VITALITY && Config.RECOVER_VITALITY_ON_RECONNECT)

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

@@ -40,6 +40,7 @@ import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.quest.QuestState;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AcquireSkillDone;
@@ -433,7 +434,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 					return false;
 				}
 				
-				if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == Skill.SKILL_DIVINE_INSPIRATION))
+				if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == CommonSkill.DIVINE_INSPIRATION.getId()))
 				{
 					return true;
 				}
@@ -445,7 +446,7 @@ public final class RequestAcquireSkill extends L2GameClientPacket
 					{
 						if (player.getSkillLevel(skill.getSkillId()) != skill.getSkillLvl())
 						{
-							if (skill.getSkillId() == Skill.SKILL_ONYX_BEAST_TRANSFORMATION)
+							if (skill.getSkillId() == CommonSkill.ONYX_BEAST_TRANSFORMATION.getId())
 							{
 								player.sendPacket(SystemMessageId.YOU_MUST_LEARN_ONYX_BEAST_SKILL);
 							}

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

@@ -26,7 +26,7 @@ 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.skills.Skill;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
@@ -80,7 +80,7 @@ public final class RequestCrystallizeItem extends L2GameClientPacket
 			return;
 		}
 		
-		int skillLevel = activeChar.getSkillLevel(Skill.SKILL_CRYSTALLIZE);
+		int skillLevel = activeChar.getSkillLevel(CommonSkill.CRYSTALLIZE.getId());
 		if (skillLevel <= 0)
 		{
 			activeChar.sendPacket(SystemMessageId.CRYSTALLIZE_LEVEL_TOO_LOW);

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

@@ -24,7 +24,6 @@ import java.util.logging.Logger;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.datatables.EnchantItemData;
-import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.items.L2Armor;
@@ -33,6 +32,7 @@ import com.l2jserver.gameserver.model.items.enchant.EnchantResultType;
 import com.l2jserver.gameserver.model.items.enchant.EnchantScroll;
 import com.l2jserver.gameserver.model.items.enchant.EnchantSupportItem;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.EnchantResult;
@@ -214,7 +214,7 @@ public final class RequestEnchantItem extends L2GameClientPacket
 						sm.addItemName(item);
 						activeChar.broadcastPacket(sm);
 						
-						Skill skill = SkillData.FrequentSkill.FIREWORK.getSkill();
+						Skill skill = CommonSkill.FIREWORK.getSkill();
 						if (skill != null)
 						{
 							activeChar.broadcastPacket(new MagicSkillUse(activeChar, activeChar, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));

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

@@ -25,7 +25,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.L2SkillLearn;
 import com.l2jserver.gameserver.model.base.AcquireSkillType;
 import com.l2jserver.gameserver.model.holders.ItemHolder;
-import com.l2jserver.gameserver.model.skills.Skill;
+import com.l2jserver.gameserver.model.skills.CommonSkill;
 
 /**
  * Acquire Skill Info server packet implementation.
@@ -80,7 +80,7 @@ public class AcquireSkillInfo extends L2GameServerPacket
 		{
 			for (ItemHolder item : skillLearn.getRequiredItems())
 			{
-				if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == Skill.SKILL_DIVINE_INSPIRATION))
+				if (!Config.DIVINE_SP_BOOK_NEEDED && (_id == CommonSkill.DIVINE_INSPIRATION.getId()))
 				{
 					continue;
 				}