/*
* 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();
}
}