/* * 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.cygnus.DawnWarriorBuff; 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.LuminousBuff; import server.buffs.buffclasses.nova.AngelicBusterBuff; import server.buffs.buffclasses.resistance.DemonBuff; import server.buffs.buffclasses.resistance.WildHunterBuff; import server.buffs.buffclasses.resistance.XenonBuff; import server.buffs.buffclasses.sengoku.HayatoBuff; import server.buffs.buffclasses.sengoku.KannaBuff; import server.buffs.buffclasses.zero.ZeroBuff; /** * * @author Saint */ public class BuffClassFetcher { public static final Class<?>[] buffClasses = { WarriorBuff.class, MagicianBuff.class, BowmanBuff.class, ThiefBuff.class, PirateBuff.class, DawnWarriorBuff.class, WindArcherBuff.class, MihileBuff.class, AranBuff.class, EvanBuff.class, LuminousBuff.class, AngelicBusterBuff.class, XenonBuff.class, WildHunterBuff.class, DemonBuff.class, KannaBuff.class, HayatoBuff.class, ZeroBuff.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; } }