Ignore:
Timestamp:
Jan 16, 2012 7:56:19 AM (4 months ago)
Author:
MELERIX
Message:

STABLE: Sync with BETA [8629]

Location:
trunk/L2J_DataPack
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/L2J_DataPack

  • trunk/L2J_DataPack/dist/game/data/scripts/handlers/MasterHandler.java

    r8501 r8630  
    1414 */ 
    1515package handlers; 
    16  
    1716import handlers.actionhandlers.L2ArtefactInstanceAction; 
    1817import handlers.actionhandlers.L2DecoyAction; 
     
    6362import handlers.admincommandhandlers.AdminGraciaSeeds; 
    6463import handlers.admincommandhandlers.AdminHeal; 
     64import handlers.admincommandhandlers.AdminHellbound; 
    6565import handlers.admincommandhandlers.AdminHelpPage; 
    6666import handlers.admincommandhandlers.AdminInstance; 
     
    9494import handlers.admincommandhandlers.AdminSummon; 
    9595import handlers.admincommandhandlers.AdminTarget; 
     96import handlers.admincommandhandlers.AdminTargetSay; 
    9697import handlers.admincommandhandlers.AdminTeleport; 
    9798import handlers.admincommandhandlers.AdminTerritoryWar; 
     
    263264import handlers.targethandlers.TargetSummon; 
    264265import handlers.targethandlers.TargetUnlockable; 
     266import handlers.telnethandlers.ChatsHandler; 
     267import handlers.telnethandlers.DebugHandler; 
     268import handlers.telnethandlers.HelpHandler; 
     269import handlers.telnethandlers.PlayerHandler; 
     270import handlers.telnethandlers.ReloadHandler; 
     271import handlers.telnethandlers.ServerHandler; 
     272import handlers.telnethandlers.StatusHandler; 
     273import handlers.telnethandlers.ThreadHandler; 
    265274import handlers.usercommandhandlers.Birthday; 
    266275import handlers.usercommandhandlers.ChannelDelete; 
     
    281290import handlers.voicedcommandhandlers.ChatAdmin; 
    282291import handlers.voicedcommandhandlers.Debug; 
     292import handlers.voicedcommandhandlers.Hellbound; 
    283293import handlers.voicedcommandhandlers.Lang; 
    284294import handlers.voicedcommandhandlers.TvTVoicedInfo; 
     
    286296import handlers.voicedcommandhandlers.stats; 
    287297 
     298import java.lang.reflect.Method; 
    288299import java.util.logging.Level; 
    289300import java.util.logging.Logger; 
     
    291302import com.l2jserver.Config; 
    292303import com.l2jserver.gameserver.handler.ActionHandler; 
     304import com.l2jserver.gameserver.handler.ActionShiftHandler; 
    293305import com.l2jserver.gameserver.handler.AdminCommandHandler; 
    294306import com.l2jserver.gameserver.handler.BypassHandler; 
     
    297309import com.l2jserver.gameserver.handler.SkillHandler; 
    298310import com.l2jserver.gameserver.handler.TargetHandler; 
     311import com.l2jserver.gameserver.handler.TelnetHandler; 
    299312import com.l2jserver.gameserver.handler.UserCommandHandler; 
    300313import com.l2jserver.gameserver.handler.VoicedCommandHandler; 
    301314 
    302315/** 
    303  * @author  nBd 
     316 * @author UnAfraid 
    304317 */ 
    305318public class MasterHandler 
     
    307320        private static Logger _log = Logger.getLogger(MasterHandler.class.getName()); 
    308321         
    309         private static final ActionHandler ACTION = ActionHandler.getInstance(); 
    310         private static final AdminCommandHandler ADMIN = AdminCommandHandler.getInstance(); 
    311         private static final BypassHandler BYPASS = BypassHandler.getInstance(); 
    312         private static final ChatHandler CHAT = ChatHandler.getInstance(); 
    313         private static final ItemHandler ITEM = ItemHandler.getInstance(); 
    314         private static final SkillHandler SKILL = SkillHandler.getInstance(); 
    315         private static final UserCommandHandler USER = UserCommandHandler.getInstance(); 
    316         private static final VoicedCommandHandler VOICE = VoicedCommandHandler.getInstance(); 
    317         private static final TargetHandler TARGET = TargetHandler.getInstance(); 
     322        private static final Class<?>[] _loadInstances = 
     323        { 
     324                ActionHandler.class, 
     325                ActionShiftHandler.class, 
     326                AdminCommandHandler.class, 
     327                BypassHandler.class, 
     328                ChatHandler.class, 
     329                ItemHandler.class, 
     330                SkillHandler.class, 
     331                UserCommandHandler.class, 
     332                VoicedCommandHandler.class, 
     333                TargetHandler.class, 
     334                TelnetHandler.class, 
     335        }; 
    318336         
    319         private static void loadActionHandlers() 
     337        private static final Class<?>[][] _handlers =  
    320338        { 
    321                 ACTION.registerActionHandler(new L2ArtefactInstanceAction()); 
    322                 ACTION.registerActionHandler(new L2DecoyAction()); 
    323                 ACTION.registerActionHandler(new L2DoorInstanceAction()); 
    324                 ACTION.registerActionHandler(new L2ItemInstanceAction()); 
    325                 ACTION.registerActionHandler(new L2NpcAction()); 
    326                 ACTION.registerActionHandler(new L2PcInstanceAction()); 
    327                 ACTION.registerActionHandler(new L2PetInstanceAction()); 
    328                 ACTION.registerActionHandler(new L2StaticObjectInstanceAction()); 
    329                 ACTION.registerActionHandler(new L2SummonAction()); 
    330                 ACTION.registerActionHandler(new L2TrapAction()); 
    331                 _log.log(Level.INFO, "Loaded " + ACTION.size() + " ActionHandlers"); 
    332         } 
    333          
    334         private static void loadActionShiftHandlers() 
    335         { 
    336                 ACTION.registerActionShiftHandler(new L2DoorInstanceActionShift()); 
    337                 ACTION.registerActionShiftHandler(new L2ItemInstanceActionShift()); 
    338                 ACTION.registerActionShiftHandler(new L2NpcActionShift()); 
    339                 ACTION.registerActionShiftHandler(new L2PcInstanceActionShift()); 
    340                 ACTION.registerActionShiftHandler(new L2StaticObjectInstanceActionShift()); 
    341                 ACTION.registerActionShiftHandler(new L2SummonActionShift()); 
    342                 _log.log(Level.INFO, "Loaded " + ACTION.sizeShift() + " ActionShiftHandlers"); 
    343         } 
    344          
    345         private static void loadAdminHandlers() 
    346         { 
    347                 ADMIN.registerAdminCommandHandler(new AdminAdmin()); 
    348                 ADMIN.registerAdminCommandHandler(new AdminAnnouncements()); 
    349                 ADMIN.registerAdminCommandHandler(new AdminBan()); 
    350                 ADMIN.registerAdminCommandHandler(new AdminBBS()); 
    351                 ADMIN.registerAdminCommandHandler(new AdminBuffs()); 
    352                 ADMIN.registerAdminCommandHandler(new AdminCache()); 
    353                 ADMIN.registerAdminCommandHandler(new AdminCamera()); 
    354                 ADMIN.registerAdminCommandHandler(new AdminChangeAccessLevel()); 
    355                 ADMIN.registerAdminCommandHandler(new AdminCHSiege()); 
    356                 ADMIN.registerAdminCommandHandler(new AdminClan()); 
    357                 ADMIN.registerAdminCommandHandler(new AdminCreateItem()); 
    358                 ADMIN.registerAdminCommandHandler(new AdminCursedWeapons()); 
    359                 ADMIN.registerAdminCommandHandler(new AdminDebug()); 
    360                 ADMIN.registerAdminCommandHandler(new AdminDelete()); 
    361                 ADMIN.registerAdminCommandHandler(new AdminDisconnect()); 
    362                 ADMIN.registerAdminCommandHandler(new AdminDoorControl()); 
    363                 ADMIN.registerAdminCommandHandler(new AdminEditChar()); 
    364                 ADMIN.registerAdminCommandHandler(new AdminEditNpc()); 
    365                 ADMIN.registerAdminCommandHandler(new AdminEffects()); 
    366                 ADMIN.registerAdminCommandHandler(new AdminElement()); 
    367                 ADMIN.registerAdminCommandHandler(new AdminEnchant()); 
    368                 ADMIN.registerAdminCommandHandler(new AdminEventEngine()); 
    369                 ADMIN.registerAdminCommandHandler(new AdminEvents()); 
    370                 ADMIN.registerAdminCommandHandler(new AdminExpSp()); 
    371                 ADMIN.registerAdminCommandHandler(new AdminFightCalculator()); 
    372                 ADMIN.registerAdminCommandHandler(new AdminFortSiege()); 
    373                 ADMIN.registerAdminCommandHandler(new AdminGeodata()); 
    374                 ADMIN.registerAdminCommandHandler(new AdminGeoEditor()); 
    375                 ADMIN.registerAdminCommandHandler(new AdminGm()); 
    376                 ADMIN.registerAdminCommandHandler(new AdminGmChat()); 
    377                 ADMIN.registerAdminCommandHandler(new AdminGraciaSeeds()); 
    378                 ADMIN.registerAdminCommandHandler(new AdminHeal()); 
    379                 ADMIN.registerAdminCommandHandler(new AdminHelpPage()); 
    380                 ADMIN.registerAdminCommandHandler(new AdminInstance()); 
    381                 ADMIN.registerAdminCommandHandler(new AdminInstanceZone()); 
    382                 ADMIN.registerAdminCommandHandler(new AdminInvul()); 
    383                 ADMIN.registerAdminCommandHandler(new AdminKick()); 
    384                 ADMIN.registerAdminCommandHandler(new AdminKill()); 
    385                 ADMIN.registerAdminCommandHandler(new AdminLevel()); 
    386                 ADMIN.registerAdminCommandHandler(new AdminLogin()); 
    387                 ADMIN.registerAdminCommandHandler(new AdminMammon()); 
    388                 ADMIN.registerAdminCommandHandler(new AdminManor()); 
    389                 ADMIN.registerAdminCommandHandler(new AdminMenu()); 
    390                 ADMIN.registerAdminCommandHandler(new AdminMessages()); 
    391                 ADMIN.registerAdminCommandHandler(new AdminMobGroup()); 
    392                 ADMIN.registerAdminCommandHandler(new AdminMonsterRace()); 
    393                 ADMIN.registerAdminCommandHandler(new AdminPathNode()); 
    394                 ADMIN.registerAdminCommandHandler(new AdminPetition()); 
    395                 ADMIN.registerAdminCommandHandler(new AdminPForge()); 
    396                 ADMIN.registerAdminCommandHandler(new AdminPledge()); 
    397                 ADMIN.registerAdminCommandHandler(new AdminPolymorph()); 
    398                 ADMIN.registerAdminCommandHandler(new AdminQuest()); 
    399                 ADMIN.registerAdminCommandHandler(new AdminRepairChar()); 
    400                 ADMIN.registerAdminCommandHandler(new AdminRes()); 
    401                 ADMIN.registerAdminCommandHandler(new AdminRide()); 
    402                 ADMIN.registerAdminCommandHandler(new AdminShop()); 
    403                 ADMIN.registerAdminCommandHandler(new AdminShowQuests()); 
    404                 ADMIN.registerAdminCommandHandler(new AdminShutdown()); 
    405                 ADMIN.registerAdminCommandHandler(new AdminSiege()); 
    406                 ADMIN.registerAdminCommandHandler(new AdminSkill()); 
    407                 ADMIN.registerAdminCommandHandler(new AdminSpawn()); 
    408                 ADMIN.registerAdminCommandHandler(new AdminSummon()); 
    409                 ADMIN.registerAdminCommandHandler(new AdminTarget()); 
    410                 ADMIN.registerAdminCommandHandler(new AdminTeleport()); 
    411                 ADMIN.registerAdminCommandHandler(new AdminTerritoryWar()); 
    412                 ADMIN.registerAdminCommandHandler(new AdminTest()); 
    413                 ADMIN.registerAdminCommandHandler(new AdminTvTEvent()); 
    414                 ADMIN.registerAdminCommandHandler(new AdminUnblockIp()); 
    415                 ADMIN.registerAdminCommandHandler(new AdminVitality()); 
    416                 ADMIN.registerAdminCommandHandler(new AdminZone()); 
    417                 _log.log(Level.INFO, "Loaded " + ADMIN.size() + " AdminCommandHandlers"); 
    418         } 
    419          
    420         private static void loadBypassHandlers() 
    421         { 
    422                 BYPASS.registerBypassHandler(new Augment()); 
    423                 BYPASS.registerBypassHandler(new ArenaBuff()); 
    424                 BYPASS.registerBypassHandler(new BloodAlliance()); 
    425                 BYPASS.registerBypassHandler(new Buy()); 
    426                 BYPASS.registerBypassHandler(new BuyShadowItem()); 
    427                 BYPASS.registerBypassHandler(new ChatLink()); 
    428                 BYPASS.registerBypassHandler(new ClanWarehouse()); 
    429                 BYPASS.registerBypassHandler(new DrawHenna()); 
    430                 BYPASS.registerBypassHandler(new EventEngine()); 
    431                 BYPASS.registerBypassHandler(new Festival()); 
    432                 BYPASS.registerBypassHandler(new FortSiege()); 
    433                 BYPASS.registerBypassHandler(new Freight()); 
    434                 BYPASS.registerBypassHandler(new ItemAuctionLink()); 
    435                 BYPASS.registerBypassHandler(new Link()); 
    436                 BYPASS.registerBypassHandler(new Loto()); 
    437                 BYPASS.registerBypassHandler(new ManorManager()); 
    438                 BYPASS.registerBypassHandler(new Multisell()); 
    439                 BYPASS.registerBypassHandler(new Observation()); 
    440                 BYPASS.registerBypassHandler(new OlympiadObservation()); 
    441                 BYPASS.registerBypassHandler(new OlympiadManagerLink()); 
    442                 BYPASS.registerBypassHandler(new QuestLink()); 
    443                 BYPASS.registerBypassHandler(new PlayerHelp()); 
    444                 BYPASS.registerBypassHandler(new PrivateWarehouse()); 
    445                 BYPASS.registerBypassHandler(new QuestList()); 
    446                 BYPASS.registerBypassHandler(new ReceivePremium()); 
    447                 BYPASS.registerBypassHandler(new ReleaseAttribute()); 
    448                 BYPASS.registerBypassHandler(new RemoveDeathPenalty()); 
    449                 BYPASS.registerBypassHandler(new RemoveHennaList()); 
    450                 BYPASS.registerBypassHandler(new RentPet()); 
    451                 BYPASS.registerBypassHandler(new RideWyvern()); 
    452                 BYPASS.registerBypassHandler(new Rift()); 
    453                 BYPASS.registerBypassHandler(new SkillList()); 
    454                 BYPASS.registerBypassHandler(new SupportBlessing()); 
    455                 BYPASS.registerBypassHandler(new SupportMagic()); 
    456                 BYPASS.registerBypassHandler(new TerritoryStatus()); 
    457                 BYPASS.registerBypassHandler(new TerritoryWar()); 
    458                 BYPASS.registerBypassHandler(new VoiceCommand()); 
    459                 BYPASS.registerBypassHandler(new Wear()); 
    460                 _log.log(Level.INFO, "Loaded " + BYPASS.size() + " BypassHandlers"); 
    461         } 
    462          
    463         private static void loadChatHandlers() 
    464         { 
    465                 CHAT.registerChatHandler(new ChatAll()); 
    466                 CHAT.registerChatHandler(new ChatAlliance()); 
    467                 CHAT.registerChatHandler(new ChatBattlefield()); 
    468                 CHAT.registerChatHandler(new ChatClan()); 
    469                 CHAT.registerChatHandler(new ChatHeroVoice()); 
    470                 CHAT.registerChatHandler(new ChatParty()); 
    471                 CHAT.registerChatHandler(new ChatPartyMatchRoom()); 
    472                 CHAT.registerChatHandler(new ChatPartyRoomAll()); 
    473                 CHAT.registerChatHandler(new ChatPartyRoomCommander()); 
    474                 CHAT.registerChatHandler(new ChatPetition()); 
    475                 CHAT.registerChatHandler(new ChatShout()); 
    476                 CHAT.registerChatHandler(new ChatTell()); 
    477                 CHAT.registerChatHandler(new ChatTrade()); 
    478                 _log.log(Level.INFO, "Loaded " + CHAT.size() + " ChatHandlers"); 
    479         } 
    480          
    481         private static void loadItemHandlers() 
    482         { 
    483                 ITEM.registerItemHandler(new ScrollOfResurrection()); 
    484                 ITEM.registerItemHandler(new SoulShots()); 
    485                 ITEM.registerItemHandler(new SpiritShot()); 
    486                 ITEM.registerItemHandler(new BlessedSpiritShot()); 
    487                 ITEM.registerItemHandler(new BeastSoulShot()); 
    488                 ITEM.registerItemHandler(new BeastSpiritShot()); 
    489                 ITEM.registerItemHandler(new PaganKeys()); 
    490                 ITEM.registerItemHandler(new Maps()); 
    491                 ITEM.registerItemHandler(new NicknameColor()); 
    492                 ITEM.registerItemHandler(new Recipes()); 
    493                 ITEM.registerItemHandler(new RollingDice()); 
    494                 ITEM.registerItemHandler(new EnchantAttribute()); 
    495                 ITEM.registerItemHandler(new EnchantScrolls()); 
    496                 ITEM.registerItemHandler(new ExtractableItems()); 
    497                 ITEM.registerItemHandler(new Book()); 
    498                 ITEM.registerItemHandler(new SevenSignsRecord()); 
    499                 ITEM.registerItemHandler(new ItemSkills()); 
    500                 ITEM.registerItemHandler(new ItemSkillsTemplate()); 
    501                 ITEM.registerItemHandler(new Seed()); 
    502                 ITEM.registerItemHandler(new Harvester()); 
    503                 ITEM.registerItemHandler(new MercTicket()); 
    504                 ITEM.registerItemHandler(new FishShots()); 
    505                 ITEM.registerItemHandler(new PetFood()); 
    506                 ITEM.registerItemHandler(new SpecialXMas()); 
    507                 ITEM.registerItemHandler(new SummonItems()); 
    508                 ITEM.registerItemHandler(new BeastSpice()); 
    509                 ITEM.registerItemHandler(new TeleportBookmark()); 
    510                 ITEM.registerItemHandler(new Elixir()); 
    511                 ITEM.registerItemHandler(new Disguise()); 
    512                 ITEM.registerItemHandler(new ManaPotion()); 
    513                 ITEM.registerItemHandler(new EnergyStarStone()); 
    514                 ITEM.registerItemHandler(new EventItem()); 
    515                 _log.log(Level.INFO, "Loaded " + ITEM.size() + " ItemHandlers"); 
    516         } 
    517          
    518         private static void loadSkillHandlers() 
    519         { 
    520                 SKILL.registerSkillHandler(new Blow()); 
    521                 SKILL.registerSkillHandler(new Pdam()); 
    522                 SKILL.registerSkillHandler(new Mdam()); 
    523                 SKILL.registerSkillHandler(new CpDam()); 
    524                 SKILL.registerSkillHandler(new CpDamPercent()); 
    525                 SKILL.registerSkillHandler(new Manadam()); 
    526                 SKILL.registerSkillHandler(new Heal()); 
    527                 SKILL.registerSkillHandler(new HealPercent()); 
    528                 SKILL.registerSkillHandler(new CombatPointHeal()); 
    529                 SKILL.registerSkillHandler(new ManaHeal()); 
    530                 SKILL.registerSkillHandler(new BalanceLife()); 
    531                 SKILL.registerSkillHandler(new Charge()); 
    532                 SKILL.registerSkillHandler(new Continuous()); 
    533                 SKILL.registerSkillHandler(new Detection()); 
    534                 SKILL.registerSkillHandler(new Resurrect()); 
    535                 SKILL.registerSkillHandler(new ShiftTarget()); 
    536                 SKILL.registerSkillHandler(new Spoil()); 
    537                 SKILL.registerSkillHandler(new Sweep()); 
    538                 SKILL.registerSkillHandler(new StrSiegeAssault()); 
    539                 SKILL.registerSkillHandler(new SummonFriend()); 
    540                 SKILL.registerSkillHandler(new Disablers()); 
    541                 SKILL.registerSkillHandler(new Cancel()); 
    542                 SKILL.registerSkillHandler(new ChainHeal()); 
    543                 SKILL.registerSkillHandler(new StealBuffs()); 
    544                 SKILL.registerSkillHandler(new BallistaBomb()); 
    545                 SKILL.registerSkillHandler(new TakeCastle()); 
    546                 SKILL.registerSkillHandler(new TakeFort()); 
    547                 SKILL.registerSkillHandler(new Unlock()); 
    548                 SKILL.registerSkillHandler(new Craft()); 
    549                 SKILL.registerSkillHandler(new Fishing()); 
    550                 SKILL.registerSkillHandler(new FishingSkill()); 
    551                 SKILL.registerSkillHandler(new BeastSkills()); 
    552                 SKILL.registerSkillHandler(new DeluxeKey()); 
    553                 SKILL.registerSkillHandler(new Sow()); 
    554                 SKILL.registerSkillHandler(new Soul()); 
    555                 SKILL.registerSkillHandler(new Harvest()); 
    556                 SKILL.registerSkillHandler(new GetPlayer()); 
    557                 SKILL.registerSkillHandler(new TransformDispel()); 
    558                 SKILL.registerSkillHandler(new Trap()); 
    559                 SKILL.registerSkillHandler(new GiveSp()); 
    560                 SKILL.registerSkillHandler(new GiveReco()); 
    561                 SKILL.registerSkillHandler(new GiveVitality()); 
    562                 SKILL.registerSkillHandler(new InstantJump()); 
    563                 SKILL.registerSkillHandler(new Dummy()); 
    564                 SKILL.registerSkillHandler(new Extractable()); 
    565                 SKILL.registerSkillHandler(new RefuelAirShip()); 
    566                 SKILL.registerSkillHandler(new NornilsPower()); 
    567                 _log.log(Level.INFO, "Loaded " + SKILL.size() + " SkillHandlers"); 
    568         } 
    569          
    570         private static void loadUserHandlers() 
    571         { 
    572                 USER.registerUserCommandHandler(new ClanPenalty()); 
    573                 USER.registerUserCommandHandler(new ClanWarsList()); 
    574                 USER.registerUserCommandHandler(new DisMount()); 
    575                 USER.registerUserCommandHandler(new Escape()); 
    576                 USER.registerUserCommandHandler(new InstanceZone()); 
    577                 USER.registerUserCommandHandler(new Loc()); 
    578                 USER.registerUserCommandHandler(new Mount()); 
    579                 USER.registerUserCommandHandler(new PartyInfo()); 
    580                 USER.registerUserCommandHandler(new Time()); 
    581                 USER.registerUserCommandHandler(new OlympiadStat()); 
    582                 USER.registerUserCommandHandler(new ChannelLeave()); 
    583                 USER.registerUserCommandHandler(new ChannelDelete()); 
    584                 USER.registerUserCommandHandler(new ChannelListUpdate()); 
    585                 USER.registerUserCommandHandler(new Birthday()); 
    586                 _log.log(Level.INFO, "Loaded " + USER.size() + " UserHandlers"); 
    587         } 
    588          
    589         private static void loadVoicedHandlers() 
    590         { 
    591                 VOICE.registerVoicedCommandHandler(new stats()); 
    592                 if (Config.L2JMOD_ALLOW_WEDDING) 
    593                         VOICE.registerVoicedCommandHandler(new Wedding()); 
    594                 if (Config.BANKING_SYSTEM_ENABLED) 
    595                         VOICE.registerVoicedCommandHandler(new Banking()); 
    596                 if (Config.TVT_ALLOW_VOICED_COMMAND) 
    597                         VOICE.registerVoicedCommandHandler(new TvTVoicedInfo()); 
    598                 if (Config.L2JMOD_CHAT_ADMIN) 
    599                         VOICE.registerVoicedCommandHandler(new ChatAdmin()); 
    600                 if (Config.L2JMOD_MULTILANG_ENABLE && Config.L2JMOD_MULTILANG_VOICED_ALLOW) 
    601                         VOICE.registerVoicedCommandHandler(new Lang()); 
    602                 if (Config.L2JMOD_DEBUG_VOICE_COMMAND) 
    603                         VOICE.registerVoicedCommandHandler(new Debug()); 
    604                 if (Config.L2JMOD_ALLOW_CHANGE_PASSWORD) 
    605                         VOICE.registerVoicedCommandHandler(new ChangePassword()); 
    606                 _log.log(Level.INFO, "Loaded " + VOICE.size() + " VoicedHandlers"); 
    607         } 
    608          
    609         private static void loadTargetHandlers() 
    610         { 
    611                 TARGET.registerSkillTargetType(new TargetAlly()); 
    612                 TARGET.registerSkillTargetType(new TargetArea()); 
    613                 TARGET.registerSkillTargetType(new TargetAreaCorpseMob()); 
    614                 TARGET.registerSkillTargetType(new TargetAreaSummon()); 
    615                 TARGET.registerSkillTargetType(new TargetAura()); 
    616                 TARGET.registerSkillTargetType(new TargetAuraCorpseMob()); 
    617                 TARGET.registerSkillTargetType(new TargetBehindArea()); 
    618                 TARGET.registerSkillTargetType(new TargetBehindAura()); 
    619                 TARGET.registerSkillTargetType(new TargetClan()); 
    620                 TARGET.registerSkillTargetType(new TargetClanMember()); 
    621                 TARGET.registerSkillTargetType(new TargetCorpseAlly()); 
    622                 TARGET.registerSkillTargetType(new TargetCorpseClan()); 
    623                 TARGET.registerSkillTargetType(new TargetCorpseMob()); 
    624                 TARGET.registerSkillTargetType(new TargetCorpsePet()); 
    625                 TARGET.registerSkillTargetType(new TargetCorpsePlayer()); 
    626                 TARGET.registerSkillTargetType(new TargetEnemySummon()); 
    627                 TARGET.registerSkillTargetType(new TargetFlagPole()); 
    628                 TARGET.registerSkillTargetType(new TargetFrontArea()); 
    629                 TARGET.registerSkillTargetType(new TargetFrontAura()); 
    630                 TARGET.registerSkillTargetType(new TargetGround()); 
    631                 TARGET.registerSkillTargetType(new TargetHoly()); 
    632                 TARGET.registerSkillTargetType(new TargetOne()); 
    633                 TARGET.registerSkillTargetType(new TargetOwnerPet()); 
    634                 TARGET.registerSkillTargetType(new TargetParty()); 
    635                 TARGET.registerSkillTargetType(new TargetPartyClan()); 
    636                 TARGET.registerSkillTargetType(new TargetPartyMember()); 
    637                 TARGET.registerSkillTargetType(new TargetPartyNotMe()); 
    638                 TARGET.registerSkillTargetType(new TargetPartyOther()); 
    639                 TARGET.registerSkillTargetType(new TargetPet()); 
    640                 TARGET.registerSkillTargetType(new TargetSelf()); 
    641                 TARGET.registerSkillTargetType(new TargetSummon()); 
    642                 TARGET.registerSkillTargetType(new TargetUnlockable()); 
    643                 _log.log(Level.INFO, "Loaded " + TARGET.size() + " Target Handlers"); 
    644         } 
     339                { // Action Handlers 
     340                        L2ArtefactInstanceAction.class, 
     341                        L2DecoyAction.class, 
     342                        L2DoorInstanceAction.class, 
     343                        L2ItemInstanceAction.class, 
     344                        L2NpcAction.class, 
     345                        L2PcInstanceAction.class, 
     346                        L2PetInstanceAction.class, 
     347                        L2StaticObjectInstanceAction.class, 
     348                        L2SummonAction.class, 
     349                        L2TrapAction.class, 
     350                }, 
     351                { // Action Shift Handlers 
     352                        L2DoorInstanceActionShift.class, 
     353                        L2ItemInstanceActionShift.class, 
     354                        L2NpcActionShift.class, 
     355                        L2PcInstanceActionShift.class, 
     356                        L2StaticObjectInstanceActionShift.class, 
     357                        L2SummonActionShift.class, 
     358                }, 
     359                { // Admin Command Handlers 
     360                        AdminAdmin.class, 
     361                        AdminAnnouncements.class, 
     362                        AdminBan.class, 
     363                        AdminBBS.class, 
     364                        AdminBuffs.class, 
     365                        AdminCache.class, 
     366                        AdminCamera.class, 
     367                        AdminChangeAccessLevel.class, 
     368                        AdminCHSiege.class, 
     369                        AdminClan.class, 
     370                        AdminCreateItem.class, 
     371                        AdminCursedWeapons.class, 
     372                        AdminDebug.class, 
     373                        AdminDelete.class, 
     374                        AdminDisconnect.class, 
     375                        AdminDoorControl.class, 
     376                        AdminEditChar.class, 
     377                        AdminEditNpc.class, 
     378                        AdminEffects.class, 
     379                        AdminElement.class, 
     380                        AdminEnchant.class, 
     381                        AdminEventEngine.class, 
     382                        AdminEvents.class, 
     383                        AdminExpSp.class, 
     384                        AdminFightCalculator.class, 
     385                        AdminFortSiege.class, 
     386                        AdminGeodata.class, 
     387                        AdminGeoEditor.class, 
     388                        AdminGm.class, 
     389                        AdminGmChat.class, 
     390                        AdminGraciaSeeds.class, 
     391                        AdminHeal.class, 
     392                        AdminHellbound.class, 
     393                        AdminHelpPage.class, 
     394                        AdminInstance.class, 
     395                        AdminInstanceZone.class, 
     396                        AdminInvul.class, 
     397                        AdminKick.class, 
     398                        AdminKill.class, 
     399                        AdminLevel.class, 
     400                        AdminLogin.class, 
     401                        AdminMammon.class, 
     402                        AdminManor.class, 
     403                        AdminMenu.class, 
     404                        AdminMessages.class, 
     405                        AdminMobGroup.class, 
     406                        AdminMonsterRace.class, 
     407                        AdminPathNode.class, 
     408                        AdminPetition.class, 
     409                        AdminPForge.class, 
     410                        AdminPledge.class, 
     411                        AdminPolymorph.class, 
     412                        AdminQuest.class, 
     413                        AdminRepairChar.class, 
     414                        AdminRes.class, 
     415                        AdminRide.class, 
     416                        AdminShop.class, 
     417                        AdminShowQuests.class, 
     418                        AdminShutdown.class, 
     419                        AdminSiege.class, 
     420                        AdminSkill.class, 
     421                        AdminSpawn.class, 
     422                        AdminSummon.class, 
     423                        AdminTarget.class, 
     424                        AdminTargetSay.class, 
     425                        AdminTeleport.class, 
     426                        AdminTerritoryWar.class, 
     427                        AdminTest.class, 
     428                        AdminTvTEvent.class, 
     429                        AdminUnblockIp.class, 
     430                        AdminVitality.class, 
     431                        AdminZone.class, 
     432                }, 
     433                { // Bypass Handlers 
     434                        Augment.class, 
     435                        ArenaBuff.class, 
     436                        BloodAlliance.class, 
     437                        Buy.class, 
     438                        BuyShadowItem.class, 
     439                        ChatLink.class, 
     440                        ClanWarehouse.class, 
     441                        DrawHenna.class, 
     442                        EventEngine.class, 
     443                        Festival.class, 
     444                        FortSiege.class, 
     445                        Freight.class, 
     446                        ItemAuctionLink.class, 
     447                        Link.class, 
     448                        Loto.class, 
     449                        ManorManager.class, 
     450                        Multisell.class, 
     451                        Observation.class, 
     452                        OlympiadObservation.class, 
     453                        OlympiadManagerLink.class, 
     454                        QuestLink.class, 
     455                        PlayerHelp.class, 
     456                        PrivateWarehouse.class, 
     457                        QuestList.class, 
     458                        ReceivePremium.class, 
     459                        ReleaseAttribute.class, 
     460                        RemoveDeathPenalty.class, 
     461                        RemoveHennaList.class, 
     462                        RentPet.class, 
     463                        RideWyvern.class, 
     464                        Rift.class, 
     465                        SkillList.class, 
     466                        SupportBlessing.class, 
     467                        SupportMagic.class, 
     468                        TerritoryStatus.class, 
     469                        TerritoryWar.class, 
     470                        VoiceCommand.class, 
     471                        Wear.class, 
     472                }, 
     473                { // Chat Handlers 
     474                        ChatAll.class, 
     475                        ChatAlliance.class, 
     476                        ChatBattlefield.class, 
     477                        ChatClan.class, 
     478                        ChatHeroVoice.class, 
     479                        ChatParty.class, 
     480                        ChatPartyMatchRoom.class, 
     481                        ChatPartyRoomAll.class, 
     482                        ChatPartyRoomCommander.class, 
     483                        ChatPetition.class, 
     484                        ChatShout.class, 
     485                        ChatTell.class, 
     486                        ChatTrade.class, 
     487                }, 
     488                { // Item Handlers 
     489                        ScrollOfResurrection.class, 
     490                        SoulShots.class, 
     491                        SpiritShot.class, 
     492                        BlessedSpiritShot.class, 
     493                        BeastSoulShot.class, 
     494                        BeastSpiritShot.class, 
     495                        PaganKeys.class, 
     496                        Maps.class, 
     497                        NicknameColor.class, 
     498                        Recipes.class, 
     499                        RollingDice.class, 
     500                        EnchantAttribute.class, 
     501                        EnchantScrolls.class, 
     502                        ExtractableItems.class, 
     503                        Book.class, 
     504                        SevenSignsRecord.class, 
     505                        ItemSkills.class, 
     506                        ItemSkillsTemplate.class, 
     507                        Seed.class, 
     508                        Harvester.class, 
     509                        MercTicket.class, 
     510                        FishShots.class, 
     511                        PetFood.class, 
     512                        SpecialXMas.class, 
     513                        SummonItems.class, 
     514                        BeastSpice.class, 
     515                        TeleportBookmark.class, 
     516                        Elixir.class, 
     517                        Disguise.class, 
     518                        ManaPotion.class, 
     519                        EnergyStarStone.class, 
     520                        EventItem.class, 
     521                }, 
     522                { // Skill Handlers 
     523                        Blow.class, 
     524                        Pdam.class, 
     525                        Mdam.class, 
     526                        CpDam.class, 
     527                        CpDamPercent.class, 
     528                        Manadam.class, 
     529                        Heal.class, 
     530                        HealPercent.class, 
     531                        CombatPointHeal.class, 
     532                        ManaHeal.class, 
     533                        BalanceLife.class, 
     534                        Charge.class, 
     535                        Continuous.class, 
     536                        Detection.class, 
     537                        Resurrect.class, 
     538                        ShiftTarget.class, 
     539                        Spoil.class, 
     540                        Sweep.class, 
     541                        StrSiegeAssault.class, 
     542                        SummonFriend.class, 
     543                        Disablers.class, 
     544                        Cancel.class, 
     545                        ChainHeal.class, 
     546                        StealBuffs.class, 
     547                        BallistaBomb.class, 
     548                        TakeCastle.class, 
     549                        TakeFort.class, 
     550                        Unlock.class, 
     551                        Craft.class, 
     552                        Fishing.class, 
     553                        FishingSkill.class, 
     554                        BeastSkills.class, 
     555                        DeluxeKey.class, 
     556                        Sow.class, 
     557                        Soul.class, 
     558                        Harvest.class, 
     559                        GetPlayer.class, 
     560                        TransformDispel.class, 
     561                        Trap.class, 
     562                        GiveSp.class, 
     563                        GiveReco.class, 
     564                        GiveVitality.class, 
     565                        InstantJump.class, 
     566                        Dummy.class, 
     567                        Extractable.class, 
     568                        RefuelAirShip.class, 
     569                        NornilsPower.class, 
     570                }, 
     571                { // User Command Handlers 
     572                        ClanPenalty.class, 
     573                        ClanWarsList.class, 
     574                        DisMount.class, 
     575                        Escape.class, 
     576                        InstanceZone.class, 
     577                        Loc.class, 
     578                        Mount.class, 
     579                        PartyInfo.class, 
     580                        Time.class, 
     581                        OlympiadStat.class, 
     582                        ChannelLeave.class, 
     583                        ChannelDelete.class, 
     584                        ChannelListUpdate.class, 
     585                        Birthday.class, 
     586                }, 
     587                { // Voiced Command Handlers 
     588                        stats.class, 
     589                        (Config.L2JMOD_ALLOW_WEDDING ? Wedding.class : null), 
     590                        (Config.BANKING_SYSTEM_ENABLED ? Banking.class : null), 
     591                        (Config.TVT_ALLOW_VOICED_COMMAND ? TvTVoicedInfo.class : null), 
     592                        (Config.L2JMOD_CHAT_ADMIN ? ChatAdmin.class : null), 
     593                        (Config.L2JMOD_MULTILANG_ENABLE && Config.L2JMOD_MULTILANG_VOICED_ALLOW ? Lang.class : null), 
     594                        (Config.L2JMOD_DEBUG_VOICE_COMMAND ? Debug.class : null), 
     595                        (Config.L2JMOD_ALLOW_CHANGE_PASSWORD ? ChangePassword.class : null), 
     596                        (Config.L2JMOD_HELLBOUND_STATUS ? Hellbound.class : null), 
     597                }, 
     598                { // Target Handlers 
     599                        TargetAlly.class, 
     600                        TargetArea.class, 
     601                        TargetAreaCorpseMob.class, 
     602                        TargetAreaSummon.class, 
     603                        TargetAura.class, 
     604                        TargetAuraCorpseMob.class, 
     605                        TargetBehindArea.class, 
     606                        TargetBehindAura.class, 
     607                        TargetClan.class, 
     608                        TargetClanMember.class, 
     609                        TargetCorpseAlly.class, 
     610                        TargetCorpseClan.class, 
     611                        TargetCorpseMob.class, 
     612                        TargetCorpsePet.class, 
     613                        TargetCorpsePlayer.class, 
     614                        TargetEnemySummon.class, 
     615                        TargetFlagPole.class, 
     616                        TargetFrontArea.class, 
     617                        TargetFrontAura.class, 
     618                        TargetGround.class, 
     619                        TargetHoly.class, 
     620                        TargetOne.class, 
     621                        TargetOwnerPet.class, 
     622                        TargetParty.class, 
     623                        TargetPartyClan.class, 
     624                        TargetPartyMember.class, 
     625                        TargetPartyNotMe.class, 
     626                        TargetPartyOther.class, 
     627                        TargetPet.class, 
     628                        TargetSelf.class, 
     629                        TargetSummon.class, 
     630                        TargetUnlockable.class, 
     631                }, 
     632                { // Telnet Handlers 
     633                        ChatsHandler.class, 
     634                        DebugHandler.class, 
     635                        HelpHandler.class, 
     636                        PlayerHandler.class, 
     637                        ReloadHandler.class, 
     638                        ServerHandler.class, 
     639                        StatusHandler.class, 
     640                        ThreadHandler.class, 
     641                }, 
     642        }; 
    645643         
    646644        /** 
     
    650648        { 
    651649                _log.log(Level.INFO, "Loading Handlers..."); 
    652                 loadActionHandlers(); 
    653                 loadActionShiftHandlers(); 
    654                 loadAdminHandlers(); 
    655                 loadBypassHandlers(); 
    656                 loadChatHandlers(); 
    657                 loadItemHandlers(); 
    658                 loadSkillHandlers(); 
    659                 loadUserHandlers(); 
    660                 loadVoicedHandlers(); 
    661                 loadTargetHandlers(); 
     650                 
     651                Object loadInstance = null; 
     652                Method method = null; 
     653                Class<?>[]  interfaces = null; 
     654                Object handler = null; 
     655                 
     656                for (int i = 0; i < _loadInstances.length; i++) 
     657                { 
     658                        try 
     659                        { 
     660                                method = _loadInstances[i].getMethod("getInstance"); 
     661                                loadInstance = method.invoke(_loadInstances[i]); 
     662                        } 
     663                        catch (Exception e) 
     664                        { 
     665                                _log.log(Level.WARNING, "Failed invoking getInstance method for handler: " + _loadInstances[i].getSimpleName(), e); 
     666                                continue; 
     667                        } 
     668                         
     669                        method = null; 
     670                         
     671                        for (Class<?> c : _handlers[i]) 
     672                        { 
     673                                try 
     674                                { 
     675                                        if (c == null) 
     676                                                continue; // Disabled handler 
     677                                        // Don't wtf some classes extending anothers like ItemHandler, Elixir, etc.. and we need to find where the hell is interface xD 
     678                                        interfaces = c.getInterfaces().length > 0 ? // Standartly handler has implementation 
     679                                                c.getInterfaces() : c.getSuperclass().getInterfaces().length > 0 ? // No? then it extends another handler like (ItemSkills->ItemSkillsTemplate) 
     680                                                        c.getSuperclass().getInterfaces() : c.getSuperclass().getSuperclass().getInterfaces(); // O noh that's Elixir->ItemSkills->ItemSkillsTemplate 
     681                                        if (method == null) 
     682                                                method = loadInstance.getClass().getMethod("registerHandler", interfaces); 
     683                                        handler = c.newInstance(); 
     684                                        if (method.getParameterTypes()[0].isInstance(handler)) 
     685                                        { 
     686                                                method.invoke(loadInstance, handler); 
     687                                        } 
     688                                } 
     689                                catch (Exception e) 
     690                                { 
     691                                        _log.log(Level.WARNING, "Failed loading handler: " + c.getSimpleName(), e); 
     692                                        continue; 
     693                                } 
     694                        } 
     695                        // And lets try get size 
     696                        try 
     697                        { 
     698                                method = loadInstance.getClass().getMethod("size"); 
     699                                Object returnVal = method.invoke(loadInstance); 
     700                                _log.log(Level.INFO, loadInstance.getClass().getSimpleName() + ": Loaded " + returnVal + " Handlers");   
     701                        } 
     702                        catch (Exception e) 
     703                        { 
     704                                _log.log(Level.WARNING, "Failed invoking size method for handler: " + loadInstance.getClass().getSimpleName(), e); 
     705                                continue; 
     706                        } 
     707                } 
     708                 
    662709                _log.log(Level.INFO, "Handlers Loaded..."); 
    663710        } 
Note: See TracChangeset for help on using the changeset viewer.