Kaynağa Gözat

BETA: Removed `L2SkillType` class and skill handlers.
* Renamed `SkillTable` class to `SkillData`.
* Renamed `SkillData#getInfo` method to `SkillData#getSkill`.
* Renamed `L2Skill` class to `Skill`.
* Renamed `L2SkillOpType` class to `SkillOperateType`.
* Cleaned up `Skill` class removed all final modifiers from methods and made class final

Reviewed by: !UnAfraid, St3eT, Zoey76

Nos 11 yıl önce
ebeveyn
işleme
3e22051816
100 değiştirilmiş dosya ile 775 ekleme ve 960 silme
  1. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/GameServer.java
  2. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/RecipeController.java
  3. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/SevenSigns.java
  4. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/AbstractAI.java
  5. 39 39
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2AttackableAI.java
  6. 72 79
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2CharacterAI.java
  7. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2ControllableMobAI.java
  8. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2DoorAI.java
  9. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2FortSiegeGuardAI.java
  10. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2PlayableAI.java
  11. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2PlayerAI.java
  12. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2SiegeGuardAI.java
  13. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2SummonAI.java
  14. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2VehicleAI.java
  15. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/BotReportTable.java
  16. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/CharSummonTable.java
  17. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/EnchantSkillGroupsData.java
  18. 7 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcData.java
  19. 19 19
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillData.java
  20. 51 51
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTreesData.java
  21. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonEffectsTable.java
  22. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonSkillsTable.java
  23. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentBase.java
  24. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentEngine.java
  25. 19 19
      L2J_Server_BETA/java/com/l2jserver/gameserver/engines/skills/DocumentSkill.java
  26. 0 45
      L2J_Server_BETA/java/com/l2jserver/gameserver/handler/ISkillHandler.java
  27. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/handler/ITargetTypeHandler.java
  28. 0 79
      L2J_Server_BETA/java/com/l2jserver/gameserver/handler/SkillHandler.java
  29. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DuelManager.java
  30. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/FortSiegeManager.java
  31. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/SiegeManager.java
  32. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/TerritoryWarManager.java
  33. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/ChanceCondition.java
  34. 8 15
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/ChanceSkillList.java
  35. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/CharEffectList.java
  36. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/CursedWeapon.java
  37. 33 33
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Clan.java
  38. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2PetData.java
  39. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2WorldRegion.java
  40. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/TimeStamp.java
  41. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Attackable.java
  42. 65 84
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Character.java
  43. 14 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java
  44. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Playable.java
  45. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Summon.java
  46. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/CharEvents.java
  47. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/listeners/IDamageDealtEventListener.java
  48. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/listeners/IDamageReceivedEventListener.java
  49. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/listeners/ISkillUseEventListener.java
  50. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ArtefactInstance.java
  51. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2BabyPetInstance.java
  52. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ClanHallManagerInstance.java
  53. 30 31
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2CubicInstance.java
  54. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DecoyInstance.java
  55. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DoorInstance.java
  56. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FishermanInstance.java
  57. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FortCommanderInstance.java
  58. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FortManagerInstance.java
  59. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2NpcBufferInstance.java
  60. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2NpcInstance.java
  61. 68 68
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  62. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java
  63. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2QuestGuardInstance.java
  64. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java
  65. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2SiegeFlagInstance.java
  66. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2StaticObjectInstance.java
  67. 14 14
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2TamedBeastInstance.java
  68. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2TerritoryWardInstance.java
  69. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2TrapInstance.java
  70. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2WeddingManagerInstance.java
  71. 10 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/stat/CharStat.java
  72. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/stat/PetStat.java
  73. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/FlyToLocationTask.java
  74. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/MagicUseTask.java
  75. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/QueuedMagicUseTask.java
  76. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/UsePotionTask.java
  77. 11 16
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/cubics/CubicAction.java
  78. 5 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/cubics/CubicHeal.java
  79. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2CharTemplate.java
  80. 11 11
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java
  81. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/transform/Transform.java
  82. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionPlayerActiveSkillId.java
  83. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionPlayerCanSweep.java
  84. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/conditions/ConditionTargetActiveSkillId.java
  85. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/BlockCheckerEngine.java
  86. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java
  87. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Duel.java
  88. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/TvTEvent.java
  89. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/EffectDurationHolder.java
  90. 7 7
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/PlayerSkillHolder.java
  91. 5 5
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/SkillHolder.java
  92. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/SkillUseHolder.java
  93. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/SummonRequestHolder.java
  94. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/interfaces/ISkillsHolder.java
  95. 7 13
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/itemcontainer/Inventory.java
  96. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Armor.java
  97. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Item.java
  98. 7 17
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/items/L2Weapon.java
  99. 4 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/olympiad/AbstractOlympiadGame.java
  100. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/options/Options.java

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/GameServer.java

@@ -78,7 +78,7 @@ import com.l2jserver.gameserver.datatables.RecipeData;
 import com.l2jserver.gameserver.datatables.SecondaryAuthData;
 import com.l2jserver.gameserver.datatables.SiegeScheduleData;
 import com.l2jserver.gameserver.datatables.SkillLearnData;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.datatables.SpawnTable;
 import com.l2jserver.gameserver.datatables.StaticObjects;
@@ -225,7 +225,7 @@ public class GameServer
 		EffectHandler.getInstance().executeScript();
 		EnchantSkillGroupsData.getInstance();
 		SkillTreesData.getInstance();
-		SkillTable.getInstance();
+		SkillData.getInstance();
 		SummonSkillsTable.getInstance();
 		
 		printSection("Items");

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/RecipeController.java

@@ -38,7 +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.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -176,7 +176,7 @@ public class RecipeController
 		protected final L2RecipeList _recipeList;
 		protected final L2PcInstance _player; // "crafter"
 		protected final L2PcInstance _target; // "customer"
-		protected final L2Skill _skill;
+		protected final Skill _skill;
 		protected final int _skillId;
 		protected final int _skillLevel;
 		protected int _creationPasses = 1;
@@ -194,7 +194,7 @@ public class RecipeController
 			_recipeList = pRecipeList;
 			
 			_isValid = false;
-			_skillId = _recipeList.isDwarvenRecipe() ? L2Skill.SKILL_CREATE_DWARVEN : L2Skill.SKILL_CREATE_COMMON;
+			_skillId = _recipeList.isDwarvenRecipe() ? Skill.SKILL_CREATE_DWARVEN : Skill.SKILL_CREATE_COMMON;
 			_skillLevel = _player.getSkillLevel(_skillId);
 			_skill = _player.getKnownSkill(_skillId);
 			

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

