SkillHandler.java 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /*
  2. * This program is free software: you can redistribute it and/or modify it under
  3. * the terms of the GNU General Public License as published by the Free Software
  4. * Foundation, either version 3 of the License, or (at your option) any later
  5. * version.
  6. *
  7. * This program is distributed in the hope that it will be useful, but WITHOUT
  8. * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  9. * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
  10. * details.
  11. *
  12. * You should have received a copy of the GNU General Public License along with
  13. * this program. If not, see <http://www.gnu.org/licenses/>.
  14. */
  15. package net.sf.l2j.gameserver.handler;
  16. import java.util.Map;
  17. import java.util.TreeMap;
  18. import java.util.logging.Logger;
  19. import net.sf.l2j.gameserver.handler.skillhandlers.BalanceLife;
  20. import net.sf.l2j.gameserver.handler.skillhandlers.BeastFeed;
  21. import net.sf.l2j.gameserver.handler.skillhandlers.Blow;
  22. import net.sf.l2j.gameserver.handler.skillhandlers.Charge;
  23. import net.sf.l2j.gameserver.handler.skillhandlers.CombatPointHeal;
  24. import net.sf.l2j.gameserver.handler.skillhandlers.Continuous;
  25. import net.sf.l2j.gameserver.handler.skillhandlers.CpDam;
  26. import net.sf.l2j.gameserver.handler.skillhandlers.Craft;
  27. import net.sf.l2j.gameserver.handler.skillhandlers.DeluxeKey;
  28. import net.sf.l2j.gameserver.handler.skillhandlers.Disablers;
  29. import net.sf.l2j.gameserver.handler.skillhandlers.DrainSoul;
  30. import net.sf.l2j.gameserver.handler.skillhandlers.Fishing;
  31. import net.sf.l2j.gameserver.handler.skillhandlers.FishingSkill;
  32. import net.sf.l2j.gameserver.handler.skillhandlers.GetPlayer;
  33. import net.sf.l2j.gameserver.handler.skillhandlers.GiveSp;
  34. import net.sf.l2j.gameserver.handler.skillhandlers.Harvest;
  35. import net.sf.l2j.gameserver.handler.skillhandlers.Heal;
  36. import net.sf.l2j.gameserver.handler.skillhandlers.ManaHeal;
  37. import net.sf.l2j.gameserver.handler.skillhandlers.Manadam;
  38. import net.sf.l2j.gameserver.handler.skillhandlers.Mdam;
  39. import net.sf.l2j.gameserver.handler.skillhandlers.Pdam;
  40. import net.sf.l2j.gameserver.handler.skillhandlers.Recall;
  41. import net.sf.l2j.gameserver.handler.skillhandlers.Resurrect;
  42. import net.sf.l2j.gameserver.handler.skillhandlers.ShiftTarget;
  43. import net.sf.l2j.gameserver.handler.skillhandlers.SiegeFlag;
  44. import net.sf.l2j.gameserver.handler.skillhandlers.Soul;
  45. import net.sf.l2j.gameserver.handler.skillhandlers.Sow;
  46. import net.sf.l2j.gameserver.handler.skillhandlers.Spoil;
  47. import net.sf.l2j.gameserver.handler.skillhandlers.StrSiegeAssault;
  48. import net.sf.l2j.gameserver.handler.skillhandlers.SummonFriend;
  49. import net.sf.l2j.gameserver.handler.skillhandlers.SummonTreasureKey;
  50. import net.sf.l2j.gameserver.handler.skillhandlers.Sweep;
  51. import net.sf.l2j.gameserver.handler.skillhandlers.TakeCastle;
  52. import net.sf.l2j.gameserver.handler.skillhandlers.TakeFort;
  53. import net.sf.l2j.gameserver.handler.skillhandlers.TransformDispel;
  54. import net.sf.l2j.gameserver.handler.skillhandlers.Trap;
  55. import net.sf.l2j.gameserver.handler.skillhandlers.Unlock;
  56. import net.sf.l2j.gameserver.model.L2Skill;
  57. import net.sf.l2j.gameserver.model.L2Skill.SkillType;
  58. /**
  59. * This class ...
  60. *
  61. * @version $Revision: 1.1.4.4 $ $Date: 2005/04/03 15:55:06 $
  62. */
  63. public class SkillHandler
  64. {
  65. private static Logger _log = Logger.getLogger(SkillHandler.class.getName());
  66. private static SkillHandler _instance;
  67. private Map<L2Skill.SkillType, ISkillHandler> _datatable;
  68. public static SkillHandler getInstance()
  69. {
  70. if (_instance == null)
  71. {
  72. _instance = new SkillHandler();
  73. }
  74. return _instance;
  75. }
  76. private SkillHandler()
  77. {
  78. _datatable = new TreeMap<SkillType, ISkillHandler>();
  79. registerSkillHandler(new Blow());
  80. registerSkillHandler(new Pdam());
  81. registerSkillHandler(new Mdam());
  82. registerSkillHandler(new CpDam());
  83. registerSkillHandler(new Manadam());
  84. registerSkillHandler(new Heal());
  85. registerSkillHandler(new CombatPointHeal());
  86. registerSkillHandler(new ManaHeal());
  87. registerSkillHandler(new BalanceLife());
  88. registerSkillHandler(new Charge());
  89. registerSkillHandler(new Continuous());
  90. registerSkillHandler(new Resurrect());
  91. registerSkillHandler(new ShiftTarget());
  92. registerSkillHandler(new Spoil());
  93. registerSkillHandler(new Sweep());
  94. registerSkillHandler(new StrSiegeAssault());
  95. registerSkillHandler(new SummonFriend());
  96. registerSkillHandler(new SummonTreasureKey());
  97. registerSkillHandler(new Disablers());
  98. registerSkillHandler(new Recall());
  99. registerSkillHandler(new SiegeFlag());
  100. registerSkillHandler(new TakeCastle());
  101. registerSkillHandler(new TakeFort());
  102. registerSkillHandler(new Unlock());
  103. registerSkillHandler(new DrainSoul());
  104. registerSkillHandler(new Craft());
  105. registerSkillHandler(new Fishing());
  106. registerSkillHandler(new FishingSkill());
  107. registerSkillHandler(new BeastFeed());
  108. registerSkillHandler(new DeluxeKey());
  109. registerSkillHandler(new Sow());
  110. registerSkillHandler(new Soul());
  111. registerSkillHandler(new Harvest());
  112. registerSkillHandler(new GetPlayer());
  113. registerSkillHandler(new TransformDispel());
  114. registerSkillHandler(new Trap());
  115. registerSkillHandler(new GiveSp());
  116. _log.config("SkillHandler: Loaded " + _datatable.size() + " handlers.");
  117. }
  118. public void registerSkillHandler(ISkillHandler handler)
  119. {
  120. SkillType[] types = handler.getSkillIds();
  121. for (SkillType t : types)
  122. {
  123. _datatable.put(t, handler);
  124. }
  125. }
  126. public ISkillHandler getSkillHandler(SkillType skillType)
  127. {
  128. return _datatable.get(skillType);
  129. }
  130. /**
  131. * @return
  132. */
  133. public int size()
  134. {
  135. return _datatable.size();
  136. }
  137. }