/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package server.buffs; import server.MapleStatEffect; import server.buffs.buffclasses.adventurer.BowmanBuff; import server.buffs.buffclasses.adventurer.MagicianBuff; import server.buffs.buffclasses.adventurer.PirateBuff; import server.buffs.buffclasses.adventurer.ThiefBuff; import server.buffs.buffclasses.adventurer.WarriorBuff; import server.buffs.buffclasses.adventurer.ChivalrousBuff; import server.buffs.buffclasses.cygnus.DawnWarriorBuff; import server.buffs.buffclasses.cygnus.ThunderBreakerBuff; import server.buffs.buffclasses.cygnus.MihileBuff; import server.buffs.buffclasses.cygnus.WindArcherBuff; import server.buffs.buffclasses.hero.AranBuff; import server.buffs.buffclasses.hero.EvanBuff; import server.buffs.buffclasses.hero.MercedesBuff; import server.buffs.buffclasses.hero.PhantomBuff; import server.buffs.buffclasses.hero.LuminousBuff; import server.buffs.buffclasses.nova.KaiserBuff; import server.buffs.buffclasses.nova.AngelicBusterBuff; import server.buffs.buffclasses.resistance.DemonBuff; import server.buffs.buffclasses.resistance.BattleMageBuff; import server.buffs.buffclasses.resistance.WildHunterBuff; import server.buffs.buffclasses.resistance.MechanicBuff; import server.buffs.buffclasses.resistance.XenonBuff; import server.buffs.buffclasses.sengoku.HayatoBuff; import server.buffs.buffclasses.sengoku.KannaBuff; import server.buffs.buffclasses.zero.ZeroBuff; import server.buffs.buffclasses.beasttamer.BeastTamerBuff; import server.buffs.buffclasses.cygnus.BlazeWizardBuff; import server.buffs.buffclasses.cygnus.NightWalkerBuff; import server.buffs.buffclasses.gamemaster.GameMasterBuff; /** * * @author Saint */ public class BuffClassFetcher { public static final Class<?>[] buffClasses = { WarriorBuff.class, MagicianBuff.class, BowmanBuff.class, ThiefBuff.class, PirateBuff.class, ChivalrousBuff.class, DawnWarriorBuff.class, WindArcherBuff.class, ThunderBreakerBuff.class, MihileBuff.class, AranBuff.class, EvanBuff.class, MercedesBuff.class, PhantomBuff.class, LuminousBuff.class, KaiserBuff.class, AngelicBusterBuff.class, XenonBuff.class, NightWalkerBuff.class, BlazeWizardBuff.class, WildHunterBuff.class, BattleMageBuff.class, MechanicBuff.class, DemonBuff.class, KannaBuff.class, HayatoBuff.class, ZeroBuff.class, BeastTamerBuff.class, GameMasterBuff.class }; public static boolean getHandleMethod(MapleStatEffect eff, int skillid) { int jobid = skillid / 10000; for (Class<?> c : buffClasses) { try { if (!AbstractBuffClass.class.isAssignableFrom(c)) { continue; } AbstractBuffClass cls = (AbstractBuffClass) c.newInstance(); if (cls.containsJob(jobid)) { if (!cls.containsSkill(skillid)) { continue; } cls.handleBuff(eff, skillid); return true; } } catch (InstantiationException | IllegalAccessException ex) { System.err.println("Error: handleBuff method was not found in " + c.getSimpleName() + ".class"); } catch (Exception ex) { ex.printStackTrace(); } } return false; } public static void load(boolean reload) { for (Class<?> c : buffClasses) { } } }