/* * This program 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. * * This program 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 . */ package net.sf.l2j.gameserver.handler; import java.util.Map; import java.util.TreeMap; import java.util.logging.Logger; import net.sf.l2j.gameserver.handler.skillhandlers.BalanceLife; import net.sf.l2j.gameserver.handler.skillhandlers.BeastFeed; import net.sf.l2j.gameserver.handler.skillhandlers.Blow; import net.sf.l2j.gameserver.handler.skillhandlers.Charge; import net.sf.l2j.gameserver.handler.skillhandlers.CombatPointHeal; import net.sf.l2j.gameserver.handler.skillhandlers.Continuous; import net.sf.l2j.gameserver.handler.skillhandlers.CpDam; import net.sf.l2j.gameserver.handler.skillhandlers.Craft; import net.sf.l2j.gameserver.handler.skillhandlers.DeluxeKey; import net.sf.l2j.gameserver.handler.skillhandlers.Disablers; import net.sf.l2j.gameserver.handler.skillhandlers.DrainSoul; import net.sf.l2j.gameserver.handler.skillhandlers.Fishing; import net.sf.l2j.gameserver.handler.skillhandlers.FishingSkill; import net.sf.l2j.gameserver.handler.skillhandlers.GetPlayer; import net.sf.l2j.gameserver.handler.skillhandlers.GiveSp; import net.sf.l2j.gameserver.handler.skillhandlers.Harvest; import net.sf.l2j.gameserver.handler.skillhandlers.Heal; import net.sf.l2j.gameserver.handler.skillhandlers.ManaHeal; import net.sf.l2j.gameserver.handler.skillhandlers.Manadam; import net.sf.l2j.gameserver.handler.skillhandlers.Mdam; import net.sf.l2j.gameserver.handler.skillhandlers.Pdam; import net.sf.l2j.gameserver.handler.skillhandlers.Recall; import net.sf.l2j.gameserver.handler.skillhandlers.Resurrect; import net.sf.l2j.gameserver.handler.skillhandlers.ShiftTarget; import net.sf.l2j.gameserver.handler.skillhandlers.SiegeFlag; import net.sf.l2j.gameserver.handler.skillhandlers.Soul; import net.sf.l2j.gameserver.handler.skillhandlers.Sow; import net.sf.l2j.gameserver.handler.skillhandlers.Spoil; import net.sf.l2j.gameserver.handler.skillhandlers.StrSiegeAssault; import net.sf.l2j.gameserver.handler.skillhandlers.SummonFriend; import net.sf.l2j.gameserver.handler.skillhandlers.SummonTreasureKey; import net.sf.l2j.gameserver.handler.skillhandlers.Sweep; import net.sf.l2j.gameserver.handler.skillhandlers.TakeCastle; import net.sf.l2j.gameserver.handler.skillhandlers.TakeFort; import net.sf.l2j.gameserver.handler.skillhandlers.TransformDispel; import net.sf.l2j.gameserver.handler.skillhandlers.Trap; import net.sf.l2j.gameserver.handler.skillhandlers.Unlock; import net.sf.l2j.gameserver.templates.L2SkillType; /** * This class ... * * @version $Revision: 1.1.4.4 $ $Date: 2005/04/03 15:55:06 $ */ public class SkillHandler { private static Logger _log = Logger.getLogger(SkillHandler.class.getName()); private static SkillHandler _instance; private Map _datatable; public static SkillHandler getInstance() { if (_instance == null) { _instance = new SkillHandler(); } return _instance; } private SkillHandler() { _datatable = new TreeMap(); registerSkillHandler(new Blow()); registerSkillHandler(new Pdam()); registerSkillHandler(new Mdam()); registerSkillHandler(new CpDam()); registerSkillHandler(new Manadam()); registerSkillHandler(new Heal()); registerSkillHandler(new CombatPointHeal()); registerSkillHandler(new ManaHeal()); registerSkillHandler(new BalanceLife()); registerSkillHandler(new Charge()); registerSkillHandler(new Continuous()); registerSkillHandler(new Resurrect()); registerSkillHandler(new ShiftTarget()); registerSkillHandler(new Spoil()); registerSkillHandler(new Sweep()); registerSkillHandler(new StrSiegeAssault()); registerSkillHandler(new SummonFriend()); registerSkillHandler(new SummonTreasureKey()); registerSkillHandler(new Disablers()); registerSkillHandler(new Recall()); registerSkillHandler(new SiegeFlag()); registerSkillHandler(new TakeCastle()); registerSkillHandler(new TakeFort()); registerSkillHandler(new Unlock()); registerSkillHandler(new DrainSoul()); registerSkillHandler(new Craft()); registerSkillHandler(new Fishing()); registerSkillHandler(new FishingSkill()); registerSkillHandler(new BeastFeed()); registerSkillHandler(new DeluxeKey()); registerSkillHandler(new Sow()); registerSkillHandler(new Soul()); registerSkillHandler(new Harvest()); registerSkillHandler(new GetPlayer()); registerSkillHandler(new TransformDispel()); registerSkillHandler(new Trap()); registerSkillHandler(new GiveSp()); _log.config("SkillHandler: Loaded " + _datatable.size() + " handlers."); } public void registerSkillHandler(ISkillHandler handler) { L2SkillType[] types = handler.getSkillIds(); for (L2SkillType t : types) { _datatable.put(t, handler); } } public ISkillHandler getSkillHandler(L2SkillType skillType) { return _datatable.get(skillType); } /** * @return */ public int size() { return _datatable.size(); } }