/* * 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.logging.Logger; import javolution.util.FastMap; import net.sf.l2j.Config; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAdmin; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminAnnouncements; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBBS; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBan; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminBanChat; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCache; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminChangeAccessLevel; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCreateItem; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminCursedWeapons; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDelete; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminDoorControl; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEditChar; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEditNpc; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEffects; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEnchant; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminEventEngine; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminExpSp; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminFightCalculator; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminFortSiege; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGeoEditor; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGeodata; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGm; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminGmChat; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHeal; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminHelpPage; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminInvul; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminKick; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminKill; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminLevel; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminLogin; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMammon; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminManor; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMenu; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMobGroup; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminMonsterRace; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPForge; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPathNode; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPetition; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPledge; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminPolymorph; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminQuest; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminRepairChar; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminRes; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminRide; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminShop; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminShutdown; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSiege; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSkill; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSpawn; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTarget; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTeleport; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTest; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminTvTEvent; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminUnblockIp; import net.sf.l2j.gameserver.handler.admincommandhandlers.AdminZone; /** * This class ... * * @version $Revision: 1.1.4.5 $ $Date: 2005/03/27 15:30:09 $ */ public class AdminCommandHandler { private static Logger _log = Logger.getLogger(AdminCommandHandler.class.getName()); private static AdminCommandHandler _instance; private Map _datatable; public static AdminCommandHandler getInstance() { if (_instance == null) { _instance = new AdminCommandHandler(); } return _instance; } private AdminCommandHandler() { _datatable = new FastMap(); registerAdminCommandHandler(new AdminAdmin()); registerAdminCommandHandler(new AdminInvul()); registerAdminCommandHandler(new AdminDelete()); registerAdminCommandHandler(new AdminKill()); registerAdminCommandHandler(new AdminTarget()); registerAdminCommandHandler(new AdminShop()); registerAdminCommandHandler(new AdminAnnouncements()); registerAdminCommandHandler(new AdminCreateItem()); registerAdminCommandHandler(new AdminHeal()); registerAdminCommandHandler(new AdminHelpPage()); registerAdminCommandHandler(new AdminShutdown()); registerAdminCommandHandler(new AdminSpawn()); registerAdminCommandHandler(new AdminSkill()); registerAdminCommandHandler(new AdminExpSp()); registerAdminCommandHandler(new AdminEventEngine()); registerAdminCommandHandler(new AdminGmChat()); registerAdminCommandHandler(new AdminEditChar()); registerAdminCommandHandler(new AdminGm()); registerAdminCommandHandler(new AdminTeleport()); registerAdminCommandHandler(new AdminRepairChar()); registerAdminCommandHandler(new AdminChangeAccessLevel()); registerAdminCommandHandler(new AdminBan()); registerAdminCommandHandler(new AdminPolymorph()); registerAdminCommandHandler(new AdminBanChat()); registerAdminCommandHandler(new AdminKick()); registerAdminCommandHandler(new AdminMonsterRace()); registerAdminCommandHandler(new AdminEditNpc()); registerAdminCommandHandler(new AdminFightCalculator()); registerAdminCommandHandler(new AdminMenu()); registerAdminCommandHandler(new AdminSiege()); registerAdminCommandHandler(new AdminFortSiege()); registerAdminCommandHandler(new AdminPathNode()); registerAdminCommandHandler(new AdminPetition()); registerAdminCommandHandler(new AdminPForge()); registerAdminCommandHandler(new AdminBBS()); registerAdminCommandHandler(new AdminEffects()); registerAdminCommandHandler(new AdminDoorControl()); registerAdminCommandHandler(new AdminTest()); registerAdminCommandHandler(new AdminEnchant()); registerAdminCommandHandler(new AdminMobGroup()); registerAdminCommandHandler(new AdminRes()); registerAdminCommandHandler(new AdminMammon()); registerAdminCommandHandler(new AdminUnblockIp()); registerAdminCommandHandler(new AdminPledge()); registerAdminCommandHandler(new AdminRide()); registerAdminCommandHandler(new AdminLogin()); registerAdminCommandHandler(new AdminCache()); registerAdminCommandHandler(new AdminLevel()); registerAdminCommandHandler(new AdminQuest()); registerAdminCommandHandler(new AdminZone()); registerAdminCommandHandler(new AdminCursedWeapons()); registerAdminCommandHandler(new AdminGeodata()); registerAdminCommandHandler(new AdminGeoEditor()); registerAdminCommandHandler(new AdminManor()); registerAdminCommandHandler(new AdminTvTEvent()); _log.config("AdminCommandHandler: Loaded " + _datatable.size() + " handlers."); } public void registerAdminCommandHandler(IAdminCommandHandler handler) { String[] ids = handler.getAdminCommandList(); for (int i = 0; i < ids.length; i++) { if (Config.DEBUG) _log.fine("Adding handler for command "+ids[i]); _datatable.put(ids[i], handler); } } public IAdminCommandHandler getAdminCommandHandler(String adminCommand) { String command = adminCommand; if (adminCommand.indexOf(" ") != -1) { command = adminCommand.substring(0, adminCommand.indexOf(" ")); } if (Config.DEBUG) _log.fine("getting handler for command: "+command+ " -> "+(_datatable.get(command) != null)); return _datatable.get(command); } /** * @return */ public int size() { return _datatable.size(); } }