/* * 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.usercommandhandlers.ChannelDelete; import net.sf.l2j.gameserver.handler.usercommandhandlers.ChannelLeave; import net.sf.l2j.gameserver.handler.usercommandhandlers.ChannelListUpdate; import net.sf.l2j.gameserver.handler.usercommandhandlers.ClanPenalty; import net.sf.l2j.gameserver.handler.usercommandhandlers.ClanWarsList; import net.sf.l2j.gameserver.handler.usercommandhandlers.DisMount; import net.sf.l2j.gameserver.handler.usercommandhandlers.Escape; import net.sf.l2j.gameserver.handler.usercommandhandlers.InstanceZone; import net.sf.l2j.gameserver.handler.usercommandhandlers.Loc; import net.sf.l2j.gameserver.handler.usercommandhandlers.Mount; import net.sf.l2j.gameserver.handler.usercommandhandlers.OlympiadStat; import net.sf.l2j.gameserver.handler.usercommandhandlers.PartyInfo; import net.sf.l2j.gameserver.handler.usercommandhandlers.Time; /** * This class ... * * @version $Revision: 1.1.2.1.2.5 $ $Date: 2005/03/27 15:30:09 $ */ public class UserCommandHandler { private static Logger _log = Logger.getLogger(UserCommandHandler.class.getName()); private static UserCommandHandler _instance; private Map _datatable; public static UserCommandHandler getInstance() { if (_instance == null) { _instance = new UserCommandHandler(); } return _instance; } private UserCommandHandler() { _datatable = new FastMap(); registerUserCommandHandler(new ClanPenalty()); registerUserCommandHandler(new ClanWarsList()); registerUserCommandHandler(new DisMount()); registerUserCommandHandler(new Escape()); registerUserCommandHandler(new InstanceZone()); registerUserCommandHandler(new Loc()); registerUserCommandHandler(new Mount()); registerUserCommandHandler(new PartyInfo()); registerUserCommandHandler(new Time()); registerUserCommandHandler(new OlympiadStat()); registerUserCommandHandler(new ChannelLeave()); registerUserCommandHandler(new ChannelDelete()); registerUserCommandHandler(new ChannelListUpdate()); _log.config("UserCommandHandler: Loaded " + _datatable.size() + " handlers."); } public void registerUserCommandHandler(IUserCommandHandler handler) { int[] ids = handler.getUserCommandList(); for (int i = 0; i < ids.length; i++) { if (Config.DEBUG) _log.fine("Adding handler for user command "+ids[i]); _datatable.put(new Integer(ids[i]), handler); } } public IUserCommandHandler getUserCommandHandler(int userCommand) { if (Config.DEBUG) _log.fine("getting handler for user command: "+userCommand); return _datatable.get(new Integer(userCommand)); } /** * @return */ public int size() { return _datatable.size(); } }