@@ -34,7 +34,7 @@ import javolution.util.FastMap;
 
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.datatables.SkillTable;
+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;
@@ -1678,12 +1678,12 @@ public class SevenSigns
 				{
 					if (cabal == _strifeOwner)
 					{
-						character.addSkill(SkillTable.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
+						character.addSkill(SkillData.FrequentSkill.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(SkillTable.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
+						character.addSkill(SkillData.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
 					}
 				}
 			}
@@ -1704,8 +1704,8 @@ public class SevenSigns
 			if (character != null)
 			{
 				// Remove SevenSigns' buffs/debuffs.
-				character.removeSkill(SkillTable.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
-				character.removeSkill(SkillTable.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
+				character.removeSkill(SkillData.FrequentSkill.THE_VICTOR_OF_WAR.getSkill());
+				character.removeSkill(SkillData.FrequentSkill.THE_VANQUISHED_OF_WAR.getSkill());
 			}
 			return true;
 		}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/AbstractAI.java

@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.AutoAttackStart;
 import com.l2jserver.gameserver.network.serverpackets.AutoAttackStop;
@@ -155,7 +155,7 @@ public abstract class AbstractAI implements Ctrl
 	protected L2Character _followTarget;
 	
 	/** The skill we are currently casting by INTENTION_CAST */
-	L2Skill _skill;
+	Skill _skill;
 	
 	/** Different internal state flags */
 	private int _moveToPawnTimeout;
@@ -286,7 +286,7 @@ public abstract class AbstractAI implements Ctrl
 				onIntentionAttack((L2Character) arg0);
 				break;
 			case AI_INTENTION_CAST:
-				onIntentionCast((L2Skill) arg0, (L2Object) arg1);
+				onIntentionCast((Skill) arg0, (L2Object) arg1);
 				break;
 			case AI_INTENTION_MOVE_TO:
 				onIntentionMoveTo((Location) arg0);
@@ -435,7 +435,7 @@ public abstract class AbstractAI implements Ctrl
 	
 	protected abstract void onIntentionAttack(L2Character target);
 	
-	protected abstract void onIntentionCast(L2Skill skill, L2Object target);
+	protected abstract void onIntentionCast(Skill skill, L2Object target);
 	
 	protected abstract void onIntentionMoveTo(Location destination);
 	

+ 39 - 39
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2AttackableAI.java

@@ -58,7 +58,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.util.Util;
@@ -92,8 +92,8 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 	private int timepass = 0;
 	private int chaostime = 0;
 	private final L2NpcTemplate _skillrender;
-	private List<L2Skill> shortRangeSkills = new ArrayList<>();
-	private List<L2Skill> longRangeSkills = new ArrayList<>();
+	private List<Skill> shortRangeSkills = new ArrayList<>();
+	private List<Skill> longRangeSkills = new ArrayList<>();
 	int lastBuffTick;
 	
 	/**
@@ -397,7 +397,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		// self and buffs
 		if ((lastBuffTick + 30) < GameTimeController.getInstance().getGameTicks())
 		{
-			for (L2Skill sk : _skillrender.getAISkills(AISkillScope.BUFF))
+			for (Skill sk : _skillrender.getAISkills(AISkillScope.BUFF))
 			{
 				if (cast(sk))
 				{
@@ -638,7 +638,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 			}
 			else if (Rnd.nextInt(RANDOM_WALK_RATE) == 0)
 			{
-				for (L2Skill sk : _skillrender.getAISkills(AISkillScope.BUFF))
+				for (Skill sk : _skillrender.getAISkills(AISkillScope.BUFF))
 				{
 					if (cast(sk))
 					{
@@ -653,7 +653,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 			int x1, y1, z1;
 			final int range = Config.MAX_DRIFT_RANGE;
 			
-			for (L2Skill sk : _skillrender.getAISkills(AISkillScope.BUFF))
+			for (Skill sk : _skillrender.getAISkills(AISkillScope.BUFF))
 			{
 				if (cast(sk))
 				{
@@ -835,10 +835,10 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		
 		final int combinedCollision = collision + mostHate.getTemplate().getCollisionRadius();
 		
-		List<L2Skill> aiSuicideSkills = _skillrender.getAISkills(AISkillScope.SUICIDE);
+		List<Skill> aiSuicideSkills = _skillrender.getAISkills(AISkillScope.SUICIDE);
 		if (!aiSuicideSkills.isEmpty() && ((int) ((npc.getCurrentHp() / npc.getMaxHp()) * 100) < 30))
 		{
-			final L2Skill skill = aiSuicideSkills.get(Rnd.nextInt(aiSuicideSkills.size()));
+			final Skill skill = aiSuicideSkills.get(Rnd.nextInt(aiSuicideSkills.size()));
 			if (Util.checkIfInRange(skill.getAffectRange(), getActiveChar(), mostHate, false) && (Rnd.get(100) < Rnd.get(npc.getMinSkillChance(), npc.getMaxSkillChance())))
 			{
 				if (cast(skill))
@@ -846,7 +846,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					return;
 				}
 				
-				for (L2Skill sk : aiSuicideSkills)
+				for (Skill sk : aiSuicideSkills)
 				{
 					if (cast(sk))
 					{
@@ -1002,7 +1002,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		{
 			// -------------------------------------------------------------------------------
 			// Heal Condition
-			List<L2Skill> aiHealSkills = _skillrender.getAISkills(AISkillScope.HEAL);
+			List<Skill> aiHealSkills = _skillrender.getAISkills(AISkillScope.HEAL);
 			if (!aiHealSkills.isEmpty())
 			{
 				double percentage = (npc.getCurrentHp() / npc.getMaxHp()) * 100;
@@ -1011,7 +1011,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					L2Character leader = npc.getLeader();
 					if ((leader != null) && !leader.isDead() && (Rnd.get(100) > ((leader.getCurrentHp() / leader.getMaxHp()) * 100)))
 					{
-						for (L2Skill sk : aiHealSkills)
+						for (Skill sk : aiHealSkills)
 						{
 							if (sk.getTargetType() == L2TargetType.SELF)
 							{
@@ -1039,7 +1039,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				if (Rnd.get(100) < ((100 - percentage) / 3))
 				{
-					for (L2Skill sk : aiHealSkills)
+					for (Skill sk : aiHealSkills)
 					{
 						if (!checkSkillCastConditions(sk))
 						{
@@ -1051,7 +1051,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 						return;
 					}
 				}
-				for (L2Skill sk : aiHealSkills)
+				for (Skill sk : aiHealSkills)
 				{
 					if (!checkSkillCastConditions(sk))
 					{
@@ -1094,7 +1094,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 			}
 			// -------------------------------------------------------------------------------
 			// Res Skill Condition
-			List<L2Skill> aiResSkills = _skillrender.getAISkills(AISkillScope.RES);
+			List<Skill> aiResSkills = _skillrender.getAISkills(AISkillScope.RES);
 			if (!aiResSkills.isEmpty())
 			{
 				if (npc.isMinion())
@@ -1102,7 +1102,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					L2Character leader = npc.getLeader();
 					if ((leader != null) && leader.isDead())
 					{
-						for (L2Skill sk : aiResSkills)
+						for (Skill sk : aiResSkills)
 						{
 							if (sk.getTargetType() == L2TargetType.SELF)
 							{
@@ -1127,7 +1127,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 						}
 					}
 				}
-				for (L2Skill sk : aiResSkills)
+				for (Skill sk : aiResSkills)
 				{
 					if (!checkSkillCastConditions(sk))
 					{
@@ -1195,17 +1195,17 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		setTimepass(0);
 		// --------------------------------------------------------------------------------
 		// Skill Use
-		List<L2Skill> aiGeneralSkills = _skillrender.getAISkills(AISkillScope.GENERAL);
+		List<Skill> aiGeneralSkills = _skillrender.getAISkills(AISkillScope.GENERAL);
 		if (!aiGeneralSkills.isEmpty())
 		{
 			if (Rnd.get(100) < Rnd.get(npc.getMinSkillChance(), npc.getMaxSkillChance()))
 			{
-				L2Skill skills = aiGeneralSkills.get(Rnd.nextInt(aiGeneralSkills.size()));
+				Skill skills = aiGeneralSkills.get(Rnd.nextInt(aiGeneralSkills.size()));
 				if (cast(skills))
 				{
 					return;
 				}
-				for (L2Skill sk : aiGeneralSkills)
+				for (Skill sk : aiGeneralSkills)
 				{
 					if (cast(sk))
 					{
@@ -1218,15 +1218,15 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 			// Long/Short Range skill usage.
 			if (npc.hasLSkill() || npc.hasSSkill())
 			{
-				final List<L2Skill> shortRangeSkills = shortRangeSkillRender();
+				final List<Skill> shortRangeSkills = shortRangeSkillRender();
 				if (!shortRangeSkills.isEmpty() && npc.hasSSkill() && (dist2 <= 150) && (Rnd.get(100) <= npc.getSSkillChance()))
 				{
-					final L2Skill shortRangeSkill = shortRangeSkills.get(Rnd.get(shortRangeSkills.size()));
+					final Skill shortRangeSkill = shortRangeSkills.get(Rnd.get(shortRangeSkills.size()));
 					if ((shortRangeSkill != null) && cast(shortRangeSkill))
 					{
 						return;
 					}
-					for (L2Skill sk : shortRangeSkills)
+					for (Skill sk : shortRangeSkills)
 					{
 						if ((sk != null) && cast(sk))
 						{
@@ -1235,15 +1235,15 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 					}
 				}
 				
-				final List<L2Skill> longRangeSkills = longRangeSkillRender();
+				final List<Skill> longRangeSkills = longRangeSkillRender();
 				if (!longRangeSkills.isEmpty() && npc.hasLSkill() && (dist2 > 150) && (Rnd.get(100) <= npc.getLSkillChance()))
 				{
-					final L2Skill longRangeSkill = longRangeSkills.get(Rnd.get(longRangeSkills.size()));
+					final Skill longRangeSkill = longRangeSkills.get(Rnd.get(longRangeSkills.size()));
 					if ((longRangeSkill != null) && cast(longRangeSkill))
 					{
 						return;
 					}
-					for (L2Skill sk : longRangeSkills)
+					for (Skill sk : longRangeSkills)
 					{
 						if ((sk != null) && cast(sk))
 						{
@@ -1288,7 +1288,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 			{
 				case -1:
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.GENERAL))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.GENERAL))
 					{
 						if (cast(sk))
 						{
@@ -1299,7 +1299,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				case 1:
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.ATTACK))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.ATTACK))
 					{
 						if (cast(sk))
 						{
@@ -1310,7 +1310,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				}
 				default:
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.GENERAL))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.GENERAL))
 					{
 						if (sk.getId() == getActiveChar().getPrimarySkillId())
 						{
@@ -1328,7 +1328,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		_accessor.doAttack(getAttackTarget());
 	}
 	
-	private boolean cast(L2Skill sk)
+	private boolean cast(Skill sk)
 	{
 		if (sk == null)
 		{
@@ -1850,7 +1850,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				int random = Rnd.get(100);
 				if (!getAttackTarget().isImmobilized() && (random < 2))
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.IMMOBILIZE))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.IMMOBILIZE))
 					{
 						if (!checkSkillCastConditions(sk) || (((sk.getCastRange() + npc.getTemplate().getCollisionRadius() + getAttackTarget().getTemplate().getCollisionRadius()) <= dist2) && !canAura(sk)))
 						{
@@ -1875,7 +1875,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				// Same as Above, but with Mute/FEAR etc....
 				if (random < 5)
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.COT))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.COT))
 					{
 						if (!checkSkillCastConditions(sk) || (((sk.getCastRange() + npc.getTemplate().getCollisionRadius() + getAttackTarget().getTemplate().getCollisionRadius()) <= dist2) && !canAura(sk)))
 						{
@@ -1899,7 +1899,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				// -------------------------------------------------------------
 				if (random < 8)
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.DEBUFF))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.DEBUFF))
 					{
 						if (!checkSkillCastConditions(sk) || (((sk.getCastRange() + npc.getTemplate().getCollisionRadius() + getAttackTarget().getTemplate().getCollisionRadius()) <= dist2) && !canAura(sk)))
 						{
@@ -1924,7 +1924,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				// Some side effect skill like CANCEL or NEGATE
 				if (random < 9)
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.NEGATIVE))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.NEGATIVE))
 					{
 						if (!checkSkillCastConditions(sk) || (((sk.getCastRange() + npc.getTemplate().getCollisionRadius() + getAttackTarget().getTemplate().getCollisionRadius()) <= dist2) && !canAura(sk)))
 						{
@@ -1949,7 +1949,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 				// Start ATK SKILL when nothing can be done
 				if ((npc.isMovementDisabled() || (npc.getAiType() == AIType.MAGE) || (npc.getAiType() == AIType.HEALER)))
 				{
-					for (L2Skill sk : _skillrender.getAISkills(AISkillScope.ATTACK))
+					for (Skill sk : _skillrender.getAISkills(AISkillScope.ATTACK))
 					{
 						if (!checkSkillCastConditions(sk) || (((sk.getCastRange() + npc.getTemplate().getCollisionRadius() + getAttackTarget().getTemplate().getCollisionRadius()) <= dist2) && !canAura(sk)))
 						{
@@ -2037,7 +2037,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 	 * @param skill the skill to check.
 	 * @return {@code true} if the skill is available for casting {@code false} otherwise.
 	 */
-	private boolean checkSkillCastConditions(L2Skill skill)
+	private boolean checkSkillCastConditions(Skill skill)
 	{
 		// Not enough MP.
 		if (skill.getMpConsume() >= getActiveChar().getCurrentMp())
@@ -2057,7 +2057,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		return true;
 	}
 	
-	private L2Character effectTargetReconsider(L2Skill sk, boolean positive)
+	private L2Character effectTargetReconsider(Skill sk, boolean positive)
 	{
 		if (sk == null)
 		{
@@ -2249,7 +2249,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		return null;
 	}
 	
-	private L2Character skillTargetReconsider(L2Skill sk)
+	private L2Character skillTargetReconsider(Skill sk)
 	{
 		double dist = 0;
 		double dist2 = 0;
@@ -2584,7 +2584,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		}
 	}
 	
-	private List<L2Skill> longRangeSkillRender()
+	private List<Skill> longRangeSkillRender()
 	{
 		longRangeSkills = _skillrender.getAISkills(AISkillScope.LONG_RANGE);
 		if (longRangeSkills.isEmpty())
@@ -2594,7 +2594,7 @@ public class L2AttackableAI extends L2CharacterAI implements Runnable
 		return longRangeSkills;
 	}
 	
-	private List<L2Skill> shortRangeSkillRender()
+	private List<Skill> shortRangeSkillRender()
 	{
 		shortRangeSkills = _skillrender.getAISkills(AISkillScope.SHORT_RANGE);
 		if (shortRangeSkills.isEmpty())

+ 72 - 79
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2CharacterAI.java

@@ -54,8 +54,7 @@ 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.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -101,9 +100,9 @@ public class L2CharacterAI extends AbstractAI
 	{
 		private final L2Character _activeChar;
 		private final L2Object _target;
-		private final L2Skill _skill;
+		private final Skill _skill;
 		
-		public CastTask(L2Character actor, L2Skill skill, L2Object target)
+		public CastTask(L2Character actor, Skill skill, L2Object target)
 		{
 			_activeChar = actor;
 			_target = target;
@@ -315,7 +314,7 @@ public class L2CharacterAI extends AbstractAI
 	 * </ul>
 	 */
 	@Override
-	protected void onIntentionCast(L2Skill skill, L2Object target)
+	protected void onIntentionCast(Skill skill, L2Object target)
 	{
 		if ((getIntention() == AI_INTENTION_REST) && skill.isMagic())
 		{
@@ -334,7 +333,7 @@ public class L2CharacterAI extends AbstractAI
 		}
 	}
 	
-	protected void changeIntentionToCast(L2Skill skill, L2Object target)
+	protected void changeIntentionToCast(Skill skill, L2Object target)
 	{
 		// Set the AI cast target
 		setCastTarget((L2Character) target);
@@ -1213,19 +1212,19 @@ public class L2CharacterAI extends AbstractAI
 		public boolean isHealer = false;
 		public boolean isFighter = false;
 		public boolean cannotMoveOnLand = false;
-		public List<L2Skill> generalSkills = new FastList<>();
-		public List<L2Skill> buffSkills = new FastList<>();
+		public List<Skill> generalSkills = new FastList<>();
+		public List<Skill> buffSkills = new FastList<>();
 		public int lastBuffTick = 0;
-		public List<L2Skill> debuffSkills = new FastList<>();
+		public List<Skill> debuffSkills = new FastList<>();
 		public int lastDebuffTick = 0;
-		public List<L2Skill> cancelSkills = new FastList<>();
-		public List<L2Skill> healSkills = new FastList<>();
+		public List<Skill> cancelSkills = new FastList<>();
+		public List<Skill> healSkills = new FastList<>();
 		// public List<L2Skill> trickSkills = new FastList<>();
-		public List<L2Skill> generalDisablers = new FastList<>();
-		public List<L2Skill> sleepSkills = new FastList<>();
-		public List<L2Skill> rootSkills = new FastList<>();
-		public List<L2Skill> muteSkills = new FastList<>();
-		public List<L2Skill> resurrectSkills = new FastList<>();
+		public List<Skill> generalDisablers = new FastList<>();
+		public List<Skill> sleepSkills = new FastList<>();
+		public List<Skill> rootSkills = new FastList<>();
+		public List<Skill> muteSkills = new FastList<>();
+		public List<Skill> resurrectSkills = new FastList<>();
 		public boolean hasHealOrResurrect = false;
 		public boolean hasLongRangeSkills = false;
 		public boolean hasLongRangeDamageSkills = false;
@@ -1274,7 +1273,7 @@ public class L2CharacterAI extends AbstractAI
 				}
 			}
 			// skill analysis
-			for (L2Skill sk : _actor.getAllSkills())
+			for (Skill sk : _actor.getAllSkills())
 			{
 				if (sk.isPassive())
 				{
@@ -1283,11 +1282,7 @@ public class L2CharacterAI extends AbstractAI
 				int castRange = sk.getCastRange();
 				boolean hasLongRangeDamageSkill = false;
 				
-				if ((sk.getSkillType() == L2SkillType.NOTDONE) || (sk.getSkillType() == L2SkillType.COREDONE))
-				{
-					continue;
-				}
-				else if (sk.isContinuous())
+				if (sk.isContinuous())
 				{
 					if (!sk.isDebuff())
 					{
@@ -1299,63 +1294,61 @@ public class L2CharacterAI extends AbstractAI
 					}
 					continue;
 				}
-				else
+				
+				if (sk.hasEffectType(L2EffectType.DISPEL, L2EffectType.DISPEL_BY_SLOT))
 				{
-					if (sk.hasEffectType(L2EffectType.DISPEL, L2EffectType.DISPEL_BY_SLOT))
-					{
-						cancelSkills.add(sk);
-					}
-					else if (sk.hasEffectType(L2EffectType.HEAL, L2EffectType.HEAL_PERCENT))
-					{
-						healSkills.add(sk);
-						hasHealOrResurrect = true;
-					}
-					else if (sk.hasEffectType(L2EffectType.SLEEP))
-					{
-						sleepSkills.add(sk);
-					}
-					else if (sk.hasEffectType(L2EffectType.STUN, L2EffectType.PARALYZE))
-					{
-						// hardcoding petrification until improvements are made to
-						// EffectTemplate... petrification is totally different for
-						// AI than paralyze
-						switch (sk.getId())
-						{
-							case 367:
-							case 4111:
-							case 4383:
-							case 4616:
-							case 4578:
-								sleepSkills.add(sk);
-								break;
-							default:
-								generalDisablers.add(sk);
-								break;
-						}
-					}
-					else if (sk.hasEffectType(L2EffectType.ROOT))
-					{
-						rootSkills.add(sk);
-					}
-					else if (sk.hasEffectType(L2EffectType.FEAR))
-					{
-						debuffSkills.add(sk);
-					}
-					else if (sk.hasEffectType(L2EffectType.MUTE))
-					{
-						muteSkills.add(sk);
-					}
-					else if (sk.hasEffectType(L2EffectType.RESURRECTION))
-					{
-						resurrectSkills.add(sk);
-						hasHealOrResurrect = true;
-					}
-					else
+					cancelSkills.add(sk);
+				}
+				else if (sk.hasEffectType(L2EffectType.HEAL, L2EffectType.HEAL_PERCENT))
+				{
+					healSkills.add(sk);
+					hasHealOrResurrect = true;
+				}
+				else if (sk.hasEffectType(L2EffectType.SLEEP))
+				{
+					sleepSkills.add(sk);
+				}
+				else if (sk.hasEffectType(L2EffectType.STUN, L2EffectType.PARALYZE))
+				{
+					// hardcoding petrification until improvements are made to
+					// EffectTemplate... petrification is totally different for
+					// AI than paralyze
+					switch (sk.getId())
 					{
-						generalSkills.add(sk);
-						hasLongRangeDamageSkill = true;
+						case 367:
+						case 4111:
+						case 4383:
+						case 4616:
+						case 4578:
+							sleepSkills.add(sk);
+							break;
+						default:
+							generalDisablers.add(sk);
+							break;
 					}
 				}
+				else if (sk.hasEffectType(L2EffectType.ROOT))
+				{
+					rootSkills.add(sk);
+				}
+				else if (sk.hasEffectType(L2EffectType.FEAR))
+				{
+					debuffSkills.add(sk);
+				}
+				else if (sk.hasEffectType(L2EffectType.MUTE))
+				{
+					muteSkills.add(sk);
+				}
+				else if (sk.hasEffectType(L2EffectType.RESURRECTION))
+				{
+					resurrectSkills.add(sk);
+					hasHealOrResurrect = true;
+				}
+				else
+				{
+					generalSkills.add(sk);
+					hasLongRangeDamageSkill = true;
+				}
 				
 				if (castRange > 70)
 				{
@@ -1468,7 +1461,7 @@ public class L2CharacterAI extends AbstractAI
 		}
 	}
 	
-	public boolean canAura(L2Skill sk)
+	public boolean canAura(Skill sk)
 	{
 		if ((sk.getTargetType() == L2TargetType.AURA) || (sk.getTargetType() == L2TargetType.BEHIND_AURA) || (sk.getTargetType() == L2TargetType.FRONT_AURA) || (sk.getTargetType() == L2TargetType.AURA_CORPSE_MOB))
 		{
@@ -1483,7 +1476,7 @@ public class L2CharacterAI extends AbstractAI
 		return false;
 	}
 	
-	public boolean canAOE(L2Skill sk)
+	public boolean canAOE(Skill sk)
 	{
 		if (sk.hasEffectType(L2EffectType.DISPEL, L2EffectType.DISPEL_BY_SLOT))
 		{
@@ -1614,7 +1607,7 @@ public class L2CharacterAI extends AbstractAI
 		return false;
 	}
 	
-	public boolean canParty(L2Skill sk)
+	public boolean canParty(Skill sk)
 	{
 		if (sk.getTargetType() == L2TargetType.PARTY)
 		{
@@ -1645,7 +1638,7 @@ public class L2CharacterAI extends AbstractAI
 		return false;
 	}
 	
-	public boolean isParty(L2Skill sk)
+	public boolean isParty(Skill sk)
 	{
 		return (sk.getTargetType() == L2TargetType.PARTY);
 	}

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2ControllableMobAI.java

@@ -38,7 +38,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2ControllableMobInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
@@ -149,7 +149,7 @@ public class L2ControllableMobAI extends L2AttackableAI
 			int max_range = 0;
 			// check distant skills
 			
-			for (L2Skill sk : _actor.getAllSkills())
+			for (Skill sk : _actor.getAllSkills())
 			{
 				if (Util.checkIfInRange(sk.getCastRange(), _actor, getAttackTarget(), true) && !_actor.isSkillDisabled(sk) && (_actor.getCurrentMp() > _actor.getStat().getMpConsume(sk)))
 				{
@@ -197,7 +197,7 @@ public class L2ControllableMobAI extends L2AttackableAI
 		if (!_actor.isMuted() && (dist2 > ((range + 20) * (range + 20))))
 		{
 			// check distant skills
-			for (L2Skill sk : _actor.getAllSkills())
+			for (Skill sk : _actor.getAllSkills())
 			{
 				int castRange = sk.getCastRange();
 				
@@ -237,7 +237,7 @@ public class L2ControllableMobAI extends L2AttackableAI
 		if (!_actor.isMuted() && (dist2 > ((range + 20) * (range + 20))))
 		{
 			// check distant skills
-			for (L2Skill sk : _actor.getAllSkills())
+			for (Skill sk : _actor.getAllSkills())
 			{
 				int castRange = sk.getCastRange();
 				
@@ -309,7 +309,7 @@ public class L2ControllableMobAI extends L2AttackableAI
 			if (!_actor.isMuted() && (dist2 > ((range + 20) * (range + 20))))
 			{
 				// check distant skills
-				for (L2Skill sk : _actor.getAllSkills())
+				for (Skill sk : _actor.getAllSkills())
 				{
 					int castRange = sk.getCastRange();
 					
@@ -351,7 +351,7 @@ public class L2ControllableMobAI extends L2AttackableAI
 			
 			if (!_actor.isMuted() && (Rnd.nextInt(5) == 3))
 			{
-				for (L2Skill sk : _actor.getAllSkills())
+				for (Skill sk : _actor.getAllSkills())
 				{
 					int castRange = sk.getCastRange();
 					

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

@@ -24,7 +24,7 @@ import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2DefenderInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author mkizub
@@ -58,7 +58,7 @@ public class L2DoorAI extends L2CharacterAI
 	}
 	
 	@Override
-	protected void onIntentionCast(L2Skill skill, L2Object target)
+	protected void onIntentionCast(Skill skill, L2Object target)
 	{
 	}
 	

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2FortSiegeGuardAI.java

@@ -41,7 +41,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2FortCommanderInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
@@ -442,7 +442,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
 					// heal friends
 					if (!_actor.isAttackingDisabled() && (cha.getCurrentHp() < (cha.getMaxHp() * 0.6)) && (_actor.getCurrentHp() > (_actor.getMaxHp() / 2)) && (_actor.getCurrentMp() > (_actor.getMaxMp() / 2)) && cha.isInCombat())
 					{
-						for (L2Skill sk : _selfAnalysis.healSkills)
+						for (Skill sk : _selfAnalysis.healSkills)
 						{
 							if (_actor.getCurrentMp() < sk.getMpConsume())
 							{
@@ -501,7 +501,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
 				// heal friends
 				if (_selfAnalysis.hasHealOrResurrect && !_actor.isAttackingDisabled() && (npc.getCurrentHp() < (npc.getMaxHp() * 0.6)) && (_actor.getCurrentHp() > (_actor.getMaxHp() / 2)) && (_actor.getCurrentMp() > (_actor.getMaxMp() / 2)) && npc.isInCombat())
 				{
-					for (L2Skill sk : _selfAnalysis.healSkills)
+					for (Skill sk : _selfAnalysis.healSkills)
 					{
 						if (_actor.getCurrentMp() < sk.getMpConsume())
 						{
@@ -541,7 +541,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
 	private void attackPrepare()
 	{
 		// Get all information needed to choose between physical or magical attack
-		Collection<L2Skill> skills = null;
+		Collection<Skill> skills = null;
 		double dist_2 = 0;
 		int range = 0;
 		L2DefenderInstance sGuard;
@@ -598,7 +598,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
 		if (!_actor.isMuted() && (dist_2 > (range * range)))
 		{
 			// check for long ranged skills and heal/buff skills
-			for (L2Skill sk : skills)
+			for (Skill sk : skills)
 			{
 				int castRange = sk.getCastRange();
 				
@@ -744,7 +744,7 @@ public class L2FortSiegeGuardAI extends L2CharacterAI implements Runnable
 			// check for close combat skills && heal/buff skills
 			if (!_actor.isMuted() && (Rnd.nextInt(100) <= 5))
 			{
-				for (L2Skill sk : skills)
+				for (Skill sk : skills)
 				{
 					int castRange = sk.getCastRange();
 					

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

@@ -22,7 +22,7 @@ import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
 import com.l2jserver.gameserver.model.actor.L2Playable;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
@@ -83,7 +83,7 @@ public abstract class L2PlayableAI extends L2CharacterAI
 	}
 	
 	@Override
-	protected void onIntentionCast(L2Skill skill, L2Object target)
+	protected void onIntentionCast(Skill skill, L2Object target)
 	{
 		if ((target instanceof L2Playable) && skill.isBad())
 		{

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

@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2StaticObjectInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 
 public class L2PlayerAI extends L2PlayableAI
@@ -68,7 +68,7 @@ public class L2PlayerAI extends L2PlayableAI
 	{
 		// do nothing unless CAST intention
 		// however, forget interrupted actions when starting to use an offensive skill
-		if ((intention != AI_INTENTION_CAST) || ((arg0 != null) && ((L2Skill) arg0).isBad()))
+		if ((intention != AI_INTENTION_CAST) || ((arg0 != null) && ((Skill) arg0).isBad()))
 		{
 			_nextIntention = null;
 			super.changeIntention(intention, arg0, arg1);

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/ai/L2SiegeGuardAI.java

@@ -40,7 +40,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2NpcInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.util.Util;
 import com.l2jserver.util.Rnd;
 
@@ -421,7 +421,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
 					// heal friends
 					if (!_actor.isAttackingDisabled() && (cha.getCurrentHp() < (cha.getMaxHp() * 0.6)) && (_actor.getCurrentHp() > (_actor.getMaxHp() / 2)) && (_actor.getCurrentMp() > (_actor.getMaxMp() / 2)) && cha.isInCombat())
 					{
-						for (L2Skill sk : _selfAnalysis.healSkills)
+						for (Skill sk : _selfAnalysis.healSkills)
 						{
 							if (_actor.getCurrentMp() < sk.getMpConsume())
 							{
@@ -480,7 +480,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
 				// heal friends
 				if (_selfAnalysis.hasHealOrResurrect && !_actor.isAttackingDisabled() && (npc.getCurrentHp() < (npc.getMaxHp() * 0.6)) && (_actor.getCurrentHp() > (_actor.getMaxHp() / 2)) && (_actor.getCurrentMp() > (_actor.getMaxMp() / 2)) && npc.isInCombat())
 				{
-					for (L2Skill sk : _selfAnalysis.healSkills)
+					for (Skill sk : _selfAnalysis.healSkills)
 					{
 						if (_actor.getCurrentMp() < sk.getMpConsume())
 						{
@@ -520,7 +520,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
 	private void attackPrepare()
 	{
 		// Get all information needed to choose between physical or magical attack
-		Collection<L2Skill> skills = null;
+		Collection<Skill> skills = null;
 		double dist_2 = 0;
 		int range = 0;
 		L2DefenderInstance sGuard = (L2DefenderInstance) _actor;
@@ -571,7 +571,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
 		if (!_actor.isMuted() && (dist_2 > (range * range)))
 		{
 			// check for long ranged skills and heal/buff skills
-			for (L2Skill sk : skills)
+			for (Skill sk : skills)
 			{
 				int castRange = sk.getCastRange();
 				
@@ -713,7 +713,7 @@ public class L2SiegeGuardAI extends L2CharacterAI implements Runnable
 			// check for close combat skills && heal/buff skills
 			if (!_actor.isMuted() && (Rnd.nextInt(100) <= 5))
 			{
-				for (L2Skill sk : skills)
+				for (Skill sk : skills)
 				{
 					int castRange = sk.getCastRange();
 					

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

@@ -31,7 +31,7 @@ import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Character.AIAccessor;
 import com.l2jserver.gameserver.model.actor.L2Summon;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.util.Rnd;
 
 public class L2SummonAI extends L2PlayableAI implements Runnable
@@ -264,7 +264,7 @@ public class L2SummonAI extends L2PlayableAI implements Runnable
 	}
 	
 	@Override
-	protected void onIntentionCast(L2Skill skill, L2Object target)
+	protected void onIntentionCast(Skill skill, L2Object target)
 	{
 		if (getIntention() == AI_INTENTION_ATTACK)
 		{

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

@@ -21,7 +21,7 @@ package com.l2jserver.gameserver.ai;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Vehicle;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author DS
@@ -43,7 +43,7 @@ public abstract class L2VehicleAI extends L2CharacterAI
 	}
 	
 	@Override
-	protected void onIntentionCast(L2Skill skill, L2Object target)
+	protected void onIntentionCast(Skill skill, L2Object target)
 	{
 	}
 	

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/BotReportTable.java

@@ -23,7 +23,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -365,7 +365,7 @@ public final class BotReportTable
 	 */
 	void addPunishment(int neededReports, int skillId, int skillLevel, int sysMsg)
 	{
-		L2Skill sk = SkillTable.getInstance().getInfo(skillId, skillLevel);
+		Skill sk = SkillData.getInstance().getSkill(skillId, skillLevel);
 		if (sk != null)
 		{
 			_punishments.put(neededReports, new PunishHolder(sk, sysMsg));
@@ -577,10 +577,10 @@ public final class BotReportTable
 	
 	class PunishHolder
 	{
-		final L2Skill _punish;
+		final Skill _punish;
 		final int _systemMessageId;
 		
-		PunishHolder(final L2Skill sk, final int sysMsg)
+		PunishHolder(final Skill sk, final int sysMsg)
 		{
 			_punish = sk;
 			_systemMessageId = sysMsg;

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

@@ -35,7 +35,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2ServitorInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.PetItemList;
 
 /**
@@ -193,7 +193,7 @@ public class CharSummonTable
 			ps.setInt(2, skillId);
 			try (ResultSet rs = ps.executeQuery())
 			{
-				L2Skill skill;
+				Skill skill;
 				
 				while (rs.next())
 				{
@@ -201,7 +201,7 @@ public class CharSummonTable
 					int curMp = rs.getInt("curMp");
 					int time = rs.getInt("time");
 					
-					skill = SkillTable.getInstance().getInfo(skillId, activeChar.getSkillLevel(skillId));
+					skill = SkillData.getInstance().getSkill(skillId, activeChar.getSkillLevel(skillId));
 					if (skill == null)
 					{
 						removeServitor(activeChar);

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

@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.L2EnchantSkillGroup.EnchantSkillHolder;
 import com.l2jserver.gameserver.model.L2EnchantSkillLearn;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * This class holds the Enchant Groups information.
@@ -151,7 +151,7 @@ public class EnchantSkillGroupsData extends DocumentParser
 	 * @param skill the skill
 	 * @return the skill enchantment for skill
 	 */
-	public L2EnchantSkillLearn getSkillEnchantmentForSkill(L2Skill skill)
+	public L2EnchantSkillLearn getSkillEnchantmentForSkill(Skill skill)
 	{
 		// there is enchantment for this skill and we have the required level of it
 		final L2EnchantSkillLearn esl = getSkillEnchantmentBySkillId(skill.getId());
@@ -187,7 +187,7 @@ public class EnchantSkillGroupsData extends DocumentParser
 	 * @param skill the skill
 	 * @return the enchant skill sp cost
 	 */
-	public int getEnchantSkillSpCost(L2Skill skill)
+	public int getEnchantSkillSpCost(Skill skill)
 	{
 		final L2EnchantSkillLearn enchantSkillLearn = _enchantSkillTrees.get(skill.getId());
 		if (enchantSkillLearn != null)
@@ -206,7 +206,7 @@ public class EnchantSkillGroupsData extends DocumentParser
 	 * @param skill the skill
 	 * @return the enchant skill Adena cost
 	 */
-	public int getEnchantSkillAdenaCost(L2Skill skill)
+	public int getEnchantSkillAdenaCost(Skill skill)
 	{
 		final L2EnchantSkillLearn enchantSkillLearn = _enchantSkillTrees.get(skill.getId());
 		if (enchantSkillLearn != null)
@@ -226,7 +226,7 @@ public class EnchantSkillGroupsData extends DocumentParser
 	 * @param skill the skill
 	 * @return the enchant skill rate
 	 */
-	public byte getEnchantSkillRate(L2PcInstance player, L2Skill skill)
+	public byte getEnchantSkillRate(L2PcInstance player, Skill skill)
 	{
 		final L2EnchantSkillLearn enchantSkillLearn = _enchantSkillTrees.get(skill.getId());
 		if (enchantSkillLearn != null)

+ 7 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/NpcData.java

@@ -50,8 +50,7 @@ import com.l2jserver.gameserver.model.drops.GroupedGeneralDropItem;
 import com.l2jserver.gameserver.model.drops.IDropItem;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author Nos
@@ -103,7 +102,7 @@ public class NpcData extends DocumentParser
 						final StatsSet set = new StatsSet();
 						final int npcId = parseInteger(attrs, "id");
 						Map<String, Object> parameters = null;
-						Map<Integer, L2Skill> skills = null;
+						Map<Integer, Skill> skills = null;
 						Set<Integer> clans = null;
 						Set<Integer> enemyClans = null;
 						Map<DropListScope, List<IDropItem>> dropLists = null;
@@ -320,7 +319,7 @@ public class NpcData extends DocumentParser
 											attrs = skill_list_node.getAttributes();
 											final int skillId = parseInteger(attrs, "id");
 											final int skillLevel = parseInteger(attrs, "level");
-											final L2Skill skill = SkillTable.getInstance().getInfo(skillId, skillLevel);
+											final Skill skill = SkillData.getInstance().getSkill(skillId, skillLevel);
 											if (skill != null)
 											{
 												skills.put(skill.getId(), skill);
@@ -484,8 +483,8 @@ public class NpcData extends DocumentParser
 						
 						if (skills != null)
 						{
-							Map<AISkillScope, List<L2Skill>> aiSkillLists = null;
-							for (L2Skill skill : skills.values())
+							Map<AISkillScope, List<Skill>> aiSkillLists = null;
+							for (Skill skill : skills.values())
 							{
 								if (!skill.isPassive())
 								{
@@ -517,7 +516,7 @@ public class NpcData extends DocumentParser
 												aiSkillScopes.add(shortOrLongRangeScope);
 											}
 										}
-										else if (skill.getSkillType() == L2SkillType.DUMMY)
+										else
 										{
 											if (skill.hasEffectType(L2EffectType.DISPEL, L2EffectType.DISPEL_BY_SLOT))
 											{
@@ -570,7 +569,7 @@ public class NpcData extends DocumentParser
 									
 									for (AISkillScope aiSkillScope : aiSkillScopes)
 									{
-										List<L2Skill> aiSkills = aiSkillLists.get(aiSkillScope);
+										List<Skill> aiSkills = aiSkillLists.get(aiSkillScope);
 										if (aiSkills == null)
 										{
 											aiSkills = new ArrayList<>();

+ 19 - 19
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillTable.java → L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SkillData.java

@@ -26,7 +26,7 @@ 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.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 import gnu.trove.list.array.TIntArrayList;
 import gnu.trove.map.hash.TIntIntHashMap;
@@ -34,15 +34,15 @@ import gnu.trove.map.hash.TIntIntHashMap;
 /**
  * Skill table.
  */
-public final class SkillTable
+public final class SkillData
 {
-	private static Logger _log = Logger.getLogger(SkillTable.class.getName());
+	private static Logger _log = Logger.getLogger(SkillData.class.getName());
 	
-	private final Map<Integer, L2Skill> _skills = new HashMap<>();
+	private final Map<Integer, Skill> _skills = new HashMap<>();
 	private final TIntIntHashMap _skillMaxLevel = new TIntIntHashMap();
 	private final TIntArrayList _enchantable = new TIntArrayList();
 	
-	protected SkillTable()
+	protected SkillData()
 	{
 		load();
 	}
@@ -60,7 +60,7 @@ public final class SkillTable
 		DocumentEngine.getInstance().loadAllSkills(_skills);
 		
 		_skillMaxLevel.clear();
-		for (L2Skill skill : _skills.values())
+		for (Skill skill : _skills.values())
 		{
 			final int skillId = skill.getId();
 			final int skillLvl = skill.getLevel();
@@ -90,7 +90,7 @@ public final class SkillTable
 	 * @param skill The L2Skill to be hashed
 	 * @return getSkillHashCode(skill.getId(), skill.getLevel())
 	 */
-	public static int getSkillHashCode(L2Skill skill)
+	public static int getSkillHashCode(Skill skill)
 	{
 		return getSkillHashCode(skill.getId(), skill.getLevel());
 	}
@@ -106,9 +106,9 @@ public final class SkillTable
 		return (skillId * 1021) + skillLevel;
 	}
 	
-	public L2Skill getInfo(int skillId, int level)
+	public Skill getSkill(int skillId, int level)
 	{
-		final L2Skill result = _skills.get(getSkillHashCode(skillId, level));
+		final Skill result = _skills.get(getSkillHashCode(skillId, level));
 		if (result != null)
 		{
 			return result;
@@ -145,21 +145,21 @@ public final class SkillTable
 	 * @param hasCastle
 	 * @return an array with siege skills. If addNoble == true, will add also Advanced headquarters.
 	 */
-	public L2Skill[] getSiegeSkills(boolean addNoble, boolean hasCastle)
+	public Skill[] getSiegeSkills(boolean addNoble, boolean hasCastle)
 	{
-		L2Skill[] temp = new L2Skill[2 + (addNoble ? 1 : 0) + (hasCastle ? 2 : 0)];
+		Skill[] temp = new Skill[2 + (addNoble ? 1 : 0) + (hasCastle ? 2 : 0)];
 		int i = 0;
-		temp[i++] = _skills.get(SkillTable.getSkillHashCode(246, 1));
-		temp[i++] = _skills.get(SkillTable.getSkillHashCode(247, 1));
+		temp[i++] = _skills.get(SkillData.getSkillHashCode(246, 1));
+		temp[i++] = _skills.get(SkillData.getSkillHashCode(247, 1));
 		
 		if (addNoble)
 		{
-			temp[i++] = _skills.get(SkillTable.getSkillHashCode(326, 1));
+			temp[i++] = _skills.get(SkillData.getSkillHashCode(326, 1));
 		}
 		if (hasCastle)
 		{
-			temp[i++] = _skills.get(SkillTable.getSkillHashCode(844, 1));
-			temp[i++] = _skills.get(SkillTable.getSkillHashCode(845, 1));
+			temp[i++] = _skills.get(SkillData.getSkillHashCode(844, 1));
+			temp[i++] = _skills.get(SkillData.getSkillHashCode(845, 1));
 		}
 		return temp;
 	}
@@ -204,19 +204,19 @@ public final class SkillTable
 			return _holder.getSkillLvl();
 		}
 		
-		public L2Skill getSkill()
+		public Skill getSkill()
 		{
 			return _holder.getSkill();
 		}
 	}
 	
-	public static SkillTable getInstance()
+	public static SkillData getInstance()
 	{
 		return SingletonHolder._instance;
 	}
 	
 	private static class SingletonHolder
 	{
-		protected static final SkillTable _instance = new SkillTable();
+		protected static final SkillData _instance = new SkillData();
 	}
 }

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

@@ -46,7 +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.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 import gnu.trove.map.hash.TIntObjectHashMap;
 
@@ -221,7 +221,7 @@ public final class SkillTreesData extends DocumentParser
 									}
 								}
 								
-								final int skillHashCode = SkillTable.getSkillHashCode(skillLearn.getSkillId(), skillLearn.getSkillLevel());
+								final int skillHashCode = SkillData.getSkillHashCode(skillLearn.getSkillId(), skillLearn.getSkillLevel());
 								switch (type)
 								{
 									case "classSkillTree":
@@ -422,13 +422,13 @@ public final class SkillTreesData extends DocumentParser
 	 * Gets the noble skill tree.
 	 * @return the complete Noble Skill Tree
 	 */
-	public Map<Integer, L2Skill> getNobleSkillTree()
+	public Map<Integer, Skill> getNobleSkillTree()
 	{
-		final Map<Integer, L2Skill> tree = new HashMap<>();
-		final SkillTable st = SkillTable.getInstance();
+		final Map<Integer, Skill> tree = new HashMap<>();
+		final SkillData st = SkillData.getInstance();
 		for (Entry<Integer, L2SkillLearn> e : _nobleSkillTree.entrySet())
 		{
-			tree.put(e.getKey(), st.getInfo(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
+			tree.put(e.getKey(), st.getSkill(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
 		}
 		return tree;
 	}
@@ -437,13 +437,13 @@ public final class SkillTreesData extends DocumentParser
 	 * Gets the hero skill tree.
 	 * @return the complete Hero Skill Tree
 	 */
-	public Map<Integer, L2Skill> getHeroSkillTree()
+	public Map<Integer, Skill> getHeroSkillTree()
 	{
-		final Map<Integer, L2Skill> tree = new HashMap<>();
-		final SkillTable st = SkillTable.getInstance();
+		final Map<Integer, Skill> tree = new HashMap<>();
+		final SkillData st = SkillData.getInstance();
 		for (Entry<Integer, L2SkillLearn> e : _heroSkillTree.entrySet())
 		{
-			tree.put(e.getKey(), st.getInfo(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
+			tree.put(e.getKey(), st.getSkill(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
 		}
 		return tree;
 	}
@@ -452,13 +452,13 @@ public final class SkillTreesData extends DocumentParser
 	 * Gets the Game Master skill tree.
 	 * @return the complete Game Master Skill Tree
 	 */
-	public Map<Integer, L2Skill> getGMSkillTree()
+	public Map<Integer, Skill> getGMSkillTree()
 	{
-		final Map<Integer, L2Skill> tree = new HashMap<>();
-		final SkillTable st = SkillTable.getInstance();
+		final Map<Integer, Skill> tree = new HashMap<>();
+		final SkillData st = SkillData.getInstance();
 		for (Entry<Integer, L2SkillLearn> e : _gameMasterSkillTree.entrySet())
 		{
-			tree.put(e.getKey(), st.getInfo(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
+			tree.put(e.getKey(), st.getSkill(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
 		}
 		return tree;
 	}
@@ -467,13 +467,13 @@ public final class SkillTreesData extends DocumentParser
 	 * Gets the Game Master Aura skill tree.
 	 * @return the complete Game Master Aura Skill Tree
 	 */
-	public Map<Integer, L2Skill> getGMAuraSkillTree()
+	public Map<Integer, Skill> getGMAuraSkillTree()
 	{
-		final Map<Integer, L2Skill> tree = new HashMap<>();
-		final SkillTable st = SkillTable.getInstance();
+		final Map<Integer, Skill> tree = new HashMap<>();
+		final SkillData st = SkillData.getInstance();
 		for (Entry<Integer, L2SkillLearn> e : _gameMasterAuraSkillTree.entrySet())
 		{
-			tree.put(e.getKey(), st.getInfo(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
+			tree.put(e.getKey(), st.getSkill(e.getValue().getSkillId(), e.getValue().getSkillLevel()));
 		}
 		return tree;
 	}
@@ -515,7 +515,7 @@ public final class SkillTreesData extends DocumentParser
 		{
 			if (((includeAutoGet && skill.isAutoGet()) || skill.isLearnedByNpc() || (includeByFs && skill.isLearnedByFS())) && (player.getLevel() >= skill.getGetLevel()))
 			{
-				final L2Skill oldSkill = holder.getKnownSkill(skill.getSkillId());
+				final Skill oldSkill = holder.getKnownSkill(skill.getSkillId());
 				if (oldSkill != null)
 				{
 					if (oldSkill.getLevel() == (skill.getSkillLevel() - 1))
@@ -532,7 +532,7 @@ public final class SkillTreesData extends DocumentParser
 		return result;
 	}
 	
-	public Collection<L2Skill> getAllAvailableSkills(L2PcInstance player, ClassId classId, boolean includeByFs, boolean includeAutoGet)
+	public Collection<Skill> getAllAvailableSkills(L2PcInstance player, ClassId classId, boolean includeByFs, boolean includeAutoGet)
 	{
 		// Get available skills
 		int unLearnable = 0;
@@ -542,8 +542,8 @@ public final class SkillTreesData extends DocumentParser
 		{
 			for (L2SkillLearn s : learnable)
 			{
-				L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
-				if ((sk == null) || ((sk.getId() == L2Skill.SKILL_DIVINE_INSPIRATION) && !Config.AUTO_LEARN_DIVINE_INSPIRATION && !player.isGM()))
+				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()))
 				{
 					unLearnable++;
 					continue;
@@ -584,7 +584,7 @@ public final class SkillTreesData extends DocumentParser
 			
 			if (skill.isAutoGet() && (player.getLevel() >= skill.getGetLevel()))
 			{
-				final L2Skill oldSkill = player.getSkills().get(skill.getSkillId());
+				final Skill oldSkill = player.getSkills().get(skill.getSkillId());
 				if (oldSkill != null)
 				{
 					if (oldSkill.getLevel() < skill.getSkillLevel())
@@ -620,7 +620,7 @@ public final class SkillTreesData extends DocumentParser
 			
 			if (skill.isLearnedByNpc() && (player.getLevel() >= skill.getGetLevel()))
 			{
-				final L2Skill oldSkill = player.getSkills().get(skill.getSkillId());
+				final Skill oldSkill = player.getSkills().get(skill.getSkillId());
 				if (oldSkill != null)
 				{
 					if (oldSkill.getLevel() == (skill.getSkillLevel() - 1))
@@ -647,7 +647,7 @@ public final class SkillTreesData extends DocumentParser
 		final List<L2SkillLearn> result = new ArrayList<>();
 		for (L2SkillLearn skill : _collectSkillTree.values())
 		{
-			final L2Skill oldSkill = player.getSkills().get(skill.getSkillId());
+			final Skill oldSkill = player.getSkills().get(skill.getSkillId());
 			if (oldSkill != null)
 			{
 				if (oldSkill.getLevel() == (skill.getSkillLevel() - 1))
@@ -707,7 +707,7 @@ public final class SkillTreesData extends DocumentParser
 		{
 			if ((player.getLevel() >= skill.getGetLevel()) && (skill.getRaces().isEmpty() || skill.getRaces().contains(race)))
 			{
-				final L2Skill oldSkill = player.getSkills().get(skill.getSkillId());
+				final Skill oldSkill = player.getSkills().get(skill.getSkillId());
 				if (oldSkill != null)
 				{
 					if (oldSkill.getLevel() == (skill.getSkillLevel() - 1))
@@ -736,7 +736,7 @@ public final class SkillTreesData extends DocumentParser
 		{
 			if (!skill.isResidencialSkill() && (clan.getLevel() >= skill.getGetLevel()))
 			{
-				final L2Skill oldSkill = clan.getSkills().get(skill.getSkillId());
+				final Skill oldSkill = clan.getSkills().get(skill.getSkillId());
 				if (oldSkill != null)
 				{
 					if (oldSkill.getLevel() == (skill.getSkillLevel() - 1))
@@ -789,7 +789,7 @@ public final class SkillTreesData extends DocumentParser
 					subClassConds = skill.getSubClassConditions();
 					if (!subClassConds.isEmpty() && (subClass.getClassIndex() <= subClassConds.size()) && (subClass.getClassIndex() == subClassConds.get(subClass.getClassIndex() - 1).getSlot()) && (subClassConds.get(subClass.getClassIndex() - 1).getLvl() <= subClass.getLevel()))
 					{
-						final L2Skill oldSkill = player.getSkills().get(skill.getSkillId());
+						final Skill oldSkill = player.getSkills().get(skill.getSkillId());
 						if (oldSkill != null)
 						{
 							if (oldSkill.getLevel() == (skill.getSkillLevel() - 1))
@@ -875,7 +875,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getTransformSkill(int id, int lvl)
 	{
-		return _transformSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _transformSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -887,7 +887,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getClassSkill(int id, int lvl, ClassId classId)
 	{
-		return getCompleteClassSkillTree(classId).get(SkillTable.getSkillHashCode(id, lvl));
+		return getCompleteClassSkillTree(classId).get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -898,7 +898,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getFishingSkill(int id, int lvl)
 	{
-		return _fishingSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _fishingSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -909,7 +909,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getPledgeSkill(int id, int lvl)
 	{
-		return _pledgeSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _pledgeSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -920,7 +920,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getSubPledgeSkill(int id, int lvl)
 	{
-		return _subPledgeSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _subPledgeSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -937,7 +937,7 @@ public final class SkillTreesData extends DocumentParser
 			final ClassId parentId = classId.getParent();
 			if (_transferSkillTrees.get(parentId) != null)
 			{
-				return _transferSkillTrees.get(parentId).get(SkillTable.getSkillHashCode(id, lvl));
+				return _transferSkillTrees.get(parentId).get(SkillData.getSkillHashCode(id, lvl));
 			}
 		}
 		return null;
@@ -951,7 +951,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getSubClassSkill(int id, int lvl)
 	{
-		return _subClassSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _subClassSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -962,7 +962,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getCommonSkill(int id, int lvl)
 	{
-		return _commonSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _commonSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -973,7 +973,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public L2SkillLearn getCollectSkill(int id, int lvl)
 	{
-		return _collectSkillTree.get(SkillTable.getSkillHashCode(id, lvl));
+		return _collectSkillTree.get(SkillData.getSkillHashCode(id, lvl));
 	}
 	
 	/**
@@ -1013,7 +1013,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public boolean isHeroSkill(int skillId, int skillLevel)
 	{
-		if (_heroSkillTree.containsKey(SkillTable.getSkillHashCode(skillId, skillLevel)))
+		if (_heroSkillTree.containsKey(SkillData.getSkillHashCode(skillId, skillLevel)))
 		{
 			return true;
 		}
@@ -1039,7 +1039,7 @@ public final class SkillTreesData extends DocumentParser
 		final Map<Integer, L2SkillLearn> gmSkills = new HashMap<>();
 		gmSkills.putAll(_gameMasterSkillTree);
 		gmSkills.putAll(_gameMasterAuraSkillTree);
-		if (gmSkills.containsKey(SkillTable.getSkillHashCode(skillId, skillLevel)))
+		if (gmSkills.containsKey(SkillData.getSkillHashCode(skillId, skillLevel)))
 		{
 			return true;
 		}
@@ -1062,7 +1062,7 @@ public final class SkillTreesData extends DocumentParser
 	 */
 	public boolean isClanSkill(int skillId, int skillLevel)
 	{
-		final int hashCode = SkillTable.getSkillHashCode(skillId, skillId);
+		final int hashCode = SkillData.getSkillHashCode(skillId, skillId);
 		return _pledgeSkillTree.containsKey(hashCode) || _subPledgeSkillTree.containsKey(hashCode);
 	}
 	
@@ -1074,10 +1074,10 @@ public final class SkillTreesData extends DocumentParser
 	public void addSkills(L2PcInstance gmchar, boolean auraSkills)
 	{
 		final Collection<L2SkillLearn> skills = auraSkills ? _gameMasterAuraSkillTree.values() : _gameMasterSkillTree.values();
-		final SkillTable st = SkillTable.getInstance();
+		final SkillData st = SkillData.getInstance();
 		for (L2SkillLearn sl : skills)
 		{
-			gmchar.addSkill(st.getInfo(sl.getSkillId(), sl.getSkillLevel()), false); // Don't Save GM skills to database
+			gmchar.addSkill(st.getSkill(sl.getSkillId(), sl.getSkillLevel()), false); // Don't Save GM skills to database
 		}
 	}
 	
@@ -1116,7 +1116,7 @@ public final class SkillTreesData extends DocumentParser
 			{
 				if (s.getRaces().contains(r))
 				{
-					list.add(SkillTable.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
+					list.add(SkillData.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
 				}
 			}
 			
@@ -1124,7 +1124,7 @@ public final class SkillTreesData extends DocumentParser
 			{
 				if (s.getRaces().contains(r))
 				{
-					list.add(SkillTable.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
+					list.add(SkillData.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
 				}
 			}
 			
@@ -1144,7 +1144,7 @@ public final class SkillTreesData extends DocumentParser
 		{
 			if (s.getRaces().isEmpty())
 			{
-				list.add(SkillTable.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
+				list.add(SkillData.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
 			}
 		}
 		
@@ -1152,7 +1152,7 @@ public final class SkillTreesData extends DocumentParser
 		{
 			if (s.getRaces().isEmpty())
 			{
-				list.add(SkillTable.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
+				list.add(SkillData.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
 			}
 		}
 		
@@ -1160,13 +1160,13 @@ public final class SkillTreesData extends DocumentParser
 		{
 			if (s.getRaces().isEmpty())
 			{
-				list.add(SkillTable.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
+				list.add(SkillData.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
 			}
 		}
 		
 		for (L2SkillLearn s : _collectSkillTree.values())
 		{
-			list.add(SkillTable.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
+			list.add(SkillData.getSkillHashCode(s.getSkillId(), s.getSkillLevel()));
 		}
 		
 		_allSkillsHashCodes = new int[list.size()];
@@ -1185,7 +1185,7 @@ public final class SkillTreesData extends DocumentParser
 	 * @param skill the skill to be verified
 	 * @return {@code true} if the skill is allowed to the given player
 	 */
-	public boolean isSkillAllowed(L2PcInstance player, L2Skill skill)
+	public boolean isSkillAllowed(L2PcInstance player, Skill skill)
 	{
 		if (skill.isExcludedFromCheck())
 		{
@@ -1203,8 +1203,8 @@ public final class SkillTreesData extends DocumentParser
 			return true;
 		}
 		
-		final int maxLvl = SkillTable.getInstance().getMaxLevel(skill.getId());
-		final int hashCode = SkillTable.getSkillHashCode(skill.getId(), Math.min(skill.getLevel(), maxLvl));
+		final int maxLvl = SkillData.getInstance().getMaxLevel(skill.getId());
+		final int hashCode = SkillData.getSkillHashCode(skill.getId(), Math.min(skill.getLevel(), maxLvl));
 		
 		if (Arrays.binarySearch(_skillsByClassIdHashCodes.get(player.getClassId().ordinal()), hashCode) >= 0)
 		{

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/datatables/SummonEffectsTable.java

@@ -21,7 +21,7 @@ package com.l2jserver.gameserver.datatables;
 import java.util.List;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 import gnu.trove.map.hash.TIntObjectHashMap;
 
@@ -62,16 +62,16 @@ public class SummonEffectsTable
 	
 	public class SummonEffect
 	{
-		L2Skill _skill;
+		Skill _skill;
 		int _effectCurTime;
 		
-		public SummonEffect(L2Skill skill, int effectCurTime)
+		public SummonEffect(Skill skill, int effectCurTime)
 		{
 			_skill = skill;
 			_effectCurTime = effectCurTime;
 		}
 		
-		public L2Skill getSkill()
+		public Skill getSkill()
 		{
 			return _skill;
 		}

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

@@ -62,7 +62,7 @@ public class SummonSkillsTable
 				
 				int id = rs.getInt("skillId");
 				int lvl = rs.getInt("skillLvl");
-				skillTree.put(SkillTable.getSkillHashCode(id, lvl + 1), new L2PetSkillLearn(id, lvl, rs.getInt("minLvl")));
+				skillTree.put(SkillData.getSkillHashCode(id, lvl + 1), new L2PetSkillLearn(id, lvl, rs.getInt("minLvl")));
 				count++;
 			}
 		}
@@ -104,7 +104,7 @@ public class SummonSkillsTable
 				}
 				
 				// formula usable for skill that have 10 or more skill levels
-				int maxLvl = SkillTable.getInstance().getMaxLevel(temp.getId());
+				int maxLvl = SkillData.getInstance().getMaxLevel(temp.getId());
 				if (lvl > maxLvl)
 				{
 					lvl = maxLvl;

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

@@ -127,7 +127,7 @@ 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.skills.EffectScope;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.funcs.FuncTemplate;
 import com.l2jserver.gameserver.model.skills.funcs.Lambda;
 import com.l2jserver.gameserver.model.skills.funcs.LambdaCalc;
@@ -295,9 +295,9 @@ public abstract class DocumentBase
 		{
 			((L2Item) template).attach(ft);
 		}
-		else if (template instanceof L2Skill)
+		else if (template instanceof Skill)
 		{
-			((L2Skill) template).attach(ft);
+			((Skill) template).attach(ft);
 		}
 		else if (template instanceof AbstractEffect)
 		{
@@ -345,9 +345,9 @@ public abstract class DocumentBase
 		{
 			((L2Item) template).attach(effect);
 		}
-		else if (template instanceof L2Skill)
+		else if (template instanceof Skill)
 		{
-			final L2Skill skill = (L2Skill) template;
+			final Skill skill = (Skill) template;
 			if (effectScope != null)
 			{
 				skill.addEffect(effectScope, effect);
@@ -1338,7 +1338,7 @@ public abstract class DocumentBase
 		// is it a table?
 		if (value.charAt(0) == '#')
 		{
-			if (template instanceof L2Skill)
+			if (template instanceof Skill)
 			{
 				return getTableValue(value);
 			}

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/DocumentEngine.java

@@ -26,11 +26,11 @@ import java.util.logging.Logger;
 import javolution.util.FastList;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.engines.items.DocumentItem;
 import com.l2jserver.gameserver.engines.skills.DocumentSkill;
 import com.l2jserver.gameserver.model.items.L2Item;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.util.file.filter.XMLFilter;
 
 /**
@@ -77,7 +77,7 @@ public class DocumentEngine
 		}
 	}
 	
-	public List<L2Skill> loadSkills(File file)
+	public List<Skill> loadSkills(File file)
 	{
 		if (file == null)
 		{
@@ -89,19 +89,19 @@ public class DocumentEngine
 		return doc.getSkills();
 	}
 	
-	public void loadAllSkills(final Map<Integer, L2Skill> allSkills)
+	public void loadAllSkills(final Map<Integer, Skill> allSkills)
 	{
 		int count = 0;
 		for (File file : _skillFiles)
 		{
-			List<L2Skill> s = loadSkills(file);
+			List<Skill> s = loadSkills(file);
 			if (s == null)
 			{
 				continue;
 			}
-			for (L2Skill skill : s)
+			for (Skill skill : s)
 			{
-				allSkills.put(SkillTable.getSkillHashCode(skill), skill);
+				allSkills.put(SkillData.getSkillHashCode(skill), skill);
 				count++;
 			}
 		}

+ 19 - 19
L2J_Server_BETA/java/com/l2jserver/gameserver/engines/skills/DocumentSkill.java

@@ -33,14 +33,14 @@ import com.l2jserver.gameserver.engines.DocumentBase;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.conditions.Condition;
 import com.l2jserver.gameserver.model.skills.EffectScope;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author mkizub
  */
 public class DocumentSkill extends DocumentBase
 {
-	public static class Skill
+	public static class SkillInfo
 	{
 		public int id;
 		public String name;
@@ -54,19 +54,19 @@ public class DocumentSkill extends DocumentBase
 		public StatsSet[] enchsets7;
 		public StatsSet[] enchsets8;
 		public int currentLevel;
-		public List<L2Skill> skills = new FastList<>();
-		public List<L2Skill> currentSkills = new FastList<>();
+		public List<Skill> skills = new FastList<>();
+		public List<Skill> currentSkills = new FastList<>();
 	}
 	
-	private Skill _currentSkill;
-	private final List<L2Skill> _skillsInFile = new FastList<>();
+	private SkillInfo _currentSkill;
+	private final List<Skill> _skillsInFile = new FastList<>();
 	
 	public DocumentSkill(File file)
 	{
 		super(file);
 	}
 	
-	private void setCurrentSkill(Skill skill)
+	private void setCurrentSkill(SkillInfo skill)
 	{
 		_currentSkill = skill;
 	}
@@ -77,7 +77,7 @@ public class DocumentSkill extends DocumentBase
 		return _currentSkill.sets[_currentSkill.currentLevel];
 	}
 	
-	public List<L2Skill> getSkills()
+	public List<Skill> getSkills()
 	{
 		return _skillsInFile;
 	}
@@ -121,7 +121,7 @@ public class DocumentSkill extends DocumentBase
 				{
 					if ("skill".equalsIgnoreCase(d.getNodeName()))
 					{
-						setCurrentSkill(new Skill());
+						setCurrentSkill(new SkillInfo());
 						parseSkill(d);
 						_skillsInFile.addAll(_currentSkill.skills);
 						resetTable();
@@ -130,7 +130,7 @@ public class DocumentSkill extends DocumentBase
 			}
 			else if ("skill".equalsIgnoreCase(n.getNodeName()))
 			{
-				setCurrentSkill(new Skill());
+				setCurrentSkill(new SkillInfo());
 				parseSkill(n);
 				_skillsInFile.addAll(_currentSkill.skills);
 			}
@@ -1498,7 +1498,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.sets[i];
 			try
 			{
-				_currentSkill.currentSkills.add(i, new L2Skill(set));
+				_currentSkill.currentSkills.add(i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1512,7 +1512,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets1[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1526,7 +1526,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets2[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1540,7 +1540,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets3[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1554,7 +1554,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets4[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1568,7 +1568,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets5[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1582,7 +1582,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets6[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1596,7 +1596,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets7[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)
@@ -1610,7 +1610,7 @@ public class DocumentSkill extends DocumentBase
 			set = _currentSkill.enchsets8[i];
 			try
 			{
-				_currentSkill.currentSkills.add(_count + i, new L2Skill(set));
+				_currentSkill.currentSkills.add(_count + i, new Skill(set));
 				count++;
 			}
 			catch (Exception e)

+ 0 - 45
L2J_Server_BETA/java/com/l2jserver/gameserver/handler/ISkillHandler.java

@@ -1,45 +0,0 @@
-/*
- * 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.handler;
-
-import java.util.logging.Logger;
-
-import com.l2jserver.gameserver.model.L2Object;
-import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
-
-public interface ISkillHandler
-{
-	public static Logger _log = Logger.getLogger(ISkillHandler.class.getName());
-	
-	/**
-	 * this is the worker method that is called when using an item.
-	 * @param activeChar
-	 * @param skill
-	 * @param targets
-	 */
-	public void useSkill(L2Character activeChar, L2Skill skill, L2Object[] targets);
-	
-	/**
-	 * this method is called at initialization to register all the item ids automatically
-	 * @return all known itemIds
-	 */
-	public L2SkillType[] getSkillIds();
-}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/handler/ITargetTypeHandler.java

@@ -20,7 +20,7 @@ package com.l2jserver.gameserver.handler;
 
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 
 /**
@@ -30,7 +30,7 @@ public interface ITargetTypeHandler
 {
 	static final L2Object[] EMPTY_TARGET_LIST = new L2Object[0];
 	
-	public L2Object[] getTargetList(L2Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target);
+	public L2Object[] getTargetList(Skill skill, L2Character activeChar, boolean onlyFirst, L2Character target);
 	
 	public Enum<L2TargetType> getTargetType();
 }

+ 0 - 79
L2J_Server_BETA/java/com/l2jserver/gameserver/handler/SkillHandler.java

@@ -1,79 +0,0 @@
-/*
- * 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.handler;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import com.l2jserver.gameserver.model.skills.L2SkillType;
-
-/**
- * @author UnAfraid
- */
-public class SkillHandler implements IHandler<ISkillHandler, L2SkillType>
-{
-	private final Map<Integer, ISkillHandler> _datatable;
-	
-	protected SkillHandler()
-	{
-		_datatable = new HashMap<>();
-	}
-	
-	@Override
-	public void registerHandler(ISkillHandler handler)
-	{
-		L2SkillType[] types = handler.getSkillIds();
-		for (L2SkillType t : types)
-		{
-			_datatable.put(t.ordinal(), handler);
-		}
-	}
-	
-	@Override
-	public synchronized void removeHandler(ISkillHandler handler)
-	{
-		L2SkillType[] types = handler.getSkillIds();
-		for (L2SkillType t : types)
-		{
-			_datatable.remove(t.ordinal());
-		}
-	}
-	
-	@Override
-	public ISkillHandler getHandler(L2SkillType skillType)
-	{
-		return _datatable.get(skillType.ordinal());
-	}
-	
-	@Override
-	public int size()
-	{
-		return _datatable.size();
-	}
-	
-	public static SkillHandler getInstance()
-	{
-		return SingletonHolder._instance;
-	}
-	
-	private static class SingletonHolder
-	{
-		protected static final SkillHandler _instance = new SkillHandler();
-	}
-}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/DuelManager.java

@@ -24,7 +24,7 @@ import javolution.util.FastList;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Duel;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 
 public final class DuelManager
@@ -155,7 +155,7 @@ public final class DuelManager
 	 * @param player
 	 * @param buff
 	 */
-	public void onBuff(L2PcInstance player, L2Skill buff)
+	public void onBuff(L2PcInstance player, Skill buff)
 	{
 		if ((player == null) || !player.isInDuel() || (buff == null))
 		{

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

@@ -35,7 +35,7 @@ import javolution.util.FastMap;
 
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.model.CombatFlag;
 import com.l2jserver.gameserver.model.FortSiegeSpawn;
 import com.l2jserver.gameserver.model.L2Clan;
@@ -71,8 +71,8 @@ public final class FortSiegeManager
 	
 	public final void addSiegeSkills(L2PcInstance character)
 	{
-		character.addSkill(SkillTable.FrequentSkill.SEAL_OF_RULER.getSkill(), false);
-		character.addSkill(SkillTable.FrequentSkill.BUILD_HEADQUARTERS.getSkill(), false);
+		character.addSkill(SkillData.FrequentSkill.SEAL_OF_RULER.getSkill(), false);
+		character.addSkill(SkillData.FrequentSkill.BUILD_HEADQUARTERS.getSkill(), false);
 	}
 	
 	/**
@@ -151,8 +151,8 @@ public final class FortSiegeManager
 	
 	public final void removeSiegeSkills(L2PcInstance character)
 	{
-		character.removeSkill(SkillTable.FrequentSkill.SEAL_OF_RULER.getSkill());
-		character.removeSkill(SkillTable.FrequentSkill.BUILD_HEADQUARTERS.getSkill());
+		character.removeSkill(SkillData.FrequentSkill.SEAL_OF_RULER.getSkill());
+		character.removeSkill(SkillData.FrequentSkill.BUILD_HEADQUARTERS.getSkill());
 	}
 	
 	private final void load()

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

@@ -33,7 +33,7 @@ import javolution.util.FastList;
 
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.Location;
@@ -43,7 +43,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.Castle;
 import com.l2jserver.gameserver.model.entity.Siege;
 import com.l2jserver.gameserver.model.interfaces.ILocational;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.util.PropertiesParser;
 
 public final class SiegeManager
@@ -68,7 +68,7 @@ public final class SiegeManager
 	
 	public final void addSiegeSkills(L2PcInstance character)
 	{
-		for (L2Skill sk : SkillTable.getInstance().getSiegeSkills(character.isNoble(), character.getClan().getCastleId() > 0))
+		for (Skill sk : SkillData.getInstance().getSiegeSkills(character.isNoble(), character.getClan().getCastleId() > 0))
 		{
 			character.addSkill(sk, false);
 		}
@@ -155,7 +155,7 @@ public final class SiegeManager
 	
 	public final void removeSiegeSkills(L2PcInstance character)
 	{
-		for (L2Skill sk : SkillTable.getInstance().getSiegeSkills(character.isNoble(), character.getClan().getCastleId() > 0))
+		for (Skill sk : SkillData.getInstance().getSiegeSkills(character.isNoble(), character.getClan().getCastleId() > 0))
 		{
 			character.removeSkill(sk);
 		}

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

@@ -39,7 +39,7 @@ import com.l2jserver.gameserver.Announcements;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.datatables.NpcData;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2SiegeClan;
@@ -58,7 +58,7 @@ import com.l2jserver.gameserver.model.entity.Fort;
 import com.l2jserver.gameserver.model.entity.Siegable;
 import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -410,7 +410,7 @@ public final class TerritoryWarManager implements Siegable
 						final List<L2SkillLearn> residentialSkills = SkillTreesData.getInstance().getAvailableResidentialSkills(wardId);
 						for (L2SkillLearn s : residentialSkills)
 						{
-							final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+							final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 							if (sk != null)
 							{
 								for (L2PcInstance member : terNew.getOwnerClan().getOnlineMembers(0))
@@ -443,7 +443,7 @@ public final class TerritoryWarManager implements Siegable
 					final List<L2SkillLearn> territorySkills = SkillTreesData.getInstance().getAvailableResidentialSkills(territoryId);
 					for (L2SkillLearn s : territorySkills)
 					{
-						final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+						final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 						if (sk != null)
 						{
 							for (L2PcInstance member : terOld.getOwnerClan().getOnlineMembers(0))
@@ -460,7 +460,7 @@ public final class TerritoryWarManager implements Siegable
 							final List<L2SkillLearn> wardSkills = SkillTreesData.getInstance().getAvailableResidentialSkills(wardId);
 							for (L2SkillLearn s : wardSkills)
 							{
-								final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+								final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 								if (sk != null)
 								{
 									for (L2PcInstance member : terOld.getOwnerClan().getOnlineMembers(0))

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

@@ -23,7 +23,7 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import com.l2jserver.gameserver.enums.TriggerType;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.util.Rnd;
 
 /**
@@ -150,7 +150,7 @@ public final class ChanceCondition
 		return skillIds;
 	}
 	
-	public boolean trigger(int event, int damage, byte element, boolean playable, L2Skill skill)
+	public boolean trigger(int event, int damage, byte element, boolean playable, Skill skill)
 	{
 		if (_pvpOnly && !playable)
 		{

+ 8 - 15
L2J_Server_BETA/java/com/l2jserver/gameserver/model/ChanceSkillList.java

@@ -23,14 +23,12 @@ import java.util.logging.Logger;
 
 import javolution.util.FastMap;
 
-import com.l2jserver.gameserver.datatables.SkillTable;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.effects.AbstractEffect;
 import com.l2jserver.gameserver.model.interfaces.IChanceSkillTrigger;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillLaunched;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
@@ -85,7 +83,7 @@ public class ChanceSkillList extends FastMap<IChanceSkillTrigger, ChanceConditio
 		onEvent(ChanceCondition.EVT_EVADED_HIT, 0, attacker, null, Elementals.NONE);
 	}
 	
-	public void onSkillHit(L2Character target, L2Skill skill, boolean ownerWasHit)
+	public void onSkillHit(L2Character target, Skill skill, boolean ownerWasHit)
 	{
 		int event;
 		if (ownerWasHit)
@@ -127,7 +125,7 @@ public class ChanceSkillList extends FastMap<IChanceSkillTrigger, ChanceConditio
 		onEvent(ChanceCondition.EVT_ON_EXIT, 0, _owner, null, element);
 	}
 	
-	public void onEvent(int event, int damage, L2Character target, L2Skill skill, byte element)
+	public void onEvent(int event, int damage, L2Character target, Skill skill, byte element)
 	{
 		if (_owner.isDead())
 		{
@@ -139,9 +137,9 @@ public class ChanceSkillList extends FastMap<IChanceSkillTrigger, ChanceConditio
 		{
 			if ((e.getValue() != null) && e.getValue().trigger(event, damage, element, playable, skill))
 			{
-				if (e.getKey() instanceof L2Skill)
+				if (e.getKey() instanceof Skill)
 				{
-					_owner.makeTriggerCast((L2Skill) e.getKey(), target);
+					_owner.makeTriggerCast((Skill) e.getKey(), target);
 				}
 				else
 				{
@@ -160,7 +158,7 @@ public class ChanceSkillList extends FastMap<IChanceSkillTrigger, ChanceConditio
 				return;
 			}
 			
-			final L2Skill triggered = SkillTable.getInstance().getInfo(effect.getTriggeredChanceId(), effect.getTriggeredChanceLevel());
+			final Skill triggered = SkillData.getInstance().getSkill(effect.getTriggeredChanceId(), effect.getTriggeredChanceLevel());
 			if (triggered == null)
 			{
 				return;
@@ -187,12 +185,7 @@ public class ChanceSkillList extends FastMap<IChanceSkillTrigger, ChanceConditio
 			_owner.broadcastPacket(new MagicSkillUse(_owner, target, triggered.getDisplayId(), triggered.getDisplayLevel(), 0, 0));
 			
 			// Launch the magic skill and calculate its effects
-			// TODO: once core will support all possible effects, use effects (not handler)
-			final ISkillHandler handler = SkillHandler.getInstance().getHandler(triggered.getSkillType());
-			if (handler != null)
-			{
-				handler.useSkill(caster, triggered, targets);
-			}
+			triggered.activateSkill(caster, targets);
 		}
 		catch (Exception e)
 		{

+ 8 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/CharEffectList.java

@@ -44,7 +44,7 @@ import com.l2jserver.gameserver.model.olympiad.OlympiadGameTask;
 import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.EffectScope;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.AbnormalStatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.ExOlympiadSpelledInfo;
 import com.l2jserver.gameserver.network.serverpackets.PartySpelled;
@@ -268,7 +268,7 @@ public final class CharEffectList
 	 * @param skill the skill
 	 * @return the effect list
 	 */
-	private Map<Integer, BuffInfo> getEffectList(L2Skill skill)
+	private Map<Integer, BuffInfo> getEffectList(Skill skill)
 	{
 		if (skill == null)
 		{
@@ -536,7 +536,7 @@ public final class CharEffectList
 	 * @param skill the skill to verify
 	 * @return {@code true} if this effect stacks with the given skill, {@code false} otherwise
 	 */
-	private boolean doesStack(L2Skill skill)
+	private boolean doesStack(Skill skill)
 	{
 		final AbnormalType type = skill.getAbnormalType();
 		if (type.isNone() || isEmpty())
@@ -1012,7 +1012,7 @@ public final class CharEffectList
 	 * Removes the stats from the character.<br>
 	 * Updates the effect flags and icons.<br>
 	 * Presents two overloads:<br>
-	 * {@link #stopSkillEffects(boolean, L2Skill)}<br>
+	 * {@link #stopSkillEffects(boolean, Skill)}<br>
 	 * {@link #stopSkillEffects(boolean, AbnormalType)}
 	 * @param removed {@code true} if the effect is removed, {@code false} otherwise
 	 * @param skillId the skill ID
@@ -1037,7 +1037,7 @@ public final class CharEffectList
 	 * @param removed {@code true} if the effect is removed, {@code false} otherwise
 	 * @param skill the skill
 	 */
-	public void stopSkillEffects(boolean removed, L2Skill skill)
+	public void stopSkillEffects(boolean removed, Skill skill)
 	{
 		if ((skill == null) || !isAffectedBySkill(skill.getId()))
 		{
@@ -1056,7 +1056,7 @@ public final class CharEffectList
 	 * It's O(1) for every effect in this effect list except passive effects.<br>
 	 * Presents two overloads:<br>
 	 * {@link #stopSkillEffects(boolean, int)}<br>
-	 * {@link #stopSkillEffects(boolean, L2Skill)}
+	 * {@link #stopSkillEffects(boolean, Skill)}
 	 * @param removed {@code true} if the effect is removed, {@code false} otherwise
 	 * @param type the skill abnormal type
 	 * @return {@code true} if there was a buff info with the given abnormal type
@@ -1380,7 +1380,7 @@ public final class CharEffectList
 		}
 		
 		// Support for blocked buff slots.
-		final L2Skill skill = info.getSkill();
+		final Skill skill = info.getSkill();
 		if ((_blockedBuffSlots != null) && _blockedBuffSlots.contains(skill.getAbnormalType()))
 		{
 			return;
@@ -1672,7 +1672,7 @@ public final class CharEffectList
 			return;
 		}
 		
-		final L2Skill skill = info.getSkill();
+		final Skill skill = info.getSkill();
 		if (asu != null)
 		{
 			asu.addSkill(info);

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

@@ -28,8 +28,8 @@ import java.util.logging.Logger;
 import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
-import com.l2jserver.gameserver.datatables.SkillTable;
-import com.l2jserver.gameserver.datatables.SkillTable.FrequentSkill;
+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,7 +39,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.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.Earthquake;
 import com.l2jserver.gameserver.network.serverpackets.ExRedSky;
@@ -89,7 +89,7 @@ public class CursedWeapon implements INamable
 		_name = name;
 		_itemId = itemId;
 		_skillId = skillId;
-		_skillMaxLevel = SkillTable.getInstance().getMaxLevel(_skillId);
+		_skillMaxLevel = SkillData.getInstance().getMaxLevel(_skillId);
 	}
 	
 	public void endOfLife()
@@ -331,7 +331,7 @@ public class CursedWeapon implements INamable
 			level = _skillMaxLevel;
 		}
 		
-		final L2Skill skill = SkillTable.getInstance().getInfo(_skillId, level);
+		final Skill skill = SkillData.getInstance().getSkill(_skillId, level);
 		_player.addSkill(skill, false);
 		
 		// Void Burst, Void Flow
@@ -375,8 +375,8 @@ public class CursedWeapon implements INamable
 	public void removeSkill()
 	{
 		_player.removeSkill(_skillId);
-		_player.removeSkill(SkillTable.FrequentSkill.VOID_BURST.getSkill().getId());
-		_player.removeSkill(SkillTable.FrequentSkill.VOID_FLOW.getSkill().getId());
+		_player.removeSkill(SkillData.FrequentSkill.VOID_BURST.getSkill().getId());
+		_player.removeSkill(SkillData.FrequentSkill.VOID_FLOW.getSkill().getId());
 		_player.untransform();
 		_player.sendSkillList();
 	}

+ 33 - 33
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Clan.java

@@ -39,7 +39,7 @@ import com.l2jserver.gameserver.communitybbs.Manager.ForumsBBSManager;
 import com.l2jserver.gameserver.datatables.CharNameTable;
 import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.datatables.CrestTable;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
 import com.l2jserver.gameserver.instancemanager.FortManager;
 import com.l2jserver.gameserver.instancemanager.SiegeManager;
@@ -50,7 +50,7 @@ import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
 import com.l2jserver.gameserver.model.interfaces.INamable;
 import com.l2jserver.gameserver.model.itemcontainer.ClanWarehouse;
 import com.l2jserver.gameserver.model.itemcontainer.ItemContainer;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.communityserver.CommunityServerThread;
@@ -147,10 +147,10 @@ public class L2Clan implements IIdentifiable, INamable
 	private Forum _forum;
 	
 	/** FastMap(Integer, L2Skill) containing all skills of the L2Clan */
-	private final Map<Integer, L2Skill> _skills = new FastMap<>();
+	private final Map<Integer, Skill> _skills = new FastMap<>();
 	private final Map<Integer, RankPrivs> _privs = new FastMap<>();
 	private final Map<Integer, SubPledge> _subPledges = new FastMap<>();
-	private final Map<Integer, L2Skill> _subPledgeSkills = new FastMap<>();
+	private final Map<Integer, Skill> _subPledgeSkills = new FastMap<>();
 	
 	private int _reputationScore = 0;
 	private int _rank = 0;
@@ -1246,7 +1246,7 @@ public class L2Clan implements IIdentifiable, INamable
 					int id = rset.getInt("skill_id");
 					int level = rset.getInt("skill_level");
 					// Create a L2Skill object for each record
-					L2Skill skill = SkillTable.getInstance().getInfo(id, level);
+					Skill skill = SkillData.getInstance().getSkill(id, level);
 					// Add the L2Skill object to the L2Clan _skills
 					int subType = rset.getInt("sub_pledge_id");
 					
@@ -1282,20 +1282,20 @@ public class L2Clan implements IIdentifiable, INamable
 	/**
 	 * @return all the clan skills.
 	 */
-	public final L2Skill[] getAllSkills()
+	public final Skill[] getAllSkills()
 	{
 		if (_skills == null)
 		{
-			return new L2Skill[0];
+			return new Skill[0];
 		}
 		
-		return _skills.values().toArray(new L2Skill[_skills.values().size()]);
+		return _skills.values().toArray(new Skill[_skills.values().size()]);
 	}
 	
 	/**
 	 * @return the map containing this clan skills.
 	 */
-	public Map<Integer, L2Skill> getSkills()
+	public Map<Integer, Skill> getSkills()
 	{
 		return _skills;
 	}
@@ -1305,9 +1305,9 @@ public class L2Clan implements IIdentifiable, INamable
 	 * @param newSkill
 	 * @return
 	 */
-	public L2Skill addSkill(L2Skill newSkill)
+	public Skill addSkill(Skill newSkill)
 	{
-		L2Skill oldSkill = null;
+		Skill oldSkill = null;
 		
 		if (newSkill != null)
 		{
@@ -1318,7 +1318,7 @@ public class L2Clan implements IIdentifiable, INamable
 		return oldSkill;
 	}
 	
-	public L2Skill addNewSkill(L2Skill newSkill)
+	public Skill addNewSkill(Skill newSkill)
 	{
 		return addNewSkill(newSkill, -2);
 	}
@@ -1329,9 +1329,9 @@ public class L2Clan implements IIdentifiable, INamable
 	 * @param subType
 	 * @return
 	 */
-	public L2Skill addNewSkill(L2Skill newSkill, int subType)
+	public Skill addNewSkill(Skill newSkill, int subType)
 	{
-		L2Skill oldSkill = null;
+		Skill oldSkill = null;
 		if (newSkill != null)
 		{
 			
@@ -1423,7 +1423,7 @@ public class L2Clan implements IIdentifiable, INamable
 	
 	public void addSkillEffects()
 	{
-		for (L2Skill skill : _skills.values())
+		for (Skill skill : _skills.values())
 		{
 			for (L2ClanMember temp : _members.values())
 			{
@@ -1452,7 +1452,7 @@ public class L2Clan implements IIdentifiable, INamable
 			return;
 		}
 		
-		for (L2Skill skill : _skills.values())
+		for (Skill skill : _skills.values())
 		{
 			if (skill.getMinPledgeClass() <= player.getPledgeClass())
 			{
@@ -1462,7 +1462,7 @@ public class L2Clan implements IIdentifiable, INamable
 		
 		if (player.getPledgeType() == 0)
 		{
-			for (L2Skill skill : _subPledgeSkills.values())
+			for (Skill skill : _subPledgeSkills.values())
 			{
 				player.addSkill(skill, false); // Skill is not saved to player DB
 			}
@@ -1474,7 +1474,7 @@ public class L2Clan implements IIdentifiable, INamable
 			{
 				return;
 			}
-			for (L2Skill skill : subunit.getSkills())
+			for (Skill skill : subunit.getSkills())
 			{
 				player.addSkill(skill, false); // Skill is not saved to player DB
 			}
@@ -1493,14 +1493,14 @@ public class L2Clan implements IIdentifiable, INamable
 			return;
 		}
 		
-		for (L2Skill skill : _skills.values())
+		for (Skill skill : _skills.values())
 		{
 			player.removeSkill(skill, false); // Skill is not saved to player DB
 		}
 		
 		if (player.getPledgeType() == 0)
 		{
-			for (L2Skill skill : _subPledgeSkills.values())
+			for (Skill skill : _subPledgeSkills.values())
 			{
 				player.removeSkill(skill, false); // Skill is not saved to player DB
 			}
@@ -1512,7 +1512,7 @@ public class L2Clan implements IIdentifiable, INamable
 			{
 				return;
 			}
-			for (L2Skill skill : subunit.getSkills())
+			for (Skill skill : subunit.getSkills())
 			{
 				player.removeSkill(skill, false); // Skill is not saved to player DB
 			}
@@ -1526,7 +1526,7 @@ public class L2Clan implements IIdentifiable, INamable
 			return;
 		}
 		
-		for (L2Skill skill : _skills.values())
+		for (Skill skill : _skills.values())
 		{
 			if (disable)
 			{
@@ -1540,7 +1540,7 @@ public class L2Clan implements IIdentifiable, INamable
 		
 		if (player.getPledgeType() == 0)
 		{
-			for (L2Skill skill : _subPledgeSkills.values())
+			for (Skill skill : _subPledgeSkills.values())
 			{
 				if (disable)
 				{
@@ -1557,7 +1557,7 @@ public class L2Clan implements IIdentifiable, INamable
 			final SubPledge subunit = getSubPledge(player.getPledgeType());
 			if (subunit != null)
 			{
-				for (L2Skill skill : subunit.getSkills())
+				for (Skill skill : subunit.getSkills())
 				{
 					if (disable)
 					{
@@ -1741,7 +1741,7 @@ public class L2Clan implements IIdentifiable, INamable
 		private final int _id;
 		private String _subPledgeName;
 		private int _leaderId;
-		private final Map<Integer, L2Skill> _subPledgeSkills = new FastMap<>();
+		private final Map<Integer, Skill> _subPledgeSkills = new FastMap<>();
 		
 		public SubPledge(int id, String name, int leaderId)
 		{
@@ -1775,17 +1775,17 @@ public class L2Clan implements IIdentifiable, INamable
 			_leaderId = leaderId;
 		}
 		
-		public L2Skill addNewSkill(L2Skill skill)
+		public Skill addNewSkill(Skill skill)
 		{
 			return _subPledgeSkills.put(skill.getId(), skill);
 		}
 		
-		public Collection<L2Skill> getSkills()
+		public Collection<Skill> getSkills()
 		{
 			return _subPledgeSkills.values();
 		}
 		
-		public L2Skill getSkill(int id)
+		public Skill getSkill(int id)
 		{
 			return _subPledgeSkills.get(id);
 		}
@@ -2989,7 +2989,7 @@ public class L2Clan implements IIdentifiable, INamable
 	 */
 	public boolean isLearnableSubSkill(int skillId, int skillLevel)
 	{
-		L2Skill current = _subPledgeSkills.get(skillId);
+		Skill current = _subPledgeSkills.get(skillId);
 		// is next level?
 		if ((current != null) && ((current.getLevel() + 1) == skillLevel))
 		{
@@ -3023,7 +3023,7 @@ public class L2Clan implements IIdentifiable, INamable
 		return false;
 	}
 	
-	public boolean isLearnableSubPledgeSkill(L2Skill skill, int subType)
+	public boolean isLearnableSubPledgeSkill(Skill skill, int subType)
 	{
 		// academy
 		if (subType == -1)
@@ -3032,7 +3032,7 @@ public class L2Clan implements IIdentifiable, INamable
 		}
 		
 		int id = skill.getId();
-		L2Skill current;
+		Skill current;
 		if (subType == 0)
 		{
 			current = _subPledgeSkills.get(id);
@@ -3058,13 +3058,13 @@ public class L2Clan implements IIdentifiable, INamable
 	public SubPledgeSkill[] getAllSubSkills()
 	{
 		FastList<SubPledgeSkill> list = FastList.newInstance();
-		for (L2Skill skill : _subPledgeSkills.values())
+		for (Skill skill : _subPledgeSkills.values())
 		{
 			list.add(new SubPledgeSkill(0, skill.getId(), skill.getLevel()));
 		}
 		for (SubPledge subunit : _subPledges.values())
 		{
-			for (L2Skill skill : subunit.getSkills())
+			for (Skill skill : subunit.getSkills())
 			{
 				list.add(new SubPledgeSkill(subunit.getId(), skill.getId(), skill.getLevel()));
 			}

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

@@ -23,7 +23,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 
 /**
@@ -202,7 +202,7 @@ public class L2PetData
 				}
 				
 				// formula usable for skill that have 10 or more skill levels
-				int maxLvl = SkillTable.getInstance().getMaxLevel(temp.getSkillId());
+				int maxLvl = SkillData.getInstance().getMaxLevel(temp.getSkillId());
 				if (lvl > maxLvl)
 				{
 					lvl = maxLvl;

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

@@ -36,7 +36,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.L2Vehicle;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.L2ZoneType;
 import com.l2jserver.gameserver.model.zone.type.L2PeaceZone;
 
@@ -134,7 +134,7 @@ public final class L2WorldRegion
 		return false;
 	}
 	
-	public boolean checkEffectRangeInsidePeaceZone(L2Skill skill, final int x, final int y, final int z)
+	public boolean checkEffectRangeInsidePeaceZone(Skill skill, final int x, final int y, final int z)
 	{
 		final int range = skill.getEffectRange();
 		final int up = y + range;

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

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.model;
 
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * Simple class containing all necessary information to maintain<br>
@@ -46,7 +46,7 @@ public class TimeStamp
 	 * @param reuse the reuse time for this skill.
 	 * @param systime overrides the system time with a customized one.
 	 */
-	public TimeStamp(L2Skill skill, long reuse, long systime)
+	public TimeStamp(Skill skill, long reuse, long systime)
 	{
 		_id1 = skill.getId();
 		_id2 = skill.getLevel();

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

@@ -62,7 +62,7 @@ import com.l2jserver.gameserver.model.holders.ItemHolder;
 import com.l2jserver.gameserver.model.items.L2Item;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
@@ -222,7 +222,7 @@ public class L2Attackable extends L2Npc
 	 * Use the skill if minimum checks are pass.
 	 * @param skill the skill
 	 */
-	public void useMagic(L2Skill skill)
+	public void useMagic(Skill skill)
 	{
 		if ((skill == null) || isAlikeDead() || skill.isPassive() || isCastingNow() || isSkillDisabled(skill))
 		{
@@ -265,7 +265,7 @@ public class L2Attackable extends L2Npc
 	 * @param attacker The L2Character who attacks
 	 */
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, Skill skill)
 	{
 		reduceCurrentHp(damage, attacker, true, false, skill);
 	}
@@ -279,7 +279,7 @@ public class L2Attackable extends L2Npc
 	 * @param skill
 	 */
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
 	{
 		if (isRaid() && !isMinion() && (attacker != null) && (attacker.getParty() != null) && attacker.getParty().isInCommandChannel() && attacker.getParty().getCommandChannel().meetRaidWarCondition(this))
 		{
@@ -673,7 +673,7 @@ public class L2Attackable extends L2Npc
 	 * @param damage The number of damages given by the attacker L2Character
 	 * @param skill
 	 */
-	public void addDamage(L2Character attacker, int damage, L2Skill skill)
+	public void addDamage(L2Character attacker, int damage, Skill skill)
 	{
 		if (attacker == null)
 		{

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

@@ -46,14 +46,12 @@ import com.l2jserver.gameserver.ai.L2AttackableAI;
 import com.l2jserver.gameserver.ai.L2CharacterAI;
 import com.l2jserver.gameserver.datatables.DoorTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.CategoryType;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.enums.QuestEventType;
 import com.l2jserver.gameserver.enums.ShotType;
 import com.l2jserver.gameserver.enums.Team;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.instancemanager.DimensionalRiftManager;
 import com.l2jserver.gameserver.instancemanager.InstanceManager;
 import com.l2jserver.gameserver.instancemanager.MapRegionManager;
@@ -109,8 +107,7 @@ 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.EffectScope;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.SkillChannelized;
 import com.l2jserver.gameserver.model.skills.SkillChannelizer;
 import com.l2jserver.gameserver.model.skills.funcs.Func;
@@ -174,8 +171,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	private volatile Set<L2Character> _attackByList;
 	private volatile boolean _isCastingNow = false;
 	private volatile boolean _isCastingSimultaneouslyNow = false;
-	private L2Skill _lastSkillCast;
-	private L2Skill _lastSimultaneousSkillCast;
+	private Skill _lastSkillCast;
+	private Skill _lastSimultaneousSkillCast;
 	
 	private boolean _isDead = false;
 	private boolean _isImmobilized = false;
@@ -205,7 +202,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	/** Table of Calculators containing all used calculator */
 	private Calculator[] _calculators;
 	/** Map containing all skills of this character. */
-	private final Map<Integer, L2Skill> _skills = new FastMap<Integer, L2Skill>().shared();
+	private final Map<Integer, Skill> _skills = new FastMap<Integer, Skill>().shared();
 	/** Map containing the skill reuse time stamps. */
 	private volatile Map<Integer, TimeStamp> _reuseTimeStampsSkills = null;
 	/** Map containing the item reuse time stamps. */
@@ -455,7 +452,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 			// Copy the skills of the L2NPCInstance from its template to the L2Character Instance
 			// The skills list can be affected by spell effects so it's necessary to make a copy
 			// to avoid that a spell affecting a L2NpcInstance, affects others L2NPCInstance of the same type too.
-			for (L2Skill skill : template.getSkills().values())
+			for (Skill skill : template.getSkills().values())
 			{
 				addSkill(skill);
 			}
@@ -470,7 +467,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 				// Copy the skills of the L2Summon from its template to the L2Character Instance
 				// The skills list can be affected by spell effects so it's necessary to make a copy
 				// to avoid that a spell affecting a L2Summon, affects others L2Summon of the same type too.
-				for (L2Skill skill : template.getSkills().values())
+				for (Skill skill : template.getSkills().values())
 				{
 					addSkill(skill);
 				}
@@ -1563,17 +1560,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * </ul>
 	 * @param skill The L2Skill to use
 	 */
-	public void doCast(L2Skill skill)
+	public void doCast(Skill skill)
 	{
 		beginCast(skill, false);
 	}
 	
-	public void doSimultaneousCast(L2Skill skill)
+	public void doSimultaneousCast(Skill skill)
 	{
 		beginCast(skill, true);
 	}
 	
-	public void doCast(L2Skill skill, L2Character target, L2Object[] targets)
+	public void doCast(Skill skill, L2Character target, L2Object[] targets)
 	{
 		if (!checkDoCastConditions(skill))
 		{
@@ -1596,7 +1593,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		beginCast(skill, false, target, targets);
 	}
 	
-	public void doSimultaneousCast(L2Skill skill, L2Character target, L2Object[] targets)
+	public void doSimultaneousCast(Skill skill, L2Character target, L2Object[] targets)
 	{
 		if (!checkDoCastConditions(skill))
 		{
@@ -1611,7 +1608,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		beginCast(skill, true, target, targets);
 	}
 	
-	private void beginCast(L2Skill skill, boolean simultaneously)
+	private void beginCast(Skill skill, boolean simultaneously)
 	{
 		if (!checkDoCastConditions(skill))
 		{
@@ -1690,17 +1687,10 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 					return;
 				}
 				
-				if (skill.isContinuous() && !skill.isDebuff())
+				if ((skill.isContinuous() && !skill.isDebuff()) || skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL))
 				{
 					doit = true;
 				}
-				else if (skill.getSkillType() == L2SkillType.DUMMY)
-				{
-					if (skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL))
-					{
-						doit = true;
-					}
-				}
 				
 				if (doit)
 				{
@@ -1714,7 +1704,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		beginCast(skill, simultaneously, target, targets);
 	}
 	
-	private void beginCast(L2Skill skill, boolean simultaneously, L2Character target, L2Object[] targets)
+	private void beginCast(Skill skill, boolean simultaneously, L2Character target, L2Object[] targets)
 	{
 		if ((target == null) || !getEvents().onMagic(skill, simultaneously, target, targets))
 		{
@@ -2004,7 +1994,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param skill
 	 * @return True if casting is possible
 	 */
-	public boolean checkDoCastConditions(L2Skill skill)
+	public boolean checkDoCastConditions(Skill skill)
 	{
 		if ((skill == null) || isSkillDisabled(skill) || (((skill.getFlyRadius() > 0) || (skill.getFlyType() != null)) && isMovementDisabled()))
 		{
@@ -2231,7 +2221,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param skill the skill
 	 * @param reuse the delay
 	 */
-	public final void addTimeStamp(L2Skill skill, long reuse)
+	public final void addTimeStamp(Skill skill, long reuse)
 	{
 		addTimeStamp(skill, reuse, -1);
 	}
@@ -2243,7 +2233,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param reuse the reuse
 	 * @param systime the system time
 	 */
-	public final void addTimeStamp(L2Skill skill, long reuse, long systime)
+	public final void addTimeStamp(Skill skill, long reuse, long systime)
 	{
 		if (_reuseTimeStampsSkills == null)
 		{
@@ -2262,7 +2252,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * Removes a skill reuse time stamp.
 	 * @param skill the skill to remove
 	 */
-	public synchronized final void removeTimeStamp(L2Skill skill)
+	public synchronized final void removeTimeStamp(Skill skill)
 	{
 		if (_reuseTimeStampsSkills != null)
 		{
@@ -2326,7 +2316,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * Enables a skill.
 	 * @param skill the skill to enable
 	 */
-	public void enableSkill(L2Skill skill)
+	public void enableSkill(Skill skill)
 	{
 		if ((skill == null) || (_disabledSkills == null))
 		{
@@ -2341,7 +2331,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param skill the skill to disable
 	 * @param delay delay in milliseconds
 	 */
-	public void disableSkill(L2Skill skill, long delay)
+	public void disableSkill(Skill skill, long delay)
 	{
 		if (skill == null)
 		{
@@ -2378,7 +2368,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param skill the skill
 	 * @return {@code true} if the skill is disabled, {@code false} otherwise
 	 */
-	public boolean isSkillDisabled(L2Skill skill)
+	public boolean isSkillDisabled(Skill skill)
 	{
 		return (skill != null) && isSkillDisabled(skill.getReuseHashCode());
 	}
@@ -2705,22 +2695,22 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return _attackByList;
 	}
 	
-	public final L2Skill getLastSimultaneousSkillCast()
+	public final Skill getLastSimultaneousSkillCast()
 	{
 		return _lastSimultaneousSkillCast;
 	}
 	
-	public void setLastSimultaneousSkillCast(L2Skill skill)
+	public void setLastSimultaneousSkillCast(Skill skill)
 	{
 		_lastSimultaneousSkillCast = skill;
 	}
 	
-	public final L2Skill getLastSkillCast()
+	public final Skill getLastSkillCast()
 	{
 		return _lastSkillCast;
 	}
 	
-	public void setLastSkillCast(L2Skill skill)
+	public void setLastSkillCast(Skill skill)
 	{
 		_lastSkillCast = skill;
 	}
@@ -3518,7 +3508,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		 * Accessor to L2Character doCast() method.
 		 * @param skill
 		 */
-		public void doCast(L2Skill skill)
+		public void doCast(Skill skill)
 		{
 			L2Character.this.doCast(skill);
 		}
@@ -5008,7 +4998,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		{
 			if (getLevel() > (target.getLevel() + 8))
 			{
-				L2Skill skill = SkillTable.FrequentSkill.RAID_CURSE2.getSkill();
+				Skill skill = SkillData.FrequentSkill.RAID_CURSE2.getSkill();
 				
 				if (skill != null)
 				{
@@ -5451,9 +5441,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @return The L2Skill replaced or null if just added a new L2Skill
 	 */
 	@Override
-	public L2Skill addSkill(L2Skill newSkill)
+	public Skill addSkill(Skill newSkill)
 	{
-		L2Skill oldSkill = null;
+		Skill oldSkill = null;
 		if (newSkill != null)
 		{
 			// Replace oldSkill by newSkill or Add the newSkill
@@ -5488,20 +5478,20 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return oldSkill;
 	}
 	
-	public L2Skill removeSkill(L2Skill skill, boolean cancelEffect)
+	public Skill removeSkill(Skill skill, boolean cancelEffect)
 	{
 		return (skill != null) ? removeSkill(skill.getId(), cancelEffect) : null;
 	}
 	
-	public L2Skill removeSkill(int skillId)
+	public Skill removeSkill(int skillId)
 	{
 		return removeSkill(skillId, true);
 	}
 	
-	public L2Skill removeSkill(int skillId, boolean cancelEffect)
+	public Skill removeSkill(int skillId, boolean cancelEffect)
 	{
 		// Remove the skill from the L2Character _skills
-		L2Skill oldSkill = _skills.remove(skillId);
+		Skill oldSkill = _skills.remove(skillId);
 		// Remove all its Func objects from the L2Character calculator set
 		if (oldSkill != null)
 		{
@@ -5553,11 +5543,11 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		{
 			for (IChanceSkillTrigger trigger : _chanceSkills.keySet())
 			{
-				if (!(trigger instanceof L2Skill))
+				if (!(trigger instanceof Skill))
 				{
 					continue;
 				}
-				if (((L2Skill) trigger).getId() == id)
+				if (((Skill) trigger).getId() == id)
 				{
 					_chanceSkills.remove(trigger);
 				}
@@ -5624,7 +5614,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * All skills own by a L2Character are identified in <B>_skills</B> the L2Character
 	 * @return all skills own by the L2Character in a table of L2Skill.
 	 */
-	public final Collection<L2Skill> getAllSkills()
+	public final Collection<Skill> getAllSkills()
 	{
 		return new ArrayList<>(_skills.values());
 	}
@@ -5633,7 +5623,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @return the map containing this character skills.
 	 */
 	@Override
-	public Map<Integer, L2Skill> getSkills()
+	public Map<Integer, Skill> getSkills()
 	{
 		return _skills;
 	}
@@ -5651,7 +5641,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	@Override
 	public int getSkillLevel(int skillId)
 	{
-		final L2Skill skill = getKnownSkill(skillId);
+		final Skill skill = getKnownSkill(skillId);
 		return (skill == null) ? -1 : skill.getLevel();
 	}
 	
@@ -5660,7 +5650,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @return the skill from the known skill.
 	 */
 	@Override
-	public final L2Skill getKnownSkill(int skillId)
+	public final Skill getKnownSkill(int skillId)
 	{
 		return _skills.get(skillId);
 	}
@@ -5695,7 +5685,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 */
 	public void onMagicLaunchedTimer(MagicUseTask mut)
 	{
-		final L2Skill skill = mut.getSkill();
+		final Skill skill = mut.getSkill();
 		L2Object[] targets = mut.getTargets();
 		
 		if ((skill == null) || (targets == null))
@@ -5825,7 +5815,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	// Runs in the end of skill casting
 	public void onMagicHitTimer(MagicUseTask mut)
 	{
-		final L2Skill skill = mut.getSkill();
+		final Skill skill = mut.getSkill();
 		final L2Object[] targets = mut.getTargets();
 		
 		if ((skill == null) || (targets == null))
@@ -5977,7 +5967,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		// Stop casting
 		setIsCastingNow(false);
 		
-		final L2Skill skill = mut.getSkill();
+		final Skill skill = mut.getSkill();
 		final L2Object target = mut.getTargets().length > 0 ? mut.getTargets()[0] : null;
 		
 		// Attack target after skill use
@@ -6021,7 +6011,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	}
 	
 	// Quest event ON_SPELL_FNISHED
-	protected void notifyQuestEventSkillFinished(L2Skill skill, L2Object target)
+	protected void notifyQuestEventSkillFinished(Skill skill, L2Object target)
 	{
 		
 	}
@@ -6031,7 +6021,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param skill The L2Skill to use
 	 * @param targets The table of L2Object targets
 	 */
-	public void callSkill(L2Skill skill, L2Object[] targets)
+	public void callSkill(Skill skill, L2Object[] targets)
 	{
 		try
 		{
@@ -6068,7 +6058,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 					{
 						if (skill.isMagic())
 						{
-							L2Skill tempSkill = SkillTable.FrequentSkill.RAID_CURSE.getSkill();
+							Skill tempSkill = SkillData.FrequentSkill.RAID_CURSE.getSkill();
 							if (tempSkill != null)
 							{
 								abortAttack();
@@ -6083,7 +6073,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 						}
 						else
 						{
-							L2Skill tempSkill = SkillTable.FrequentSkill.RAID_CURSE2.getSkill();
+							Skill tempSkill = SkillData.FrequentSkill.RAID_CURSE2.getSkill();
 							if (tempSkill != null)
 							{
 								abortAttack();
@@ -6151,11 +6141,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 			}
 			
 			// Launch the magic skill and calculate its effects
-			final ISkillHandler handler = SkillHandler.getInstance().getHandler(skill.getSkillType());
-			if (handler != null)
-			{
-				handler.useSkill(this, skill, targets);
-			}
+			skill.activateSkill(this, targets);
 			
 			L2PcInstance player = getActingPlayer();
 			if (player != null)
@@ -6438,7 +6424,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	public abstract int getLevel();
 	
 	// Stat - NEED TO REMOVE ONCE L2CHARSTAT IS COMPLETE
-	public final double calcStat(Stats stat, double init, L2Character target, L2Skill skill)
+	public final double calcStat(Stats stat, double init, L2Character target, Skill skill)
 	{
 		return getStat().calcStat(stat, init, target, skill);
 	}
@@ -6468,7 +6454,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return getStat().getCriticalDmg(target, init);
 	}
 	
-	public int getCriticalHit(L2Character target, L2Skill skill)
+	public int getCriticalHit(L2Character target, Skill skill)
 	{
 		return getStat().getCriticalHit(target, skill);
 	}
@@ -6483,7 +6469,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return getStat().getINT();
 	}
 	
-	public final int getMagicalAttackRange(L2Skill skill)
+	public final int getMagicalAttackRange(Skill skill)
 	{
 		return getStat().getMagicalAttackRange(skill);
 	}
@@ -6498,7 +6484,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return getStat().getMaxRecoverableCp();
 	}
 	
-	public int getMAtk(L2Character target, L2Skill skill)
+	public int getMAtk(L2Character target, Skill skill)
 	{
 		return getStat().getMAtk(target, skill);
 	}
@@ -6528,12 +6514,12 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return getStat().getMaxRecoverableHp();
 	}
 	
-	public final int getMCriticalHit(L2Character target, L2Skill skill)
+	public final int getMCriticalHit(L2Character target, Skill skill)
 	{
 		return getStat().getMCriticalHit(target, skill);
 	}
 	
-	public int getMDef(L2Character target, L2Skill skill)
+	public int getMDef(L2Character target, Skill skill)
 	{
 		return getStat().getMDef(target, skill);
 	}
@@ -6543,7 +6529,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		return getStat().getMEN();
 	}
 	
-	public double getMReuseRate(L2Skill skill)
+	public double getMReuseRate(Skill skill)
 	{
 		return getStat().getMReuseRate(skill);
 	}
@@ -6614,17 +6600,17 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		getStatus().addStatusListener(object);
 	}
 	
-	public void reduceCurrentHp(double i, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHp(double i, L2Character attacker, Skill skill)
 	{
 		reduceCurrentHp(i, attacker, true, false, skill);
 	}
 	
-	public void reduceCurrentHpByDOT(double i, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHpByDOT(double i, L2Character attacker, Skill skill)
 	{
 		reduceCurrentHp(i, attacker, !skill.isToggle(), true, skill);
 	}
 	
-	public void reduceCurrentHp(double i, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
+	public void reduceCurrentHp(double i, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
 	{
 		if (Config.L2JMOD_CHAMPION_ENABLE && isChampion() && (Config.L2JMOD_CHAMPION_HP != 0))
 		{
@@ -6745,9 +6731,9 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	public int getMaxBuffCount()
 	{
 		int count = Config.BUFFS_MAX_AMOUNT;
-		if (isAffectedBySkill(L2Skill.SKILL_DIVINE_INSPIRATION))
+		if (isAffectedBySkill(Skill.SKILL_DIVINE_INSPIRATION))
 		{
-			final BuffInfo info = getEffectList().getBuffInfoBySkillId(L2Skill.SKILL_DIVINE_INSPIRATION);
+			final BuffInfo info = getEffectList().getBuffInfoBySkillId(Skill.SKILL_DIVINE_INSPIRATION);
 			for (AbstractEffect effect : info.getEffects())
 			{
 				count += (int) effect.getValue();
@@ -6894,7 +6880,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		getTriggerSkills().remove(holder.getSkillId());
 	}
 	
-	public void makeTriggerCast(L2Skill skill, L2Character target, boolean ignoreTargetType)
+	public void makeTriggerCast(Skill skill, L2Character target, boolean ignoreTargetType)
 	{
 		try
 		{
@@ -6902,8 +6888,8 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 			{
 				if (skill.triggersChanceSkill()) // skill will trigger another skill, but only if its not chance skill
 				{
-					skill = SkillTable.getInstance().getInfo(skill.getTriggeredChanceId(), skill.getTriggeredChanceLevel());
-					if ((skill == null) || (skill.getSkillType() == L2SkillType.NOTDONE))
+					skill = SkillData.getInstance().getSkill(skill.getTriggeredChanceId(), skill.getTriggeredChanceLevel());
+					if ((skill == null))
 					{
 						return;
 					}
@@ -6945,12 +6931,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 				broadcastPacket(new MagicSkillLaunched(this, skill.getDisplayId(), skill.getLevel(), targets));
 				
 				// Launch the magic skill and calculate its effects
-				// TODO: once core will support all possible effects, use effects (not handler)
-				final ISkillHandler handler = SkillHandler.getInstance().getHandler(skill.getSkillType());
-				if (handler != null)
-				{
-					handler.useSkill(this, skill, targets);
-				}
+				skill.activateSkill(this, targets);
 			}
 		}
 		catch (Exception e)
@@ -6959,7 +6940,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 		}
 	}
 	
-	public void makeTriggerCast(L2Skill skill, L2Character target)
+	public void makeTriggerCast(Skill skill, L2Character target)
 	{
 		makeTriggerCast(skill, target, false);
 	}
@@ -7025,7 +7006,7 @@ public abstract class L2Character extends L2Object implements ISkillsHolder, IDe
 	 * @param critical
 	 * @param damageOverTime
 	 */
-	public void notifyDamageReceived(double damage, L2Character attacker, L2Skill skill, boolean critical, boolean damageOverTime)
+	public void notifyDamageReceived(double damage, L2Character attacker, Skill skill, boolean critical, boolean damageOverTime)
 	{
 		getEvents().onDamageReceived(damage, attacker, skill, critical, damageOverTime);
 		attacker.getEvents().onDamageDealt(damage, this, skill, critical, damageOverTime);

+ 14 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/L2Npc.java

@@ -78,7 +78,7 @@ import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.olympiad.Olympiad;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.model.variables.NpcVariables;
 import com.l2jserver.gameserver.model.zone.type.L2TownZone;
@@ -204,9 +204,9 @@ public class L2Npc extends L2Character
 		return getTemplate().getShortRangeSkillId() > 0;
 	}
 	
-	public List<L2Skill> getLongRangeSkill()
+	public List<Skill> getLongRangeSkill()
 	{
-		final List<L2Skill> skilldata = new ArrayList<>();
+		final List<Skill> skilldata = new ArrayList<>();
 		if (getTemplate().getLongRangeSkillId() == 0)
 		{
 			return skilldata;
@@ -216,10 +216,10 @@ public class L2Npc extends L2Character
 		{
 			case -1:
 			{
-				final Collection<L2Skill> skills = getAllSkills();
+				final Collection<Skill> skills = getAllSkills();
 				if (skills != null)
 				{
-					for (L2Skill sk : skills)
+					for (Skill sk : skills)
 					{
 						if ((sk == null) || sk.isPassive() || (sk.getTargetType() == L2TargetType.SELF))
 						{
@@ -236,7 +236,7 @@ public class L2Npc extends L2Character
 			}
 			case 1:
 			{
-				for (L2Skill sk : getTemplate().getAISkills(AISkillScope.UNIVERSAL))
+				for (Skill sk : getTemplate().getAISkills(AISkillScope.UNIVERSAL))
 				{
 					if (sk.getCastRange() >= 200)
 					{
@@ -247,7 +247,7 @@ public class L2Npc extends L2Character
 			}
 			default:
 			{
-				for (L2Skill sk : getAllSkills())
+				for (Skill sk : getAllSkills())
 				{
 					if (sk.getId() == getTemplate().getLongRangeSkillId())
 					{
@@ -259,9 +259,9 @@ public class L2Npc extends L2Character
 		return skilldata;
 	}
 	
-	public List<L2Skill> getShortRangeSkill()
+	public List<Skill> getShortRangeSkill()
 	{
-		final List<L2Skill> skilldata = new ArrayList<>();
+		final List<Skill> skilldata = new ArrayList<>();
 		if (getTemplate().getShortRangeSkillId() == 0)
 		{
 			return skilldata;
@@ -271,10 +271,10 @@ public class L2Npc extends L2Character
 		{
 			case -1:
 			{
-				Collection<L2Skill> skills = getAllSkills();
+				Collection<Skill> skills = getAllSkills();
 				if (skills != null)
 				{
-					for (L2Skill sk : skills)
+					for (Skill sk : skills)
 					{
 						if ((sk == null) || sk.isPassive() || (sk.getTargetType() == L2TargetType.SELF))
 						{
@@ -290,7 +290,7 @@ public class L2Npc extends L2Character
 			}
 			case 1:
 			{
-				for (L2Skill sk : getTemplate().getAISkills(AISkillScope.UNIVERSAL))
+				for (Skill sk : getTemplate().getAISkills(AISkillScope.UNIVERSAL))
 				{
 					if (sk.getCastRange() <= 200)
 					{
@@ -301,7 +301,7 @@ public class L2Npc extends L2Character
 			}
 			default:
 			{
-				for (L2Skill sk : getAllSkills())
+				for (Skill sk : getAllSkills())
 				{
 					if (sk.getId() == getTemplate().getShortRangeSkillId())
 					{
@@ -1651,7 +1651,7 @@ public class L2Npc extends L2Character
 	}
 	
 	@Override
-	protected final void notifyQuestEventSkillFinished(L2Skill skill, L2Object target)
+	protected final void notifyQuestEventSkillFinished(Skill skill, L2Object target)
 	{
 		try
 		{

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

@@ -31,7 +31,7 @@ import com.l2jserver.gameserver.model.effects.EffectFlag;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.quest.QuestState;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * This class represents all Playable characters in the world.<br>
@@ -354,7 +354,7 @@ public abstract class L2Playable extends L2Character
 	
 	public abstract byte getPvpFlag();
 	
-	public abstract boolean useMagic(L2Skill skill, boolean forceUse, boolean dontMove);
+	public abstract boolean useMagic(Skill skill, boolean forceUse, boolean dontMove);
 	
 	public abstract void storeMe();
 	

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

@@ -54,7 +54,7 @@ import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.items.type.L2ActionType;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameManager;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -631,7 +631,7 @@ public abstract class L2Summon extends L2Playable
 	 * @param dontMove used to prevent movement, if not in range
 	 */
 	@Override
-	public boolean useMagic(L2Skill skill, boolean forceUse, boolean dontMove)
+	public boolean useMagic(Skill skill, boolean forceUse, boolean dontMove)
 	{
 		// Null skill, dead summon or null owner are reasons to prevent casting.
 		if ((skill == null) || isDead() || (getOwner() == null))
@@ -847,7 +847,7 @@ public abstract class L2Summon extends L2Playable
 	}
 	
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, Skill skill)
 	{
 		super.reduceCurrentHp(damage, attacker, skill);
 		if ((getOwner() != null) && (attacker != null))
@@ -861,7 +861,7 @@ public abstract class L2Summon extends L2Playable
 	}
 	
 	@Override
-	public void doCast(L2Skill skill)
+	public void doCast(Skill skill)
 	{
 		final L2PcInstance actingPlayer = getActingPlayer();
 		if (!actingPlayer.checkPvpSkill(getTarget(), skill, true) && !actingPlayer.getAccessLevel().allowPeaceAttack())

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/CharEvents.java

@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.actor.events.listeners.IDamageReceivedEven
 import com.l2jserver.gameserver.model.actor.events.listeners.IDeathEventListener;
 import com.l2jserver.gameserver.model.actor.events.listeners.ISkillUseEventListener;
 import com.l2jserver.gameserver.model.actor.events.listeners.ITeleportedEventListener;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.util.Util;
 
 /**
@@ -99,7 +99,7 @@ public class CharEvents extends AbstractCharEvents
 	 * @param targets
 	 * @return {@code true} if cast can be made, {@code false} otherwise.
 	 */
-	public boolean onMagic(L2Skill skill, boolean simultaneously, L2Character target, L2Object[] targets)
+	public boolean onMagic(Skill skill, boolean simultaneously, L2Character target, L2Object[] targets)
 	{
 		if (hasListeners())
 		{
@@ -186,7 +186,7 @@ public class CharEvents extends AbstractCharEvents
 	 * @param crit
 	 * @param damageOverTime
 	 */
-	public void onDamageDealt(double damage, L2Character target, L2Skill skill, boolean crit, boolean damageOverTime)
+	public void onDamageDealt(double damage, L2Character target, Skill skill, boolean crit, boolean damageOverTime)
 	{
 		if (hasListeners())
 		{
@@ -221,7 +221,7 @@ public class CharEvents extends AbstractCharEvents
 	 * @param crit
 	 * @param damageOverTime
 	 */
-	public void onDamageReceived(double damage, L2Character attacker, L2Skill skill, boolean crit, boolean damageOverTime)
+	public void onDamageReceived(double damage, L2Character attacker, Skill skill, boolean crit, boolean damageOverTime)
 	{
 		if (hasListeners())
 		{

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/listeners/IDamageDealtEventListener.java

@@ -19,12 +19,12 @@
 package com.l2jserver.gameserver.model.actor.events.listeners;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
  */
 public interface IDamageDealtEventListener extends IEventListener
 {
-	public void onDamageDealtEvent(L2Character attacker, L2Character target, double damage, L2Skill skill, boolean crit, boolean damageOverTime);
+	public void onDamageDealtEvent(L2Character attacker, L2Character target, double damage, Skill skill, boolean crit, boolean damageOverTime);
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/listeners/IDamageReceivedEventListener.java

@@ -19,12 +19,12 @@
 package com.l2jserver.gameserver.model.actor.events.listeners;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
  */
 public interface IDamageReceivedEventListener extends IEventListener
 {
-	public void onDamageReceivedEvent(L2Character attacker, L2Character target, double damage, L2Skill skill, boolean crit, boolean damageOverTime);
+	public void onDamageReceivedEvent(L2Character attacker, L2Character target, double damage, Skill skill, boolean crit, boolean damageOverTime);
 }

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/events/listeners/ISkillUseEventListener.java

@@ -20,12 +20,12 @@ package com.l2jserver.gameserver.model.actor.events.listeners;
 
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
  */
 public interface ISkillUseEventListener extends IEventListener
 {
-	public boolean onSkillUse(L2Character caster, L2Skill skill, boolean simultaneously, L2Character target, L2Object[] targets);
+	public boolean onSkillUse(L2Character caster, Skill skill, boolean simultaneously, L2Character target, L2Object[] targets);
 }

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

@@ -22,7 +22,7 @@ import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 
 /**
@@ -79,12 +79,12 @@ public final class L2ArtefactInstance extends L2Npc
 	}
 	
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, Skill skill)
 	{
 	}
 	
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
 	{
 	}
 }

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2BabyPetInstance.java

@@ -25,7 +25,7 @@ import java.util.concurrent.Future;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.datatables.PetDataTable;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.L2PetData.L2PetSkillLearn;
 import com.l2jserver.gameserver.model.actor.L2Character;
@@ -34,7 +34,7 @@ import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 import com.l2jserver.util.Rnd;
@@ -80,7 +80,7 @@ public final class L2BabyPetInstance extends L2PetInstance
 				continue;
 			}
 			
-			final L2Skill skill = SkillTable.getInstance().getInfo(id, lvl);
+			final Skill skill = SkillData.getInstance().getSkill(id, lvl);
 			if (skill == null)
 			{
 				continue;
@@ -203,7 +203,7 @@ public final class L2BabyPetInstance extends L2PetInstance
 		}
 	}
 	
-	protected void castSkill(L2Skill skill)
+	protected void castSkill(Skill skill)
 	{
 		// casting automatically stops any other action (such as autofollow or a move-to).
 		// We need to gather the necessary info to restore the previous state.
@@ -239,7 +239,7 @@ public final class L2BabyPetInstance extends L2PetInstance
 	private class CastTask implements Runnable
 	{
 		private final L2BabyPetInstance _baby;
-		private final List<L2Skill> _currentBuffs = new ArrayList<>();
+		private final List<Skill> _currentBuffs = new ArrayList<>();
 		
 		public CastTask(L2BabyPetInstance baby)
 		{
@@ -261,7 +261,7 @@ public final class L2BabyPetInstance extends L2PetInstance
 				return;
 			}
 			
-			L2Skill skill = null;
+			Skill skill = null;
 			if (_majorHeal != null)
 			{
 				// If the owner's HP is more than 80% for Baby Pets and 70% for Improved Baby pets, do nothing.

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ClanHallManagerInstance.java

@@ -23,7 +23,7 @@ import java.util.StringTokenizer;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.cache.HtmCache;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.TeleportLocationTable;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.instancemanager.CHSiegeManager;
@@ -36,7 +36,7 @@ import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.entity.ClanHall;
 import com.l2jserver.gameserver.model.entity.clanhall.AuctionableHall;
 import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.AgitDecoInfo;
@@ -1362,7 +1362,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 					return;
 				}
 				setTarget(player);
-				L2Skill skill;
+				Skill skill;
 				if (val.isEmpty())
 				{
 					return;
@@ -1378,7 +1378,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 						{
 							skill_lvl = Integer.parseInt(st.nextToken());
 						}
-						skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl);
+						skill = SkillData.getInstance().getSkill(skill_id, skill_lvl);
 						if (skill.hasEffectType(L2EffectType.SUMMON))
 						{
 							player.doSimultaneousCast(skill);

+ 30 - 31
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2CubicInstance.java

@@ -27,7 +27,7 @@ import java.util.logging.Logger;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ai.CtrlEvent;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.instancemanager.DuelManager;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Party;
@@ -41,8 +41,7 @@ import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.entity.TvTEvent;
 import com.l2jserver.gameserver.model.entity.TvTEventTeam;
 import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.model.zone.ZoneId;
@@ -89,7 +88,7 @@ public final class L2CubicInstance implements IIdentifiable
 	private boolean _active;
 	private final boolean _givenByOther;
 	
-	private final List<L2Skill> _skills = new ArrayList<>();
+	private final List<Skill> _skills = new ArrayList<>();
 	
 	private Future<?> _disappearTask;
 	private Future<?> _actionTask;
@@ -109,55 +108,55 @@ public final class L2CubicInstance implements IIdentifiable
 		switch (_cubicId)
 		{
 			case STORM_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4049, level));
+				_skills.add(SkillData.getInstance().getSkill(4049, level));
 				break;
 			case VAMPIRIC_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4050, level));
+				_skills.add(SkillData.getInstance().getSkill(4050, level));
 				break;
 			case LIFE_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4051, level));
+				_skills.add(SkillData.getInstance().getSkill(4051, level));
 				doAction();
 				break;
 			case VIPER_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4052, level));
+				_skills.add(SkillData.getInstance().getSkill(4052, level));
 				break;
 			case POLTERGEIST_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4053, level));
-				_skills.add(SkillTable.getInstance().getInfo(4054, level));
-				_skills.add(SkillTable.getInstance().getInfo(4055, level));
+				_skills.add(SkillData.getInstance().getSkill(4053, level));
+				_skills.add(SkillData.getInstance().getSkill(4054, level));
+				_skills.add(SkillData.getInstance().getSkill(4055, level));
 				break;
 			case BINDING_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4164, level));
+				_skills.add(SkillData.getInstance().getSkill(4164, level));
 				break;
 			case AQUA_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4165, level));
+				_skills.add(SkillData.getInstance().getSkill(4165, level));
 				break;
 			case SPARK_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(4166, level));
+				_skills.add(SkillData.getInstance().getSkill(4166, level));
 				break;
 			case ATTRACT_CUBIC:
-				_skills.add(SkillTable.getInstance().getInfo(5115, level));
-				_skills.add(SkillTable.getInstance().getInfo(5116, level));
+				_skills.add(SkillData.getInstance().getSkill(5115, level));
+				_skills.add(SkillData.getInstance().getSkill(5116, level));
 				break;
 			case SMART_CUBIC_ARCANALORD:
-				_skills.add(SkillTable.getInstance().getInfo(4051, 7));
-				_skills.add(SkillTable.getInstance().getInfo(4165, 9));
+				_skills.add(SkillData.getInstance().getSkill(4051, 7));
+				_skills.add(SkillData.getInstance().getSkill(4165, 9));
 				break;
 			case SMART_CUBIC_ELEMENTALMASTER:
-				_skills.add(SkillTable.getInstance().getInfo(4049, 8));
-				_skills.add(SkillTable.getInstance().getInfo(4166, 9));
+				_skills.add(SkillData.getInstance().getSkill(4049, 8));
+				_skills.add(SkillData.getInstance().getSkill(4166, 9));
 				break;
 			case SMART_CUBIC_SPECTRALMASTER:
-				_skills.add(SkillTable.getInstance().getInfo(4049, 8));
-				_skills.add(SkillTable.getInstance().getInfo(4052, 6));
+				_skills.add(SkillData.getInstance().getSkill(4049, 8));
+				_skills.add(SkillData.getInstance().getSkill(4052, 6));
 				break;
 			case SMART_CUBIC_EVATEMPLAR:
-				_skills.add(SkillTable.getInstance().getInfo(4053, 8));
-				_skills.add(SkillTable.getInstance().getInfo(4165, 9));
+				_skills.add(SkillData.getInstance().getSkill(4053, 8));
+				_skills.add(SkillData.getInstance().getSkill(4165, 9));
 				break;
 			case SMART_CUBIC_SHILLIENTEMPLAR:
-				_skills.add(SkillTable.getInstance().getInfo(4049, 8));
-				_skills.add(SkillTable.getInstance().getInfo(5115, 4));
+				_skills.add(SkillData.getInstance().getSkill(4049, 8));
+				_skills.add(SkillData.getInstance().getSkill(5115, 4));
 				break;
 		}
 		_disappearTask = ThreadPoolManager.getInstance().scheduleGeneral(new CubicDisappear(this), _cubicDuration); // disappear
@@ -220,7 +219,7 @@ public final class L2CubicInstance implements IIdentifiable
 		_target = target;
 	}
 	
-	public List<L2Skill> getSkills()
+	public List<Skill> getSkills()
 	{
 		return _skills;
 	}
@@ -464,7 +463,7 @@ public final class L2CubicInstance implements IIdentifiable
 		}
 	}
 	
-	public void useCubicContinuous(L2Skill skill, L2Object[] targets)
+	public void useCubicContinuous(Skill skill, L2Object[] targets)
 	{
 		for (L2Character target : (L2Character[]) targets)
 		{
@@ -501,7 +500,7 @@ public final class L2CubicInstance implements IIdentifiable
 	 * @param skill
 	 * @param targets
 	 */
-	public void useCubicMdam(L2CubicInstance activeCubic, L2Skill skill, L2Object[] targets)
+	public void useCubicMdam(L2CubicInstance activeCubic, Skill skill, L2Object[] targets)
 	{
 		for (L2Character target : (L2Character[]) targets)
 		{
@@ -554,7 +553,7 @@ public final class L2CubicInstance implements IIdentifiable
 		}
 	}
 	
-	public void useCubicDrain(L2CubicInstance activeCubic, L2Skill skill, L2Object[] targets)
+	public void useCubicDrain(L2CubicInstance activeCubic, Skill skill, L2Object[] targets)
 	{
 		if (Config.DEBUG)
 		{
@@ -600,7 +599,7 @@ public final class L2CubicInstance implements IIdentifiable
 		}
 	}
 	
-	public void useCubicDisabler(L2SkillType type, L2Skill skill, L2Object[] targets)
+	public void useCubicDisabler(Skill skill, L2Object[] targets)
 	{
 		if (Config.DEBUG)
 		{

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DecoyInstance.java

@@ -22,13 +22,13 @@ import java.util.concurrent.Future;
 import java.util.logging.Level;
 
 import com.l2jserver.gameserver.ThreadPoolManager;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Decoy;
 import com.l2jserver.gameserver.model.actor.knownlist.DecoyKnownList;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.taskmanager.DecayTaskManager;
 
 public class L2DecoyInstance extends L2Decoy
@@ -46,7 +46,7 @@ public class L2DecoyInstance extends L2Decoy
 		_timeRemaining = _totalLifeTime;
 		int skilllevel = getTemplate().getDisplayId() - 13070;
 		_DecoyLifeTask = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new DecoyLifetime(getOwner(), this), 1000, 1000);
-		_HateSpam = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new HateSpam(this, SkillTable.getInstance().getInfo(5272, skilllevel)), 2000, 5000);
+		_HateSpam = ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new HateSpam(this, SkillData.getInstance().getSkill(5272, skilllevel)), 2000, 5000);
 	}
 	
 	@Override
@@ -112,9 +112,9 @@ public class L2DecoyInstance extends L2Decoy
 	private static class HateSpam implements Runnable
 	{
 		private final L2DecoyInstance _activeChar;
-		private final L2Skill _skill;
+		private final Skill _skill;
 		
-		HateSpam(L2DecoyInstance activeChar, L2Skill Hate)
+		HateSpam(L2DecoyInstance activeChar, Skill Hate)
 		{
 			_activeChar = activeChar;
 			_skill = Hate;

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2DoorInstance.java

@@ -52,7 +52,7 @@ import com.l2jserver.gameserver.model.entity.Instance;
 import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.DoorStatusUpdate;
 import com.l2jserver.gameserver.network.serverpackets.OnEventTrigger;
@@ -146,7 +146,7 @@ public class L2DoorInstance extends L2Character
 		}
 		
 		@Override
-		public void doCast(L2Skill skill)
+		public void doCast(Skill skill)
 		{
 		}
 	}
@@ -674,7 +674,7 @@ public class L2DoorInstance extends L2Character
 	}
 	
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
 	{
 		if (isWall() && (getInstanceId() == 0))
 		{
@@ -694,7 +694,7 @@ public class L2DoorInstance extends L2Character
 	}
 	
 	@Override
-	public void reduceCurrentHpByDOT(double i, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHpByDOT(double i, L2Character attacker, Skill skill)
 	{
 		// doors can't be damaged by DOTs
 	}

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

@@ -20,13 +20,13 @@ package com.l2jserver.gameserver.model.actor.instance;
 
 import java.util.List;
 
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.L2SkillLearn;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.AcquireSkillType;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -78,7 +78,7 @@ public final class L2FishermanInstance extends L2MerchantInstance
 		
 		for (L2SkillLearn s : skills)
 		{
-			final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+			final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 			
 			if (sk == null)
 			{

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

@@ -30,7 +30,7 @@ import com.l2jserver.gameserver.model.L2Spawn;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Summon;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.NpcStringId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.NpcSay;
@@ -119,7 +119,7 @@ public class L2FortCommanderInstance extends L2DefenderInstance
 	}
 	
 	@Override
-	public final void addDamage(L2Character attacker, int damage, L2Skill skill)
+	public final void addDamage(L2Character attacker, int damage, Skill skill)
 	{
 		L2Spawn spawn = getSpawn();
 		if ((spawn != null) && canTalk())

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FortManagerInstance.java

@@ -23,7 +23,7 @@ import java.util.StringTokenizer;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.cache.HtmCache;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.TeleportLocationTable;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.ClanPrivilege;
@@ -31,7 +31,7 @@ import com.l2jserver.gameserver.model.L2TeleportLocation;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.entity.Fort;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
 import com.l2jserver.gameserver.network.serverpackets.SortedWareHouseWithdrawalList;
@@ -861,7 +861,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 			else if (actualCommand.equalsIgnoreCase("support"))
 			{
 				setTarget(player);
-				L2Skill skill;
+				Skill skill;
 				if (val.isEmpty())
 				{
 					return;
@@ -886,7 +886,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 						{
 							skill_lvl = Integer.parseInt(st.nextToken());
 						}
-						skill = SkillTable.getInstance().getInfo(skill_id, skill_lvl);
+						skill = SkillData.getInstance().getSkill(skill_id, skill_lvl);
 						if (skill.hasEffectType(L2EffectType.SUMMON))
 						{
 							player.doCast(skill);

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

@@ -25,13 +25,13 @@ import java.util.logging.Logger;
 import com.l2jserver.gameserver.cache.HtmCache;
 import com.l2jserver.gameserver.datatables.NpcBufferTable;
 import com.l2jserver.gameserver.datatables.NpcBufferTable.NpcBufferData;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -162,7 +162,7 @@ public class L2NpcBufferInstance extends L2Npc
 					}
 				}
 				
-				final L2Skill skill = SkillTable.getInstance().getInfo(npcBuffGroupInfo.getSkill().getSkillId(), npcBuffGroupInfo.getSkill().getSkillLvl());
+				final Skill skill = SkillData.getInstance().getSkill(npcBuffGroupInfo.getSkill().getSkillId(), npcBuffGroupInfo.getSkill().getSkillLvl());
 				if (skill != null)
 				{
 					skill.applyEffects(player, target);

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2NpcInstance.java

@@ -22,7 +22,7 @@ import java.util.List;
 import java.util.Map;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.L2SkillLearn;
@@ -31,7 +31,7 @@ import com.l2jserver.gameserver.model.actor.status.FolkStatus;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.base.AcquireSkillType;
 import com.l2jserver.gameserver.model.base.ClassId;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
 import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
@@ -86,7 +86,7 @@ public class L2NpcInstance extends L2Npc
 			int counts = 0;
 			for (L2SkillLearn s : skills)
 			{
-				final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+				final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 				
 				if (sk != null)
 				{
@@ -138,7 +138,7 @@ public class L2NpcInstance extends L2Npc
 		player.setLearningClass(classId);
 		for (L2SkillLearn s : skills)
 		{
-			if (SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel()) != null)
+			if (SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel()) != null)
 			{
 				asl.addSkill(s.getSkillId(), s.getSkillLevel(), s.getSkillLevel(), s.getCalculatedLevelUpSp(player.getClassId(), classId), 0);
 				count++;

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

@@ -84,8 +84,8 @@ import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.NpcData;
 import com.l2jserver.gameserver.datatables.PetDataTable;
 import com.l2jserver.gameserver.datatables.RecipeData;
-import com.l2jserver.gameserver.datatables.SkillTable;
-import com.l2jserver.gameserver.datatables.SkillTable.FrequentSkill;
+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,7 +236,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.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.targets.L2TargetType;
 import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.model.stats.Stats;
@@ -425,7 +425,7 @@ public final class L2PcInstance extends L2Playable
 		}
 		
 		@Override
-		public void doCast(L2Skill skill)
+		public void doCast(Skill skill)
 		{
 			super.doCast(skill);
 			
@@ -842,7 +842,7 @@ public final class L2PcInstance extends L2Playable
 	private long _notMoveUntil = 0;
 	
 	/** Map containing all custom skills of this player. */
-	private Map<Integer, L2Skill> _customSkills = null;
+	private Map<Integer, Skill> _customSkills = null;
 	
 	private boolean _canRevive = true;
 	
@@ -2025,12 +2025,12 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public boolean hasDwarvenCraft()
 	{
-		return getSkillLevel(L2Skill.SKILL_CREATE_DWARVEN) >= 1;
+		return getSkillLevel(Skill.SKILL_CREATE_DWARVEN) >= 1;
 	}
 	
 	public int getDwarvenCraft()
 	{
-		return getSkillLevel(L2Skill.SKILL_CREATE_DWARVEN);
+		return getSkillLevel(Skill.SKILL_CREATE_DWARVEN);
 	}
 	
 	/**
@@ -2038,12 +2038,12 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public boolean hasCommonCraft()
 	{
-		return getSkillLevel(L2Skill.SKILL_CREATE_COMMON) >= 1;
+		return getSkillLevel(Skill.SKILL_CREATE_COMMON) >= 1;
 	}
 	
 	public int getCommonCraft()
 	{
-		return getSkillLevel(L2Skill.SKILL_CREATE_COMMON);
+		return getSkillLevel(Skill.SKILL_CREATE_COMMON);
 	}
 	
 	/**
@@ -2277,7 +2277,7 @@ public final class L2PcInstance extends L2Playable
 				_curWeightPenalty = newWeightPenalty;
 				if ((newWeightPenalty > 0) && !_dietMode)
 				{
-					addSkill(SkillTable.getInstance().getInfo(4270, newWeightPenalty));
+					addSkill(SkillData.getInstance().getSkill(4270, newWeightPenalty));
 					setIsOverloaded(getCurrentLoad() > maxLoad);
 				}
 				else
@@ -2337,7 +2337,7 @@ public final class L2PcInstance extends L2Playable
 			_expertiseWeaponPenalty = weaponPenalty;
 			if (_expertiseWeaponPenalty > 0)
 			{
-				addSkill(SkillTable.getInstance().getInfo(FrequentSkill.WEAPON_GRADE_PENALTY.getId(), _expertiseWeaponPenalty));
+				addSkill(SkillData.getInstance().getSkill(FrequentSkill.WEAPON_GRADE_PENALTY.getId(), _expertiseWeaponPenalty));
 			}
 			else
 			{
@@ -2355,7 +2355,7 @@ public final class L2PcInstance extends L2Playable
 			_expertiseArmorPenalty = armorPenalty;
 			if (_expertiseArmorPenalty > 0)
 			{
-				addSkill(SkillTable.getInstance().getInfo(FrequentSkill.ARMOR_GRADE_PENALTY.getId(), _expertiseArmorPenalty));
+				addSkill(SkillData.getInstance().getSkill(FrequentSkill.ARMOR_GRADE_PENALTY.getId(), _expertiseArmorPenalty));
 			}
 			else
 			{
@@ -2833,8 +2833,8 @@ public final class L2PcInstance extends L2Playable
 	{
 		int skillCounter = 0;
 		// Get available skills
-		Collection<L2Skill> skills = SkillTreesData.getInstance().getAllAvailableSkills(this, getClassId(), includedByFs, includeAutoGet);
-		for (L2Skill sk : skills)
+		Collection<Skill> skills = SkillTreesData.getInstance().getAllAvailableSkills(this, getClassId(), includedByFs, includeAutoGet);
+		for (Skill sk : skills)
 		{
 			if (getKnownSkill(sk.getId()) == sk)
 			{
@@ -2869,11 +2869,11 @@ public final class L2PcInstance extends L2Playable
 	{
 		// Get available skills
 		final List<L2SkillLearn> autoGetSkills = SkillTreesData.getInstance().getAvailableAutoGetSkills(this);
-		final SkillTable st = SkillTable.getInstance();
-		L2Skill skill;
+		final SkillData st = SkillData.getInstance();
+		Skill skill;
 		for (L2SkillLearn s : autoGetSkills)
 		{
-			skill = st.getInfo(s.getSkillId(), s.getSkillLevel());
+			skill = st.getSkill(s.getSkillId(), s.getSkillLevel());
 			if (skill != null)
 			{
 				addSkill(skill, true);
@@ -4269,14 +4269,14 @@ public final class L2PcInstance extends L2Playable
 	}
 	
 	@Override
-	public void enableSkill(L2Skill skill)
+	public void enableSkill(Skill skill)
 	{
 		super.enableSkill(skill);
 		removeTimeStamp(skill);
 	}
 	
 	@Override
-	public boolean checkDoCastConditions(L2Skill skill)
+	public boolean checkDoCastConditions(Skill skill)
 	{
 		if (!super.checkDoCastConditions(skill))
 		{
@@ -5801,7 +5801,7 @@ public final class L2PcInstance extends L2Playable
 	 */
 	public boolean isLucky()
 	{
-		return (getLevel() <= 9) && isAffectedBySkill(L2Skill.SKILL_LUCKY);
+		return (getLevel() <= 9) && isAffectedBySkill(Skill.SKILL_LUCKY);
 	}
 	
 	/**
@@ -5831,7 +5831,7 @@ public final class L2PcInstance extends L2Playable
 		// Get the level of the L2PcInstance
 		final int lvl = getLevel();
 		
-		int clan_luck = getSkillLevel(L2Skill.SKILL_CLAN_LUCK);
+		int clan_luck = getSkillLevel(Skill.SKILL_CLAN_LUCK);
 		
 		double clan_luck_modificator = 1.0;
 		
@@ -6755,7 +6755,7 @@ public final class L2PcInstance extends L2Playable
 		clearPetData();
 		if (wasFlying)
 		{
-			removeSkill(SkillTable.FrequentSkill.WYVERN_BREATH.getSkill());
+			removeSkill(SkillData.FrequentSkill.WYVERN_BREATH.getSkill());
 		}
 		broadcastPacket(new Ride(this));
 		setMountObjectID(0);
@@ -7742,7 +7742,7 @@ public final class L2PcInstance extends L2Playable
 						continue;
 					}
 					
-					final L2Skill skill = info.getSkill();
+					final Skill skill = info.getSkill();
 					// Do not save heals.
 					if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
 					{
@@ -7875,7 +7875,7 @@ public final class L2PcInstance extends L2Playable
 	}
 	
 	@Override
-	public L2Skill addSkill(L2Skill newSkill)
+	public Skill addSkill(Skill newSkill)
 	{
 		addCustomSkill(newSkill);
 		return super.addSkill(newSkill);
@@ -7888,10 +7888,10 @@ public final class L2PcInstance extends L2Playable
 	 * @param store
 	 * @return The L2Skill replaced or null if just added a new L2Skill
 	 */
-	public L2Skill addSkill(L2Skill newSkill, boolean store)
+	public Skill addSkill(Skill newSkill, boolean store)
 	{
 		// Add a skill to the L2PcInstance _skills and its Func objects to the calculator set of the L2PcInstance
-		final L2Skill oldSkill = addSkill(newSkill);
+		final Skill oldSkill = addSkill(newSkill);
 		// Add or update a L2PcInstance skill in the character_skills table of the database
 		if (store)
 		{
@@ -7901,13 +7901,13 @@ public final class L2PcInstance extends L2Playable
 	}
 	
 	@Override
-	public L2Skill removeSkill(L2Skill skill, boolean store)
+	public Skill removeSkill(Skill skill, boolean store)
 	{
 		removeCustomSkill(skill);
 		return store ? removeSkill(skill) : super.removeSkill(skill, true);
 	}
 	
-	public L2Skill removeSkill(L2Skill skill, boolean store, boolean cancelEffect)
+	public Skill removeSkill(Skill skill, boolean store, boolean cancelEffect)
 	{
 		removeCustomSkill(skill);
 		return store ? removeSkill(skill) : super.removeSkill(skill, cancelEffect);
@@ -7919,11 +7919,11 @@ public final class L2PcInstance extends L2Playable
 	 * @param skill The L2Skill to remove from the L2Character
 	 * @return The L2Skill removed
 	 */
-	public L2Skill removeSkill(L2Skill skill)
+	public Skill removeSkill(Skill skill)
 	{
 		removeCustomSkill(skill);
 		// Remove a skill from the L2Character and its Func objects from calculator set of the L2Character
-		final L2Skill oldSkill = super.removeSkill(skill, true);
+		final Skill oldSkill = super.removeSkill(skill, true);
 		if (oldSkill != null)
 		{
 			try (Connection con = L2DatabaseFactory.getInstance().getConnection();
@@ -7964,7 +7964,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param oldSkill
 	 * @param newClassIndex
 	 */
-	private void storeSkill(L2Skill newSkill, L2Skill oldSkill, int newClassIndex)
+	private void storeSkill(Skill newSkill, Skill oldSkill, int newClassIndex)
 	{
 		int classIndex = _classIndex;
 		
@@ -8027,7 +8027,7 @@ public final class L2PcInstance extends L2Playable
 					final int level = rset.getInt("skill_level");
 					
 					// Create a L2Skill object for each record
-					final L2Skill skill = SkillTable.getInstance().getInfo(id, level);
+					final Skill skill = SkillData.getInstance().getSkill(id, level);
 					
 					if (skill == null)
 					{
@@ -8078,7 +8078,7 @@ public final class L2PcInstance extends L2Playable
 					long systime = rset.getLong("systime");
 					int restoreType = rset.getInt("restore_type");
 					
-					final L2Skill skill = SkillTable.getInstance().getInfo(rset.getInt("skill_id"), rset.getInt("skill_level"));
+					final Skill skill = SkillData.getInstance().getSkill(rset.getInt("skill_id"), rset.getInt("skill_level"));
 					if (skill == null)
 					{
 						continue;
@@ -8642,7 +8642,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param dontMove used to prevent movement, if not in range
 	 */
 	@Override
-	public boolean useMagic(L2Skill skill, boolean forceUse, boolean dontMove)
+	public boolean useMagic(Skill skill, boolean forceUse, boolean dontMove)
 	{
 		// Check if the skill is active
 		if (skill.isPassive())
@@ -8718,7 +8718,7 @@ public final class L2PcInstance extends L2Playable
 		return true;
 	}
 	
-	private boolean checkUseMagicConditions(L2Skill skill, boolean forceUse, boolean dontMove)
+	private boolean checkUseMagicConditions(Skill skill, boolean forceUse, boolean dontMove)
 	{
 		// ************************************* Check Player State *******************************************
 		
@@ -9121,7 +9121,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param skill L2Skill instance with the skill being casted
 	 * @return False if the skill is a pvpSkill and target is not a valid pvp target
 	 */
-	public boolean checkPvpSkill(L2Object target, L2Skill skill)
+	public boolean checkPvpSkill(L2Object target, Skill skill)
 	{
 		return checkPvpSkill(target, skill, false);
 	}
@@ -9133,7 +9133,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param srcIsSummon is L2Summon - caster?
 	 * @return {@code false} if the skill is a pvpSkill and target is not a valid pvp target, {@code true} otherwise.
 	 */
-	public boolean checkPvpSkill(L2Object target, L2Skill skill, boolean srcIsSummon)
+	public boolean checkPvpSkill(L2Object target, Skill skill, boolean srcIsSummon)
 	{
 		final L2PcInstance targetPlayer = target != null ? target.getActingPlayer() : null;
 		if (skill.isDebuff() || skill.hasEffectType(L2EffectType.STEAL_ABNORMAL) || (skill.isBad() && skill.hasEffectType(L2EffectType.DISPEL)))
@@ -9962,14 +9962,14 @@ public final class L2PcInstance extends L2Playable
 	{
 		if (hero && (_baseClass == _activeClass))
 		{
-			for (L2Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
+			for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
 			{
 				addSkill(skill, false); // Don't persist hero skills into database
 			}
 		}
 		else
 		{
-			for (L2Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
+			for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
 			{
 				removeSkill(skill, false, true); // Just remove skills from non-hero players
 			}
@@ -10123,17 +10123,17 @@ public final class L2PcInstance extends L2Playable
 	
 	public void setNoble(boolean val)
 	{
-		final Collection<L2Skill> nobleSkillTree = SkillTreesData.getInstance().getNobleSkillTree().values();
+		final Collection<Skill> nobleSkillTree = SkillTreesData.getInstance().getNobleSkillTree().values();
 		if (val)
 		{
-			for (L2Skill skill : nobleSkillTree)
+			for (Skill skill : nobleSkillTree)
 			{
 				addSkill(skill, false);
 			}
 		}
 		else
 		{
-			for (L2Skill skill : nobleSkillTree)
+			for (Skill skill : nobleSkillTree)
 			{
 				removeSkill(skill, false, true);
 			}
@@ -10195,7 +10195,7 @@ public final class L2PcInstance extends L2Playable
 		boolean isDisabled = false;
 		SkillList sl = new SkillList();
 		
-		for (L2Skill s : getAllSkills())
+		for (Skill s : getAllSkills())
 		{
 			if (s == null)
 			{
@@ -10211,7 +10211,7 @@ public final class L2PcInstance extends L2Playable
 				isDisabled = s.isClanSkill() && (getClan().getReputationScore() < 0);
 			}
 			
-			boolean isEnchantable = SkillTable.getInstance().isEnchantable(s.getId());
+			boolean isEnchantable = SkillData.getInstance().isEnchantable(s.getId());
 			if (isEnchantable)
 			{
 				L2EnchantSkillLearn esl = EnchantSkillGroupsData.getInstance().getSkillEnchantmentBySkillId(s.getId());
@@ -10291,13 +10291,13 @@ public final class L2PcInstance extends L2Playable
 			
 			final ClassId subTemplate = ClassId.getClassId(classId);
 			final Map<Integer, L2SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(subTemplate);
-			final Map<Integer, L2Skill> prevSkillList = new HashMap<>();
+			final Map<Integer, Skill> prevSkillList = new HashMap<>();
 			for (L2SkillLearn skillInfo : skillTree.values())
 			{
 				if (skillInfo.getGetLevel() <= 40)
 				{
-					L2Skill prevSkill = prevSkillList.get(skillInfo.getSkillId());
-					L2Skill newSkill = SkillTable.getInstance().getInfo(skillInfo.getSkillId(), skillInfo.getSkillLevel());
+					Skill prevSkill = prevSkillList.get(skillInfo.getSkillId());
+					Skill newSkill = SkillData.getInstance().getSkill(skillInfo.getSkillId(), skillInfo.getSkillLevel());
 					
 					if ((prevSkill != null) && (prevSkill.getLevel() > newSkill.getLevel()))
 					{
@@ -10524,7 +10524,7 @@ public final class L2PcInstance extends L2Playable
 			// 7. Reset HP/MP/CP stats and send Server->Client character status packet to reflect changes.
 			// 8. Restore shortcut data related to this class.
 			// 9. Resend a class change animation effect to broadcast to all nearby players.
-			for (L2Skill oldSkill : getAllSkills())
+			for (Skill oldSkill : getAllSkills())
 			{
 				removeSkill(oldSkill, false, true);
 			}
@@ -10822,7 +10822,7 @@ public final class L2PcInstance extends L2Playable
 		doRevive();
 	}
 	
-	public void reviveRequest(L2PcInstance reviver, L2Skill skill, boolean Pet, int power)
+	public void reviveRequest(L2PcInstance reviver, Skill skill, boolean Pet, int power)
 	{
 		if (isResurrectionBlocked())
 		{
@@ -11109,7 +11109,7 @@ public final class L2PcInstance extends L2Playable
 	}
 	
 	@Override
-	public void reduceCurrentHp(double value, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
+	public void reduceCurrentHp(double value, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
 	{
 		if (skill != null)
 		{
@@ -11493,7 +11493,7 @@ public final class L2PcInstance extends L2Playable
 		{
 			if (isFlying())
 			{
-				removeSkill(SkillTable.getInstance().getInfo(4289, 1));
+				removeSkill(SkillData.getInstance().getSkill(4289, 1));
 			}
 		}
 		catch (Exception e)
@@ -12366,7 +12366,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param ctrlPressed
 	 * @param shiftPressed
 	 */
-	public void setCurrentSkill(L2Skill currentSkill, boolean ctrlPressed, boolean shiftPressed)
+	public void setCurrentSkill(Skill currentSkill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		if (currentSkill == null)
 		{
@@ -12390,7 +12390,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param ctrlPressed
 	 * @param shiftPressed
 	 */
-	public void setCurrentPetSkill(L2Skill currentSkill, boolean ctrlPressed, boolean shiftPressed)
+	public void setCurrentPetSkill(Skill currentSkill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		if (currentSkill == null)
 		{
@@ -12411,7 +12411,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param ctrlPressed
 	 * @param shiftPressed
 	 */
-	public void setQueuedSkill(L2Skill queuedSkill, boolean ctrlPressed, boolean shiftPressed)
+	public void setQueuedSkill(Skill queuedSkill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		if (queuedSkill == null)
 		{
@@ -12540,7 +12540,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param skill
 	 * @return
 	 */
-	public boolean decreaseSouls(int count, L2Skill skill)
+	public boolean decreaseSouls(int count, Skill skill)
 	{
 		_souls -= count;
 		
@@ -12625,7 +12625,7 @@ public final class L2PcInstance extends L2Playable
 		
 		if (getDeathPenaltyBuffLevel() != 0)
 		{
-			L2Skill skill = SkillTable.getInstance().getInfo(5076, getDeathPenaltyBuffLevel());
+			Skill skill = SkillData.getInstance().getSkill(5076, getDeathPenaltyBuffLevel());
 			
 			if (skill != null)
 			{
@@ -12635,7 +12635,7 @@ public final class L2PcInstance extends L2Playable
 		
 		_deathPenaltyBuffLevel++;
 		
-		addSkill(SkillTable.getInstance().getInfo(5076, getDeathPenaltyBuffLevel()), false);
+		addSkill(SkillData.getInstance().getSkill(5076, getDeathPenaltyBuffLevel()), false);
 		sendPacket(new EtcStatusUpdate(this));
 		SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.DEATH_PENALTY_LEVEL_S1_ADDED);
 		sm.addInt(getDeathPenaltyBuffLevel());
@@ -12649,7 +12649,7 @@ public final class L2PcInstance extends L2Playable
 			return;
 		}
 		
-		L2Skill skill = SkillTable.getInstance().getInfo(5076, getDeathPenaltyBuffLevel());
+		Skill skill = SkillData.getInstance().getSkill(5076, getDeathPenaltyBuffLevel());
 		
 		if (skill != null)
 		{
@@ -12660,7 +12660,7 @@ public final class L2PcInstance extends L2Playable
 		
 		if (getDeathPenaltyBuffLevel() > 0)
 		{
-			addSkill(SkillTable.getInstance().getInfo(5076, getDeathPenaltyBuffLevel()), false);
+			addSkill(SkillData.getInstance().getSkill(5076, getDeathPenaltyBuffLevel()), false);
 			sendPacket(new EtcStatusUpdate(this));
 			SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.DEATH_PENALTY_LEVEL_S1_ADDED);
 			sm.addInt(getDeathPenaltyBuffLevel());
@@ -12677,7 +12677,7 @@ public final class L2PcInstance extends L2Playable
 	{
 		if (getDeathPenaltyBuffLevel() > 0)
 		{
-			addSkill(SkillTable.getInstance().getInfo(5076, getDeathPenaltyBuffLevel()), false);
+			addSkill(SkillData.getInstance().getSkill(5076, getDeathPenaltyBuffLevel()), false);
 		}
 	}
 	
@@ -13910,12 +13910,12 @@ public final class L2PcInstance extends L2Playable
 	public void checkPlayerSkills()
 	{
 		L2SkillLearn learn;
-		for (Entry<Integer, L2Skill> e : getSkills().entrySet())
+		for (Entry<Integer, Skill> e : getSkills().entrySet())
 		{
 			learn = SkillTreesData.getInstance().getClassSkill(e.getKey(), e.getValue().getLevel() % 100, getClassId());
 			if (learn != null)
 			{
-				int lvlDiff = e.getKey() == L2Skill.SKILL_EXPERTISE ? 0 : 9;
+				int lvlDiff = e.getKey() == Skill.SKILL_EXPERTISE ? 0 : 9;
 				if (getLevel() < (learn.getGetLevel() - lvlDiff))
 				{
 					deacreaseSkillLevel(e.getValue(), lvlDiff);
@@ -13924,7 +13924,7 @@ public final class L2PcInstance extends L2Playable
 		}
 	}
 	
-	private void deacreaseSkillLevel(L2Skill skill, int lvlDiff)
+	private void deacreaseSkillLevel(Skill skill, int lvlDiff)
 	{
 		int nextLevel = -1;
 		final Map<Integer, L2SkillLearn> skillTree = SkillTreesData.getInstance().getCompleteClassSkillTree(getClassId());
@@ -13944,7 +13944,7 @@ public final class L2PcInstance extends L2Playable
 		else
 		{
 			_log.info("Decreasing skill " + skill + " to " + nextLevel + " for player " + toString());
-			addSkill(SkillTable.getInstance().getInfo(skill.getId(), nextLevel), true); // replace with lower one
+			addSkill(SkillData.getInstance().getSkill(skill.getId(), nextLevel), true); // replace with lower one
 		}
 	}
 	
@@ -14308,7 +14308,7 @@ public final class L2PcInstance extends L2Playable
 	 * @param skillId the display skill Id
 	 * @return the custom skill
 	 */
-	public final L2Skill getCustomSkill(int skillId)
+	public final Skill getCustomSkill(int skillId)
 	{
 		return (_customSkills != null) ? _customSkills.get(skillId) : null;
 	}
@@ -14317,13 +14317,13 @@ public final class L2PcInstance extends L2Playable
 	 * Add a skill level to the custom skills map.
 	 * @param skill the skill to add
 	 */
-	private final void addCustomSkill(L2Skill skill)
+	private final void addCustomSkill(Skill skill)
 	{
 		if ((skill != null) && (skill.getDisplayId() != skill.getId()))
 		{
 			if (_customSkills == null)
 			{
-				_customSkills = new FastMap<Integer, L2Skill>().shared();
+				_customSkills = new FastMap<Integer, Skill>().shared();
 			}
 			_customSkills.put(skill.getDisplayId(), skill);
 		}
@@ -14333,7 +14333,7 @@ public final class L2PcInstance extends L2Playable
 	 * Remove a skill level from the custom skill map.
 	 * @param skill the skill to remove
 	 */
-	private final void removeCustomSkill(L2Skill skill)
+	private final void removeCustomSkill(Skill skill)
 	{
 		if ((skill != null) && (_customSkills != null) && (skill.getDisplayId() != skill.getId()))
 		{

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

@@ -35,7 +35,7 @@ import com.l2jserver.gameserver.ai.CtrlIntention;
 import com.l2jserver.gameserver.datatables.CharSummonTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.PetDataTable;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SummonEffectsTable;
 import com.l2jserver.gameserver.datatables.SummonEffectsTable.SummonEffect;
 import com.l2jserver.gameserver.enums.InstanceType;
@@ -63,7 +63,7 @@ import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.EffectScope;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -1072,7 +1072,7 @@ public class L2PetInstance extends L2Summon
 						continue;
 					}
 					
-					final L2Skill skill = info.getSkill();
+					final Skill skill = info.getSkill();
 					// Do not save heals.
 					if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
 					{
@@ -1135,7 +1135,7 @@ public class L2PetInstance extends L2Summon
 					{
 						int effectCurTime = rset.getInt("remaining_time");
 						
-						final L2Skill skill = SkillTable.getInstance().getInfo(rset.getInt("skill_id"), rset.getInt("skill_level"));
+						final Skill skill = SkillData.getInstance().getSkill(rset.getInt("skill_id"), rset.getInt("skill_level"));
 						if (skill == null)
 						{
 							continue;
@@ -1284,19 +1284,19 @@ public class L2PetInstance extends L2Summon
 	}
 	
 	@Override
-	public int getCriticalHit(L2Character target, L2Skill skill)
+	public int getCriticalHit(L2Character target, Skill skill)
 	{
 		return getStat().getCriticalHit(target, skill);
 	}
 	
 	@Override
-	public int getMAtk(L2Character target, L2Skill skill)
+	public int getMAtk(L2Character target, Skill skill)
 	{
 		return getStat().getMAtk(target, skill);
 	}
 	
 	@Override
-	public int getMDef(L2Character target, L2Skill skill)
+	public int getMDef(L2Character target, Skill skill)
 	{
 		return getStat().getMDef(target, skill);
 	}
@@ -1360,7 +1360,7 @@ public class L2PetInstance extends L2Summon
 				_curWeightPenalty = newWeightPenalty;
 				if (newWeightPenalty > 0)
 				{
-					addSkill(SkillTable.getInstance().getInfo(4270, newWeightPenalty));
+					addSkill(SkillData.getInstance().getSkill(4270, newWeightPenalty));
 					setIsOverloaded(getCurrentLoad() >= maxLoad);
 				}
 				else

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

@@ -26,7 +26,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.tasks.attackable.OnKillNotifyTask;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * This class extends Guard class for quests, that require tracking of onAttack and onKill events from monsters' attacks.
@@ -44,7 +44,7 @@ public final class L2QuestGuardInstance extends L2GuardInstance
 	}
 	
 	@Override
-	public void addDamage(L2Character attacker, int damage, L2Skill skill)
+	public void addDamage(L2Character attacker, int damage, Skill skill)
 	{
 		super.addDamage(attacker, damage, skill);
 		

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java

@@ -32,7 +32,7 @@ import com.l2jserver.Config;
 import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.CharSummonTable;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SummonEffectsTable;
 import com.l2jserver.gameserver.datatables.SummonEffectsTable.SummonEffect;
 import com.l2jserver.gameserver.enums.InstanceType;
@@ -44,7 +44,7 @@ import com.l2jserver.gameserver.model.holders.ItemHolder;
 import com.l2jserver.gameserver.model.skills.AbnormalType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
 import com.l2jserver.gameserver.model.skills.EffectScope;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SetSummonRemainTime;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -196,7 +196,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 	 * If the resulting skill level doesn't exist use the max that does exist!
 	 */
 	@Override
-	public void doCast(L2Skill skill)
+	public void doCast(Skill skill)
 	{
 		final int petLevel = getLevel();
 		int skillLevel = petLevel / 10;
@@ -211,7 +211,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 			skillLevel = 1;
 		}
 		
-		final L2Skill skillToCast = SkillTable.getInstance().getInfo(skill.getId(), skillLevel);
+		final Skill skillToCast = SkillData.getInstance().getSkill(skill.getId(), skillLevel);
 		
 		if (skillToCast != null)
 		{
@@ -241,7 +241,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 			{
 				for (SummonEffect effect : effects)
 				{
-					final L2Skill skill = effect.getSkill();
+					final Skill skill = effect.getSkill();
 					if ((skill != null) && (skill.getId() == skillId))
 					{
 						effects.remove(effect);
@@ -309,7 +309,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 							continue;
 						}
 						
-						final L2Skill skill = info.getSkill();
+						final Skill skill = info.getSkill();
 						// Do not save heals.
 						if (skill.getAbnormalType() == AbnormalType.LIFE_FORCE_OTHERS)
 						{
@@ -391,7 +391,7 @@ public class L2ServitorInstance extends L2Summon implements Runnable
 						{
 							int effectCurTime = rset.getInt("remaining_time");
 							
-							final L2Skill skill = SkillTable.getInstance().getInfo(rset.getInt("skill_id"), rset.getInt("skill_level"));
+							final Skill skill = SkillData.getInstance().getSkill(rset.getInt("skill_id"), rset.getInt("skill_level"));
 							if (skill == null)
 							{
 								continue;

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

@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.status.SiegeFlagStatus;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.entity.Siegable;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -200,7 +200,7 @@ public class L2SiegeFlagInstance extends L2Npc
 	}
 	
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, Skill skill)
 	{
 		super.reduceCurrentHp(damage, attacker, skill);
 		if (canTalk())

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

@@ -28,7 +28,7 @@ import com.l2jserver.gameserver.model.actor.status.StaticObjStatus;
 import com.l2jserver.gameserver.model.actor.templates.L2CharTemplate;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.ShowTownMap;
 import com.l2jserver.gameserver.network.serverpackets.StaticObject;
 
@@ -76,7 +76,7 @@ public final class L2StaticObjectInstance extends L2Character
 		}
 		
 		@Override
-		public void doCast(L2Skill skill)
+		public void doCast(Skill skill)
 		{
 		}
 	}

+ 14 - 14
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2TamedBeastInstance.java

@@ -27,7 +27,7 @@ import javolution.util.FastList;
 
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.ai.CtrlIntention;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.enums.InstanceType;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.Location;
@@ -35,7 +35,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
@@ -62,7 +62,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 	private Future<?> _buffTask = null;
 	private Future<?> _durationCheckTask = null;
 	protected boolean _isFreyaBeast;
-	private List<L2Skill> _beastSkills = null;
+	private List<Skill> _beastSkills = null;
 	
 	public L2TamedBeastInstance(int objectId, L2NpcTemplate template)
 	{
@@ -202,7 +202,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 		return _isFreyaBeast;
 	}
 	
-	public void addBeastSkill(L2Skill skill)
+	public void addBeastSkill(Skill skill)
 	{
 		if (_beastSkills == null)
 		{
@@ -218,7 +218,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 			return;
 		}
 		int delay = 100;
-		for (L2Skill skill : _beastSkills)
+		for (Skill skill : _beastSkills)
 		{
 			ThreadPoolManager.getInstance().scheduleGeneral(new buffCast(skill), delay);
 			delay += (100 + skill.getHitTime());
@@ -228,9 +228,9 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 	
 	private class buffCast implements Runnable
 	{
-		private final L2Skill _skill;
+		private final Skill _skill;
 		
-		public buffCast(L2Skill skill)
+		public buffCast(Skill skill)
 		{
 			_skill = skill;
 		}
@@ -273,7 +273,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 			{
 				// instead of calculating this value each time, let's get this now and pass it on
 				int totalBuffsAvailable = 0;
-				for (L2Skill skill : getTemplate().getSkills().values())
+				for (Skill skill : getTemplate().getSkills().values())
 				{
 					// if the skill is a buff, check if the owner has it already [ owner.getEffect(L2Skill skill) ]
 					if (skill.isContinuous() && !skill.isDebuff())
@@ -361,7 +361,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 		// use of more than one debuff at this moment is acceptable
 		if (HPRatio >= 0.8)
 		{
-			for (L2Skill skill : getTemplate().getSkills().values())
+			for (Skill skill : getTemplate().getSkills().values())
 			{
 				// if the skill is a debuff, check if the attacker has it already [ attacker.getEffect(L2Skill skill) ]
 				if (skill.isDebuff() && (Rnd.get(3) < 1) && ((attacker != null) && attacker.isAffectedBySkill(skill.getId())))
@@ -381,7 +381,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 			}
 			
 			// if the owner has a lot of HP, then debuff the enemy with a random debuff among the available skills
-			for (L2Skill skill : getTemplate().getSkills().values())
+			for (Skill skill : getTemplate().getSkills().values())
 			{
 				// if the skill is a buff, check if the owner has it already [ owner.getEffect(L2Skill skill) ]
 				if ((Rnd.get(5) < chance) && skill.hasEffectType(L2EffectType.CPHEAL, L2EffectType.HEAL, L2EffectType.HEAL_PERCENT, L2EffectType.MANAHEAL_BY_LEVEL, L2EffectType.MANAHEAL_PERCENT))
@@ -400,7 +400,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 	 * @param skill
 	 * @param target
 	 */
-	protected void sitCastAndFollow(L2Skill skill, L2Character target)
+	protected void sitCastAndFollow(Skill skill, L2Character target)
 	{
 		stopMove(null);
 		broadcastPacket(new StopMove(this));
@@ -467,7 +467,7 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 					
 					// emulate a call to the owner using food, but bypass all checks for range, etc
 					// this also causes a call to the AI tasks handling feeding, which may call onReceiveFood as required.
-					owner.callSkill(SkillTable.getInstance().getInfo(foodTypeSkillId, 1), targets);
+					owner.callSkill(SkillData.getInstance().getSkill(foodTypeSkillId, 1), targets);
 					owner.setTarget(oldTarget);
 				}
 				else
@@ -533,10 +533,10 @@ public final class L2TamedBeastInstance extends L2FeedableBeastInstance
 			int totalBuffsOnOwner = 0;
 			int i = 0;
 			int rand = Rnd.get(_numBuffs);
-			L2Skill buffToGive = null;
+			Skill buffToGive = null;
 			
 			// get this npc's skills: getSkills()
-			for (L2Skill skill : _tamedBeast.getTemplate().getSkills().values())
+			for (Skill skill : _tamedBeast.getTemplate().getSkills().values())
 			{
 				// if the skill is a buff, check if the owner has it already [ owner.getEffect(L2Skill skill) ]
 				if (skill.isContinuous() && !skill.isDebuff())

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

@@ -23,7 +23,7 @@ import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
 import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
@@ -84,7 +84,7 @@ public final class L2TerritoryWardInstance extends L2Attackable
 	}
 	
 	@Override
-	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, L2Skill skill)
+	public void reduceCurrentHp(double damage, L2Character attacker, boolean awake, boolean isDOT, Skill skill)
 	{
 		if ((skill != null) || !TerritoryWarManager.getInstance().isTWInProgress())
 		{
@@ -117,7 +117,7 @@ public final class L2TerritoryWardInstance extends L2Attackable
 	}
 	
 	@Override
-	public void reduceCurrentHpByDOT(double i, L2Character attacker, L2Skill skill)
+	public void reduceCurrentHpByDOT(double i, L2Character attacker, Skill skill)
 	{
 		// wards can't be damaged by DOTs
 	}

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

@@ -37,7 +37,7 @@ import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.olympiad.OlympiadGameManager;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.AbstractNpcInfo.TrapInfo;
@@ -161,7 +161,7 @@ public final class L2TrapInstance extends L2Npc
 	
 	public boolean checkTarget(L2Character target)
 	{
-		if (!L2Skill.checkForAreaOffensiveSkills(this, target, _skill.getSkill(), _isInArena))
+		if (!Skill.checkForAreaOffensiveSkills(this, target, _skill.getSkill(), _isInArena))
 		{
 			return false;
 		}
@@ -264,7 +264,7 @@ public final class L2TrapInstance extends L2Npc
 		return null;
 	}
 	
-	public L2Skill getSkill()
+	public Skill getSkill()
 	{
 		return _skill.getSkill();
 	}

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

@@ -20,7 +20,7 @@ package com.l2jserver.gameserver.model.actor.instance;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.Announcements;
-import com.l2jserver.gameserver.datatables.SkillTable;
+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,7 +28,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.L2Skill;
+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
-			L2Skill skill = SkillTable.FrequentSkill.LARGE_FIREWORK.getSkill();
+			Skill skill = SkillData.FrequentSkill.LARGE_FIREWORK.getSkill();
 			if (skill != null)
 			{
 				MSU = new MagicSkillUse(player, player, 2025, 1, 1, 0);

+ 10 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/stat/CharStat.java

@@ -26,7 +26,7 @@ import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.items.L2Weapon;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Calculator;
 import com.l2jserver.gameserver.model.stats.Env;
 import com.l2jserver.gameserver.model.stats.MoveType;
@@ -72,7 +72,7 @@ public class CharStat
 	 * @param skill The L2Skill whose properties will be used in the calculation (ex : Level...)
 	 * @return
 	 */
-	public final double calcStat(Stats stat, double init, L2Character target, L2Skill skill)
+	public final double calcStat(Stats stat, double init, L2Character target, Skill skill)
 	{
 		if (stat == null)
 		{
@@ -180,7 +180,7 @@ public class CharStat
 	 * @param skill
 	 * @return the Critical Hit rate (base+modifier) of the L2Character.
 	 */
-	public int getCriticalHit(L2Character target, L2Skill skill)
+	public int getCriticalHit(L2Character target, Skill skill)
 	{
 		int val = (int) calcStat(Stats.CRITICAL_RATE, _activeChar.getTemplate().getBaseCritRate(), target, skill);
 		
@@ -248,7 +248,7 @@ public class CharStat
 	 * @param skill
 	 * @return the Magical Attack range (base+modifier) of the L2Character.
 	 */
-	public final int getMagicalAttackRange(L2Skill skill)
+	public final int getMagicalAttackRange(Skill skill)
 	{
 		if (skill != null)
 		{
@@ -295,7 +295,7 @@ public class CharStat
 	 * @param skill The L2Skill used against the target
 	 * @return
 	 */
-	public int getMAtk(L2Character target, L2Skill skill)
+	public int getMAtk(L2Character target, Skill skill)
 	{
 		float bonusAtk = 1;
 		if (Config.L2JMOD_CHAMPION_ENABLE && _activeChar.isChampion())
@@ -337,7 +337,7 @@ public class CharStat
 	 * @param skill
 	 * @return the Magic Critical Hit rate (base+modifier) of the L2Character.
 	 */
-	public final int getMCriticalHit(L2Character target, L2Skill skill)
+	public final int getMCriticalHit(L2Character target, Skill skill)
 	{
 		int val = (int) calcStat(Stats.MCRITICAL_RATE, 1, target, skill) * 10;
 		
@@ -355,7 +355,7 @@ public class CharStat
 	 * @param skill The L2Skill used against the target
 	 * @return the MDef (base+modifier) of the L2Character against a skill in function of abnormal effects in progress.
 	 */
-	public int getMDef(L2Character target, L2Skill skill)
+	public int getMDef(L2Character target, Skill skill)
 	{
 		// Get the base MDef of the L2Character
 		double defence = _activeChar.getTemplate().getBaseMDef();
@@ -417,7 +417,7 @@ public class CharStat
 	 * @param skill
 	 * @return the MReuse rate (base+modifier) of the L2Character.
 	 */
-	public final double getMReuseRate(L2Skill skill)
+	public final double getMReuseRate(Skill skill)
 	{
 		return calcStat(Stats.MAGIC_REUSE_RATE, 1, null, skill);
 	}
@@ -601,7 +601,7 @@ public class CharStat
 	 * @param skill
 	 * @return the mpConsume.
 	 */
-	public final int getMpConsume(L2Skill skill)
+	public final int getMpConsume(Skill skill)
 	{
 		if (skill == null)
 		{
@@ -637,7 +637,7 @@ public class CharStat
 	 * @param skill
 	 * @return the mpInitialConsume.
 	 */
-	public final int getMpInitialConsume(L2Skill skill)
+	public final int getMpInitialConsume(Skill skill)
 	{
 		if (skill == null)
 		{

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

@@ -22,7 +22,7 @@ import com.l2jserver.gameserver.datatables.ExperienceTable;
 import com.l2jserver.gameserver.datatables.PetDataTable;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PetInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.SocialAction;
@@ -169,13 +169,13 @@ public class PetStat extends SummonStat
 	}
 	
 	@Override
-	public int getMAtk(L2Character target, L2Skill skill)
+	public int getMAtk(L2Character target, Skill skill)
 	{
 		return (int) calcStat(Stats.MAGIC_ATTACK, getActiveChar().getPetLevelData().getPetMAtk(), target, skill);
 	}
 	
 	@Override
-	public int getMDef(L2Character target, L2Skill skill)
+	public int getMDef(L2Character target, Skill skill)
 	{
 		return (int) calcStat(Stats.MAGIC_DEFENCE, getActiveChar().getPetLevelData().getPetMDef(), target, skill);
 	}

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/FlyToLocationTask.java

@@ -20,7 +20,7 @@ package com.l2jserver.gameserver.model.actor.tasks.character;
 
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.FlyToLocation;
 
 /**
@@ -31,9 +31,9 @@ public final class FlyToLocationTask implements Runnable
 {
 	private final L2Character _character;
 	private final L2Object _target;
-	private final L2Skill _skill;
+	private final Skill _skill;
 	
-	public FlyToLocationTask(L2Character character, L2Object target, L2Skill skill)
+	public FlyToLocationTask(L2Character character, L2Object target, Skill skill)
 	{
 		_character = character;
 		_target = target;

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/MagicUseTask.java

@@ -20,7 +20,7 @@ package com.l2jserver.gameserver.model.actor.tasks.character;
 
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * Task dedicated to magic use of character
@@ -30,13 +30,13 @@ public final class MagicUseTask implements Runnable
 {
 	private final L2Character _character;
 	private L2Object[] _targets;
-	private final L2Skill _skill;
+	private final Skill _skill;
 	private int _count;
 	private int _skillTime;
 	private int _phase;
 	private final boolean _simultaneously;
 	
-	public MagicUseTask(L2Character character, L2Object[] tgts, L2Skill s, int hit, boolean simultaneous)
+	public MagicUseTask(L2Character character, L2Object[] tgts, Skill s, int hit, boolean simultaneous)
 	{
 		_character = character;
 		_targets = tgts;
@@ -84,7 +84,7 @@ public final class MagicUseTask implements Runnable
 		return _phase;
 	}
 	
-	public L2Skill getSkill()
+	public Skill getSkill()
 	{
 		return _skill;
 	}

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/QueuedMagicUseTask.java

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.model.actor.tasks.character;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * Task dedicated to qued magic use of character
@@ -28,11 +28,11 @@ import com.l2jserver.gameserver.model.skills.L2Skill;
 public final class QueuedMagicUseTask implements Runnable
 {
 	private final L2PcInstance _currPlayer;
-	private final L2Skill _queuedSkill;
+	private final Skill _queuedSkill;
 	private final boolean _isCtrlPressed;
 	private final boolean _isShiftPressed;
 	
-	public QueuedMagicUseTask(L2PcInstance currPlayer, L2Skill queuedSkill, boolean isCtrlPressed, boolean isShiftPressed)
+	public QueuedMagicUseTask(L2PcInstance currPlayer, Skill queuedSkill, boolean isCtrlPressed, boolean isShiftPressed)
 	{
 		_currPlayer = currPlayer;
 		_queuedSkill = queuedSkill;

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/character/UsePotionTask.java

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.model.actor.tasks.character;
 
 import com.l2jserver.gameserver.model.actor.L2Character;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * Task dedicated to use potion of character
@@ -28,9 +28,9 @@ import com.l2jserver.gameserver.model.skills.L2Skill;
 public final class UsePotionTask implements Runnable
 {
 	private final L2Character _character;
-	private final L2Skill _skill;
+	private final Skill _skill;
 	
-	public UsePotionTask(L2Character character, L2Skill skill)
+	public UsePotionTask(L2Character character, Skill skill)
 	{
 		_character = character;
 		_skill = skill;

+ 11 - 16
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/cubics/CubicAction.java

@@ -23,14 +23,11 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2CubicInstance;
 import com.l2jserver.gameserver.model.effects.L2EffectType;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
-import com.l2jserver.gameserver.model.skills.L2Skill;
-import com.l2jserver.gameserver.model.skills.L2SkillType;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
 import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
 import com.l2jserver.util.Rnd;
@@ -120,7 +117,7 @@ public final class CubicAction implements Runnable
 			}
 			else if (Rnd.get(1, 100) < _chance)
 			{
-				L2Skill skill = _cubic.getSkills().get(Rnd.get(_cubic.getSkills().size()));
+				Skill skill = _cubic.getSkills().get(Rnd.get(_cubic.getSkills().size()));
 				if (skill != null)
 				{
 					if (skill.getId() == L2CubicInstance.SKILL_CUBIC_HEAL)
@@ -148,8 +145,6 @@ public final class CubicAction implements Runnable
 						
 						_cubic.getOwner().broadcastPacket(new MagicSkillUse(_cubic.getOwner(), target, skill.getId(), skill.getLevel(), 0, 0));
 						
-						L2SkillType type = skill.getSkillType();
-						ISkillHandler handler = SkillHandler.getInstance().getHandler(skill.getSkillType());
 						L2Character[] targets =
 						{
 							target
@@ -159,13 +154,13 @@ public final class CubicAction implements Runnable
 						{
 							if (Config.DEBUG)
 							{
-								_log.info("L2CubicInstance: Action.run() handler " + type);
+								_log.info("L2CubicInstance: Action.run() skill " + skill);
 							}
 							_cubic.useCubicContinuous(skill, targets);
 						}
 						else
 						{
-							handler.useSkill(_cubic.getOwner(), skill, targets);
+							skill.activateSkill(_cubic.getOwner(), targets);
 							if (Config.DEBUG)
 							{
 								_log.info("L2CubicInstance: Action.run(); other handler");
@@ -176,7 +171,7 @@ public final class CubicAction implements Runnable
 						{
 							if (Config.DEBUG)
 							{
-								_log.info("L2CubicInstance: Action.run() handler " + type);
+								_log.info("L2CubicInstance: Action.run() skill " + skill);
 							}
 							_cubic.useCubicMdam(_cubic, skill, targets);
 						}
@@ -184,7 +179,7 @@ public final class CubicAction implements Runnable
 						{
 							if (Config.DEBUG)
 							{
-								_log.info("L2CubicInstance: Action.run() skill " + type);
+								_log.info("L2CubicInstance: Action.run() skill " + skill);
 							}
 							_cubic.useCubicDrain(_cubic, skill, targets);
 						}
@@ -192,15 +187,15 @@ public final class CubicAction implements Runnable
 						{
 							if (Config.DEBUG)
 							{
-								_log.info("L2CubicInstance: Action.run() handler " + type);
+								_log.info("L2CubicInstance: Action.run() skill " + skill);
 							}
-							_cubic.useCubicDisabler(type, skill, targets);
+							_cubic.useCubicDisabler(skill, targets);
 						}
 						else if (skill.hasEffectType(L2EffectType.DMG_OVER_TIME, L2EffectType.DMG_OVER_TIME_PERCENT))
 						{
 							if (Config.DEBUG)
 							{
-								_log.info("L2CubicInstance: Action.run() handler " + type);
+								_log.info("L2CubicInstance: Action.run() skill " + skill);
 							}
 							_cubic.useCubicContinuous(skill, targets);
 						}
@@ -208,9 +203,9 @@ public final class CubicAction implements Runnable
 						{
 							if (Config.DEBUG)
 							{
-								_log.info("L2CubicInstance: Action.run() handler " + type);
+								_log.info("L2CubicInstance: Action.run() skill " + skill);
 							}
-							_cubic.useCubicDisabler(type, skill, targets);
+							_cubic.useCubicDisabler(skill, targets);
 						}
 						
 						// The cubic has done an action, increase the current count

+ 5 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/tasks/cubics/CubicHeal.java

@@ -21,11 +21,9 @@ package com.l2jserver.gameserver.model.actor.tasks.cubics;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2CubicInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
 
 /**
@@ -60,8 +58,8 @@ public class CubicHeal implements Runnable
 		}
 		try
 		{
-			L2Skill skill = null;
-			for (L2Skill sk : _cubic.getSkills())
+			Skill skill = null;
+			for (Skill sk : _cubic.getSkills())
 			{
 				if (sk.getId() == L2CubicInstance.SKILL_CUBIC_HEAL)
 				{
@@ -82,11 +80,8 @@ public class CubicHeal implements Runnable
 						{
 							target
 						};
-						ISkillHandler handler = SkillHandler.getInstance().getHandler(skill.getSkillType());
-						if (handler != null)
-						{
-							handler.useSkill(_cubic.getOwner(), skill, targets);
-						}
+						
+						skill.activateSkill(_cubic.getOwner(), targets);
 						
 						_cubic.getOwner().broadcastPacket(new MagicSkillUse(_cubic.getOwner(), target, skill.getId(), skill.getLevel(), 0, 0));
 					}

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

@@ -24,7 +24,7 @@ import java.util.Map;
 
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.items.type.L2WeaponType;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.MoveType;
 
 /**
@@ -625,7 +625,7 @@ public class L2CharTemplate
 	 * Overridden in L2NpcTemplate
 	 * @return the characters skills
 	 */
-	public Map<Integer, L2Skill> getSkills()
+	public Map<Integer, Skill> getSkills()
 	{
 		return Collections.emptyMap();
 	}

+ 11 - 11
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/templates/L2NpcTemplate.java

@@ -44,7 +44,7 @@ import com.l2jserver.gameserver.model.drops.IDropItem;
 import com.l2jserver.gameserver.model.holders.ItemHolder;
 import com.l2jserver.gameserver.model.interfaces.IIdentifiable;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * NPC template.
@@ -101,8 +101,8 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 	private int _shortRangeSkillChance;
 	private int _longRangeSkillId;
 	private int _longRangeSkillChance;
-	private Map<Integer, L2Skill> _skills;
-	private Map<AISkillScope, List<L2Skill>> _aiSkillLists;
+	private Map<Integer, Skill> _skills;
+	private Map<AISkillScope, List<Skill>> _aiSkillLists;
 	private Set<Integer> _clans;
 	private Set<Integer> _enemyClans;
 	private Map<DropListScope, List<IDropItem>> _dropLists;
@@ -436,25 +436,25 @@ public final class L2NpcTemplate extends L2CharTemplate implements IIdentifiable
 	}
 	
 	@Override
-	public Map<Integer, L2Skill> getSkills()
+	public Map<Integer, Skill> getSkills()
 	{
 		return _skills;
 	}
 	
-	public void setSkills(Map<Integer, L2Skill> skills)
+	public void setSkills(Map<Integer, Skill> skills)
 	{
-		_skills = skills != null ? Collections.unmodifiableMap(skills) : Collections.<Integer, L2Skill> emptyMap();
+		_skills = skills != null ? Collections.unmodifiableMap(skills) : Collections.<Integer, Skill> emptyMap();
 	}
 	
-	public List<L2Skill> getAISkills(AISkillScope aiSkillScope)
+	public List<Skill> getAISkills(AISkillScope aiSkillScope)
 	{
-		final List<L2Skill> aiSkills = _aiSkillLists.get(aiSkillScope);
-		return aiSkills != null ? aiSkills : Collections.<L2Skill> emptyList();
+		final List<Skill> aiSkills = _aiSkillLists.get(aiSkillScope);
+		return aiSkills != null ? aiSkills : Collections.<Skill> emptyList();
 	}
 	
-	public void setAISkillLists(Map<AISkillScope, List<L2Skill>> aiSkillLists)
+	public void setAISkillLists(Map<AISkillScope, List<Skill>> aiSkillLists)
 	{
-		_aiSkillLists = aiSkillLists != null ? Collections.unmodifiableMap(aiSkillLists) : Collections.<AISkillScope, List<L2Skill>> emptyMap();
+		_aiSkillLists = aiSkillLists != null ? Collections.unmodifiableMap(aiSkillLists) : Collections.<AISkillScope, List<Skill>> emptyMap();
 	}
 	
 	public Set<Integer> getClans()

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

@@ -29,7 +29,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.interfaces.IIdentifiable;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.serverpackets.ExBasicActionList;
 
@@ -333,7 +333,7 @@ public final class Transform implements IIdentifiable
 			{
 				for (SkillHolder holder : template.getSkills())
 				{
-					final L2Skill skill = holder.getSkill();
+					final Skill skill = holder.getSkill();
 					if (!SkillTreesData.getInstance().isSkillAllowed(player, skill))
 					{
 						player.removeSkill(skill, false, skill.isPassive());
@@ -346,7 +346,7 @@ public final class Transform implements IIdentifiable
 			{
 				for (AdditionalSkillHolder holder : template.getAdditionalSkills())
 				{
-					final L2Skill skill = holder.getSkill();
+					final Skill skill = holder.getSkill();
 					if ((player.getLevel() >= holder.getMinLevel()) && !SkillTreesData.getInstance().isSkillAllowed(player, skill))
 					{
 						player.removeSkill(skill, false, skill.isPassive());

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

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.conditions;
 
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Env;
 
 /**
@@ -54,7 +54,7 @@ public class ConditionPlayerActiveSkillId extends Condition
 	@Override
 	public boolean testImpl(Env env)
 	{
-		for (L2Skill sk : env.getCharacter().getAllSkills())
+		for (Skill sk : env.getCharacter().getAllSkills())
 		{
 			if (sk != null)
 			{

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

@@ -22,7 +22,7 @@ import com.l2jserver.Config;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.actor.L2Attackable;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Env;
 import com.l2jserver.gameserver.network.SystemMessageId;
 
@@ -54,7 +54,7 @@ public class ConditionPlayerCanSweep extends Condition
 		if (env.getPlayer() != null)
 		{
 			final L2PcInstance sweeper = env.getPlayer();
-			final L2Skill sweep = env.getSkill();
+			final Skill sweep = env.getSkill();
 			if (sweep != null)
 			{
 				final L2Object[] targets = sweep.getTargetList(sweeper);

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

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.conditions;
 
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Env;
 
 /**
@@ -53,7 +53,7 @@ public class ConditionTargetActiveSkillId extends Condition
 	@Override
 	public boolean testImpl(Env env)
 	{
-		for (L2Skill sk : env.getTarget().getAllSkills())
+		for (Skill sk : env.getTarget().getAllSkills())
 		{
 			if (sk != null)
 			{

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/BlockCheckerEngine.java

@@ -29,7 +29,7 @@ import javolution.util.FastMap;
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.NpcData;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SpawnTable;
 import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.instancemanager.HandysBlockCheckerManager;
@@ -41,7 +41,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -327,16 +327,16 @@ public final class BlockCheckerEngine
 	public class StartEvent implements Runnable
 	{
 		// In event used skills
-		private final L2Skill _freeze, _transformationRed, _transformationBlue;
+		private final Skill _freeze, _transformationRed, _transformationBlue;
 		// Common and unparametizer packet
 		private final ExCubeGameCloseUI _closeUserInterface = new ExCubeGameCloseUI();
 		
 		public StartEvent()
 		{
 			// Initialize all used skills
-			_freeze = SkillTable.getInstance().getInfo(6034, 1);
-			_transformationRed = SkillTable.getInstance().getInfo(6035, 1);
-			_transformationBlue = SkillTable.getInstance().getInfo(6036, 1);
+			_freeze = SkillData.getInstance().getSkill(6034, 1);
+			_transformationRed = SkillData.getInstance().getSkill(6035, 1);
+			_transformationBlue = SkillData.getInstance().getSkill(6036, 1);
 		}
 		
 		/**

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Castle.java

@@ -37,7 +37,7 @@ import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.datatables.DoorTable;
 import com.l2jserver.gameserver.datatables.ManorData;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.enums.MountType;
 import com.l2jserver.gameserver.instancemanager.CastleManager;
@@ -57,7 +57,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2ArtefactInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2DoorInstance;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.itemcontainer.Inventory;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.type.L2CastleZone;
 import com.l2jserver.gameserver.model.zone.type.L2ResidenceTeleportZone;
 import com.l2jserver.gameserver.model.zone.type.L2SiegeZone;
@@ -1407,7 +1407,7 @@ public final class Castle extends AbstractResidence
 				final List<L2SkillLearn> territorySkills = SkillTreesData.getInstance().getAvailableResidentialSkills(wardId);
 				for (L2SkillLearn s : territorySkills)
 				{
-					final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+					final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 					if (sk != null)
 					{
 						player.addSkill(sk, false);
@@ -1432,7 +1432,7 @@ public final class Castle extends AbstractResidence
 				final List<L2SkillLearn> territorySkills = SkillTreesData.getInstance().getAvailableResidentialSkills(wardId);
 				for (L2SkillLearn s : territorySkills)
 				{
-					final L2Skill sk = SkillTable.getInstance().getInfo(s.getSkillId(), s.getSkillLevel());
+					final Skill sk = SkillData.getInstance().getSkill(s.getSkillId(), s.getSkillLevel());
 					if (sk != null)
 					{
 						player.removeSkill(sk, false, true);

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/Duel.java

@@ -32,7 +32,7 @@ import com.l2jserver.gameserver.enums.Team;
 import com.l2jserver.gameserver.instancemanager.DuelManager;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.ZoneId;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
@@ -108,7 +108,7 @@ public class Duel
 		private double _cp;
 		private boolean _paDuel;
 		private int _x, _y, _z;
-		private FastList<L2Skill> _debuffs;
+		private FastList<Skill> _debuffs;
 		
 		public PlayerCondition(L2PcInstance player, boolean partyDuel)
 		{
@@ -146,7 +146,7 @@ public class Duel
 			}
 			if (_debuffs != null) // Debuff removal
 			{
-				for (L2Skill skill : _debuffs)
+				for (Skill skill : _debuffs)
 				{
 					if (skill != null)
 					{
@@ -156,7 +156,7 @@ public class Duel
 			}
 		}
 		
-		public void registerDebuff(L2Skill debuff)
+		public void registerDebuff(Skill debuff)
 		{
 			if (_debuffs == null)
 			{
@@ -1048,7 +1048,7 @@ public class Duel
 		}
 	}
 	
-	public void onBuff(L2PcInstance player, L2Skill debuff)
+	public void onBuff(L2PcInstance player, Skill debuff)
 	{
 		for (PlayerCondition cond : _playerConditions)
 		{

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/TvTEvent.java

@@ -33,7 +33,7 @@ import com.l2jserver.gameserver.cache.HtmCache;
 import com.l2jserver.gameserver.datatables.DoorTable;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.datatables.NpcData;
-import com.l2jserver.gameserver.datatables.SkillTable;
+import com.l2jserver.gameserver.datatables.SkillData;
 import com.l2jserver.gameserver.datatables.SpawnTable;
 import com.l2jserver.gameserver.instancemanager.AntiFeedManager;
 import com.l2jserver.gameserver.instancemanager.InstanceManager;
@@ -49,7 +49,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2ServitorInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
 import com.l2jserver.gameserver.model.itemcontainer.PcInventory;
 import com.l2jserver.gameserver.model.olympiad.OlympiadManager;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.clientpackets.Say2;
 import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
@@ -997,7 +997,7 @@ public class TvTEvent
 			{
 				for (Entry<Integer, Integer> e : Config.TVT_EVENT_MAGE_BUFFS.entrySet())
 				{
-					L2Skill skill = SkillTable.getInstance().getInfo(e.getKey(), e.getValue());
+					Skill skill = SkillData.getInstance().getSkill(e.getKey(), e.getValue());
 					if (skill != null)
 					{
 						skill.applyEffects(playerInstance, playerInstance);
@@ -1011,7 +1011,7 @@ public class TvTEvent
 			{
 				for (Entry<Integer, Integer> e : Config.TVT_EVENT_FIGHTER_BUFFS.entrySet())
 				{
-					L2Skill skill = SkillTable.getInstance().getInfo(e.getKey(), e.getValue());
+					Skill skill = SkillData.getInstance().getSkill(e.getKey(), e.getValue());
 					if (skill != null)
 					{
 						skill.applyEffects(playerInstance, playerInstance);
@@ -1027,7 +1027,7 @@ public class TvTEvent
 	 * @param skill
 	 * @return true if player valid for skill
 	 */
-	public static final boolean checkForTvTSkill(L2PcInstance source, L2PcInstance target, L2Skill skill)
+	public static final boolean checkForTvTSkill(L2PcInstance source, L2PcInstance target, Skill skill)
 	{
 		if (!isStarted())
 		{

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/EffectDurationHolder.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.holders;
 
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * Effect duration holder.
@@ -35,7 +35,7 @@ public class EffectDurationHolder
 	 * @param skill the skill to get the data
 	 * @param duration the effect duration
 	 */
-	public EffectDurationHolder(L2Skill skill, int duration)
+	public EffectDurationHolder(Skill skill, int duration)
 	{
 		_skillId = skill.getDisplayId();
 		_skillLvl = skill.getDisplayLevel();

+ 7 - 7
L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/PlayerSkillHolder.java

@@ -24,18 +24,18 @@ import java.util.Map;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.interfaces.ISkillsHolder;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
  */
 public class PlayerSkillHolder implements ISkillsHolder
 {
-	private final Map<Integer, L2Skill> _skills = new HashMap<>();
+	private final Map<Integer, Skill> _skills = new HashMap<>();
 	
 	public PlayerSkillHolder(L2PcInstance player)
 	{
-		for (L2Skill skill : player.getSkills().values())
+		for (Skill skill : player.getSkills().values())
 		{
 			// Adding only skills that can be learned by the player.
 			if (SkillTreesData.getInstance().isSkillAllowed(player, skill))
@@ -49,7 +49,7 @@ public class PlayerSkillHolder implements ISkillsHolder
 	 * @return the map containing this character skills.
 	 */
 	@Override
-	public Map<Integer, L2Skill> getSkills()
+	public Map<Integer, Skill> getSkills()
 	{
 		return _skills;
 	}
@@ -59,7 +59,7 @@ public class PlayerSkillHolder implements ISkillsHolder
 	 * @param skill
 	 */
 	@Override
-	public L2Skill addSkill(L2Skill skill)
+	public Skill addSkill(Skill skill)
 	{
 		return _skills.put(skill.getId(), skill);
 	}
@@ -72,7 +72,7 @@ public class PlayerSkillHolder implements ISkillsHolder
 	@Override
 	public int getSkillLevel(int skillId)
 	{
-		final L2Skill skill = getKnownSkill(skillId);
+		final Skill skill = getKnownSkill(skillId);
 		return (skill == null) ? -1 : skill.getLevel();
 	}
 	
@@ -81,7 +81,7 @@ public class PlayerSkillHolder implements ISkillsHolder
 	 * @return the skill from the known skill.
 	 */
 	@Override
-	public L2Skill getKnownSkill(int skillId)
+	public Skill getKnownSkill(int skillId)
 	{
 		return _skills.get(skillId);
 	}

+ 5 - 5
L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/SkillHolder.java

@@ -18,8 +18,8 @@
  */
 package com.l2jserver.gameserver.model.holders;
 
-import com.l2jserver.gameserver.datatables.SkillTable;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.datatables.SkillData;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * Simple class for storing skill id/level.
@@ -36,7 +36,7 @@ public class SkillHolder
 		_skillLvl = skillLvl;
 	}
 	
-	public SkillHolder(L2Skill skill)
+	public SkillHolder(Skill skill)
 	{
 		_skillId = skill.getId();
 		_skillLvl = skill.getLevel();
@@ -52,9 +52,9 @@ public class SkillHolder
 		return _skillLvl;
 	}
 	
-	public final L2Skill getSkill()
+	public final Skill getSkill()
 	{
-		return SkillTable.getInstance().getInfo(_skillId, Math.max(_skillLvl, 1));
+		return SkillData.getInstance().getSkill(_skillId, Math.max(_skillLvl, 1));
 	}
 	
 	@Override

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/SkillUseHolder.java

@@ -18,7 +18,7 @@
  */
 package com.l2jserver.gameserver.model.holders;
 
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
@@ -28,7 +28,7 @@ public class SkillUseHolder extends SkillHolder
 	private final boolean _ctrlPressed;
 	private final boolean _shiftPressed;
 	
-	public SkillUseHolder(L2Skill skill, boolean ctrlPressed, boolean shiftPressed)
+	public SkillUseHolder(Skill skill, boolean ctrlPressed, boolean shiftPressed)
 	{
 		super(skill);
 		_ctrlPressed = ctrlPressed;

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/holders/SummonRequestHolder.java

@@ -19,7 +19,7 @@
 package com.l2jserver.gameserver.model.holders;
 
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
@@ -27,9 +27,9 @@ import com.l2jserver.gameserver.model.skills.L2Skill;
 public class SummonRequestHolder
 {
 	private final L2PcInstance _target;
-	private final L2Skill _skill;
+	private final Skill _skill;
 	
-	public SummonRequestHolder(L2PcInstance destination, L2Skill skill)
+	public SummonRequestHolder(L2PcInstance destination, Skill skill)
 	{
 		_target = destination;
 		_skill = skill;
@@ -40,7 +40,7 @@ public class SummonRequestHolder
 		return _target;
 	}
 	
-	public L2Skill getSkill()
+	public Skill getSkill()
 	{
 		return _skill;
 	}

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/interfaces/ISkillsHolder.java

@@ -20,18 +20,18 @@ package com.l2jserver.gameserver.model.interfaces;
 
 import java.util.Map;
 
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 
 /**
  * @author UnAfraid
  */
 public interface ISkillsHolder
 {
-	public Map<Integer, L2Skill> getSkills();
+	public Map<Integer, Skill> getSkills();
 	
-	public L2Skill addSkill(L2Skill skill);
+	public Skill addSkill(Skill skill);
 	
-	public L2Skill getKnownSkill(int skillId);
+	public Skill getKnownSkill(int skillId);
 	
 	public int getSkillLevel(int skillId);
 }

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

@@ -34,8 +34,6 @@ import com.l2jserver.gameserver.datatables.ArmorSetsData;
 import com.l2jserver.gameserver.datatables.ItemTable;
 import com.l2jserver.gameserver.enums.ItemLocation;
 import com.l2jserver.gameserver.enums.PrivateStoreType;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.model.L2ArmorSet;
 import com.l2jserver.gameserver.model.L2World;
 import com.l2jserver.gameserver.model.PcCondOverride;
@@ -45,7 +43,7 @@ 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.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Stats;
 import com.l2jserver.gameserver.network.serverpackets.SkillCoolTime;
 import com.l2jserver.util.StringUtil;
@@ -282,7 +280,7 @@ public abstract class Inventory extends ItemContainer
 			}
 			final L2PcInstance player = (L2PcInstance) inventory.getOwner();
 			
-			L2Skill enchant4Skill, itemSkill;
+			Skill enchant4Skill, itemSkill;
 			L2Item it = item.getItem();
 			boolean update = false;
 			boolean updateTimeStamp = false;
@@ -375,19 +373,15 @@ public abstract class Inventory extends ItemContainer
 			}
 			
 			// Apply skill, if weapon have "skills on unequip"
-			L2Skill unequipSkill = it.getUnequipSkill();
+			Skill unequipSkill = it.getUnequipSkill();
 			if (unequipSkill != null)
 			{
-				ISkillHandler handler = SkillHandler.getInstance().getHandler(unequipSkill.getSkillType());
 				L2PcInstance[] targets =
 				{
 					player
 				};
 				
-				if (handler != null)
-				{
-					handler.useSkill(player, unequipSkill, targets);
-				}
+				unequipSkill.activateSkill(player, targets);
 			}
 			
 			if (update)
@@ -411,7 +405,7 @@ public abstract class Inventory extends ItemContainer
 			
 			final L2PcInstance player = (L2PcInstance) inventory.getOwner();
 			
-			L2Skill enchant4Skill, itemSkill;
+			Skill enchant4Skill, itemSkill;
 			L2Item it = item.getItem();
 			boolean update = false;
 			boolean updateTimeStamp = false;
@@ -529,7 +523,7 @@ public abstract class Inventory extends ItemContainer
 			{
 				if (armorSet.containAll(player))
 				{
-					L2Skill itemSkill;
+					Skill itemSkill;
 					final List<SkillHolder> skills = armorSet.getSkills();
 					
 					if (skills != null)
@@ -635,7 +629,7 @@ public abstract class Inventory extends ItemContainer
 			final L2PcInstance player = (L2PcInstance) inventory.getOwner();
 			
 			boolean remove = false;
-			L2Skill itemSkill;
+			Skill itemSkill;
 			List<SkillHolder> skills = null;
 			List<SkillHolder> shieldSkill = null; // shield skill
 			List<SkillHolder> skillId6 = null; // enchant +6 skill

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

@@ -21,7 +21,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.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.util.StringUtil;
 
 /**
@@ -109,7 +109,7 @@ public final class L2Armor extends L2Item
 	 * @return skill that player get when has equipped armor +4 or more
 	 */
 	@Override
-	public L2Skill getEnchant4Skill()
+	public Skill getEnchant4Skill()
 	{
 		if (_enchant4Skill == null)
 		{

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

@@ -45,7 +45,7 @@ import com.l2jserver.gameserver.model.items.type.L2EtcItemType;
 import com.l2jserver.gameserver.model.items.type.L2ItemType;
 import com.l2jserver.gameserver.model.quest.Quest;
 import com.l2jserver.gameserver.model.skills.BuffInfo;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.funcs.Func;
 import com.l2jserver.gameserver.model.skills.funcs.FuncTemplate;
 import com.l2jserver.gameserver.model.stats.Env;
@@ -934,7 +934,7 @@ public abstract class L2Item implements IIdentifiable
 	/**
 	 * @return skill that activates, when player unequip this weapon or armor
 	 */
-	public final L2Skill getUnequipSkill()
+	public final Skill getUnequipSkill()
 	{
 		return _unequipSkill == null ? null : _unequipSkill.getSkill();
 	}
@@ -1130,7 +1130,7 @@ public abstract class L2Item implements IIdentifiable
 		return getItemType() == L2EtcItemType.PET_COLLAR;
 	}
 	
-	public L2Skill getEnchant4Skill()
+	public Skill getEnchant4Skill()
 	{
 		return null;
 	}

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

@@ -21,8 +21,6 @@ package com.l2jserver.gameserver.model.items;
 import java.util.Collection;
 
 import com.l2jserver.gameserver.enums.QuestEventType;
-import com.l2jserver.gameserver.handler.ISkillHandler;
-import com.l2jserver.gameserver.handler.SkillHandler;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.StatsSet;
 import com.l2jserver.gameserver.model.actor.L2Character;
@@ -33,7 +31,7 @@ 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.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.stats.Env;
 import com.l2jserver.gameserver.model.stats.Formulas;
 import com.l2jserver.gameserver.util.Util;
@@ -299,7 +297,7 @@ public final class L2Weapon extends L2Item
 	 * @return the skill that player get when has equipped weapon +4 or more (for duals SA).
 	 */
 	@Override
-	public L2Skill getEnchant4Skill()
+	public Skill getEnchant4Skill()
 	{
 		if (_enchant4Skill == null)
 		{
@@ -352,7 +350,7 @@ public final class L2Weapon extends L2Item
 			return;
 		}
 		
-		final L2Skill onCritSkill = _skillsOnCrit.getSkill();
+		final Skill onCritSkill = _skillsOnCrit.getSkill();
 		if (_skillsOnCritCondition != null)
 		{
 			Env env = new Env();
@@ -377,11 +375,7 @@ public final class L2Weapon extends L2Item
 			target
 		};
 		
-		final ISkillHandler handler = SkillHandler.getInstance().getHandler(onCritSkill.getSkillType());
-		if (handler != null)
-		{
-			handler.useSkill(caster, onCritSkill, targets);
-		}
+		onCritSkill.activateSkill(caster, targets);
 	}
 	
 	/**
@@ -390,14 +384,14 @@ public final class L2Weapon extends L2Item
 	 * @param trigger the L2Skill pointing out the skill triggering this action
 	 * @return the effects of skills associated with the item to be triggered onMagic.
 	 */
-	public boolean getSkillEffects(L2Character caster, L2Character target, L2Skill trigger)
+	public boolean getSkillEffects(L2Character caster, L2Character target, Skill trigger)
 	{
 		if (_skillsOnMagic == null)
 		{
 			return false;
 		}
 		
-		final L2Skill onMagicSkill = _skillsOnMagic.getSkill();
+		final Skill onMagicSkill = _skillsOnMagic.getSkill();
 		
 		// Trigger only if both are good or bad magic.
 		if (trigger.isBad() != onMagicSkill.isBad())
@@ -442,11 +436,7 @@ public final class L2Weapon extends L2Item
 		
 		// Launch the magic skill and calculate its effects
 		// Get the skill handler corresponding to the skill type
-		final ISkillHandler handler = SkillHandler.getInstance().getHandler(onMagicSkill.getSkillType());
-		if (handler != null)
-		{
-			handler.useSkill(caster, onMagicSkill, targets);
-		}
+		onMagicSkill.activateSkill(caster, targets);
 		
 		// notify quests of a skill use
 		if (caster instanceof L2PcInstance)

+ 4 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/model/olympiad/AbstractOlympiadGame.java

@@ -38,7 +38,7 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.entity.TvTEvent;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
 import com.l2jserver.gameserver.model.quest.Quest;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.zone.type.L2OlympiadStadiumZone;
 import com.l2jserver.gameserver.network.SystemMessageId;
 import com.l2jserver.gameserver.network.serverpackets.ExOlympiadMode;
@@ -250,7 +250,7 @@ public abstract class AbstractOlympiadGame
 			// Remove Hero Skills
 			if (player.isHero())
 			{
-				for (L2Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
+				for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
 				{
 					player.removeSkill(skill, false);
 				}
@@ -307,7 +307,7 @@ public abstract class AbstractOlympiadGame
 			}
 			
 			// enable skills with cool time <= 15 minutes
-			for (L2Skill skill : player.getAllSkills())
+			for (Skill skill : player.getAllSkills())
 			{
 				if (skill.getReuseDelay() <= 900000)
 				{
@@ -400,7 +400,7 @@ public abstract class AbstractOlympiadGame
 			// Add Hero Skills
 			if (player.isHero())
 			{
-				for (L2Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
+				for (Skill skill : SkillTreesData.getInstance().getHeroSkillTree().values())
 				{
 					player.addSkill(skill, false);
 				}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/model/options/Options.java

@@ -26,7 +26,7 @@ import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.holders.SkillHolder;
 import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
-import com.l2jserver.gameserver.model.skills.L2Skill;
+import com.l2jserver.gameserver.model.skills.Skill;
 import com.l2jserver.gameserver.model.skills.funcs.Func;
 import com.l2jserver.gameserver.model.skills.funcs.FuncTemplate;
 import com.l2jserver.gameserver.model.stats.Env;
@@ -219,7 +219,7 @@ public class Options
 		player.sendSkillList();
 	}
 	
-	private final void addSkill(L2PcInstance player, L2Skill skill)
+	private final void addSkill(L2PcInstance player, Skill skill)
 	{
 		boolean updateTimeStamp = false;
 		

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor