Package com.l2jfrozen.gameserver.handler.custom

Source Code of com.l2jfrozen.gameserver.handler.custom.CustomBypassHandler

/*
* 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 <http://www.gnu.org/licenses/>.
*/
package com.l2jfrozen.gameserver.handler.custom;

import java.util.Map;
import java.util.logging.Logger;

import javolution.util.FastMap;

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.handler.ICustomByPassHandler;
import com.l2jfrozen.gameserver.idfactory.BitSetIDFactory;
import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance;
import com.l2jfrozen.gameserver.model.entity.L2Rebirth;

/**
* This 'Bypass Handler' is a handy tool indeed!<br>
* Basically, you can send any custom bypass commmands to it from ANY npc and it will call the appropriate function.<br>
* <strong>Example:</strong><br>
* <button value=" Request Rebirth " action="bypass -h custom_rebirth_confirmrequest" width=110 height=36 back="L2UI_ct1.button_df" fore="L2UI_ct1.button_df">
* @author JStar
*/
public class CustomBypassHandler
{
  private static Logger _log = Logger.getLogger(BitSetIDFactory.class.getName());
 
  private static CustomBypassHandler _instance = null;
  private Map<String, ICustomByPassHandler> _handlers;
 
  private CustomBypassHandler()
  {
    _handlers = new FastMap<String, ICustomByPassHandler>();
   
    registerCustomBypassHandler(new ExtractableByPassHandler());
  }
 
  /**
   * Receives the non-static instance of the RebirthManager.
   * @return
   */
  public static CustomBypassHandler getInstance()
  {
    if (_instance == null)
    {
      _instance = new CustomBypassHandler();
    }
   
    return _instance;
  }
 
  /**
   * @param handler as ICustomByPassHandler
   */
  public void registerCustomBypassHandler(ICustomByPassHandler handler)
  {
    for (String s : handler.getByPassCommands())
    {
      _handlers.put(s, handler);
    }
  }
 
  /**
   * Handles player's Bypass request to the Custom Content.
   * @param player
   * @param command
   */
  public void handleBypass(L2PcInstance player, String command)
  {
    // Rebirth Manager and Engine Caller
   
    String cmd = "";
    String params = "";
    int iPos = command.indexOf(" ");
    if (iPos != -1)
    {
      cmd = command.substring(7, iPos);
      params = command.substring(iPos + 1);
    }
    else
    {
      cmd = command.substring(7);
    }
    ICustomByPassHandler ch = _handlers.get(cmd);
    if (ch != null)
    {
      ch.handleCommand(cmd, player, params);
    }
    else
    {
      if (command.startsWith("custom_rebirth"))
      {
        // Check to see if Rebirth is enabled to avoid hacks
        if (!Config.REBIRTH_ENABLE)
        {
          _log.warning("[WARNING] Player " + player.getName() + " is trying to use rebirth system when it's disabled.");
          return;
        }
       
        L2Rebirth.getInstance().handleCommand(player, command);
      }
    }
  }
}
TOP

Related Classes of com.l2jfrozen.gameserver.handler.custom.CustomBypassHandler

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.