Package com.l2jfrozen.gameserver.datatables.sql

Source Code of com.l2jfrozen.gameserver.datatables.sql.HelperBuffTable

/*
* 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 2, 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
* 02111-1307, USA.
*
* http://www.gnu.org/copyleft/gpl.html
*/
package com.l2jfrozen.gameserver.datatables.sql;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.List;
import java.util.logging.Logger;

import javolution.util.FastList;

import com.l2jfrozen.gameserver.datatables.csv.HennaTable;
import com.l2jfrozen.gameserver.templates.L2HelperBuff;
import com.l2jfrozen.gameserver.templates.StatsSet;
import com.l2jfrozen.util.CloseUtil;
import com.l2jfrozen.util.database.L2DatabaseFactory;

/**
* This class represents the Newbie Helper Buff list. Author: Ayor
*/

public class HelperBuffTable
{
  private final static Logger _log = Logger.getLogger(HennaTable.class.getName());

  private static HelperBuffTable _instance;

  /** The table containing all Buff of the Newbie Helper */
  public List<L2HelperBuff> _helperBuff;

  private final boolean _initialized = true;

  /**
   * The player level since Newbie Helper can give the fisrt buff <BR>
   * Used to generate message : "Come back here when you have reached level ...")
   */
  private int _magicClassLowestLevel = 100;
  private int _physicClassLowestLevel = 100;

  /**
   * The player level above which Newbie Helper won't give any buff <BR>
   * Used to generate message : "Only novice character of level ... or less can receive my support magic.")
   */
  private int _magicClassHighestLevel = 1;
  private int _physicClassHighestLevel = 1;

  public static HelperBuffTable getInstance()
  {
    if(_instance == null)
    {
      _instance = new HelperBuffTable();
    }

    return _instance;
  }
 
  public static void reload(){
    _instance = null;
    getInstance();
  }

  /**
   * Create and Load the Newbie Helper Buff list from SQL Table helper_buff_list
   */
  private HelperBuffTable()
  {
    _helperBuff = new FastList<L2HelperBuff>();
    restoreHelperBuffData();
  }

  /**
   * Read and Load the Newbie Helper Buff list from SQL Table helper_buff_list
   */
  private void restoreHelperBuffData()
  {
    Connection con = null;
    try
    {
      con = L2DatabaseFactory.getInstance().getConnection(false);
      final PreparedStatement statement = con.prepareStatement("SELECT * FROM helper_buff_list");
      final ResultSet helperbuffdata = statement.executeQuery();

      fillHelperBuffTable(helperbuffdata);
      helperbuffdata.close();
      statement.close();
    }
    catch(Exception e)
    {
      _log.severe("Table helper_buff_list not found: Update your database"+" "+ e);
    }
    finally
    {
      CloseUtil.close(con);
    }

  }

  /**
   * Load the Newbie Helper Buff list from SQL Table helper_buff_list
   * @param HelperBuffData
   * @throws Exception
   */
  private void fillHelperBuffTable(ResultSet HelperBuffData) throws Exception
  {
    while(HelperBuffData.next())
    {
      StatsSet helperBuffDat = new StatsSet();
      int id = HelperBuffData.getInt("id");

      helperBuffDat.set("id", id);
      helperBuffDat.set("skillID", HelperBuffData.getInt("skill_id"));
      helperBuffDat.set("skillLevel", HelperBuffData.getInt("skill_level"));
      helperBuffDat.set("lowerLevel", HelperBuffData.getInt("lower_level"));
      helperBuffDat.set("upperLevel", HelperBuffData.getInt("upper_level"));
      helperBuffDat.set("isMagicClass", HelperBuffData.getString("is_magic_class"));

      // Calulate the range level in wich player must be to obtain buff from Newbie Helper
      if("false".equals(HelperBuffData.getString("is_magic_class")))
      {
        if(HelperBuffData.getInt("lower_level") < _physicClassLowestLevel)
        {
          _physicClassLowestLevel = HelperBuffData.getInt("lower_level");
        }

        if(HelperBuffData.getInt("upper_level") > _physicClassHighestLevel)
        {
          _physicClassHighestLevel = HelperBuffData.getInt("upper_level");
        }
      }
      else
      {
        if(HelperBuffData.getInt("lower_level") < _magicClassLowestLevel)
        {
          _magicClassLowestLevel = HelperBuffData.getInt("lower_level");
        }

        if(HelperBuffData.getInt("upper_level") > _magicClassHighestLevel)
        {
          _magicClassHighestLevel = HelperBuffData.getInt("upper_level");
        }
      }

      // Add this Helper Buff to the Helper Buff List
      L2HelperBuff template = new L2HelperBuff(helperBuffDat);
      _helperBuff.add(template);
    }

    _log.finest("Helper Buff Table: Loaded {} Templates."+" "+ _helperBuff.size());

  }

  public boolean isInitialized()
  {
    return _initialized;
  }

  public L2HelperBuff getHelperBuffTableItem(int id)
  {
    return _helperBuff.get(id);
  }

  /**
   * @return the Helper Buff List
   */
  public List<L2HelperBuff> getHelperBuffTable()
  {
    return _helperBuff;
  }

  /**
   * @return Returns the magicClassHighestLevel.
   */
  public int getMagicClassHighestLevel()
  {
    return _magicClassHighestLevel;
  }

  /**
   * @param magicClassHighestLevel The magicClassHighestLevel to set.
   */
  public void setMagicClassHighestLevel(int magicClassHighestLevel)
  {
    _magicClassHighestLevel = magicClassHighestLevel;
  }

  /**
   * @return Returns the magicClassLowestLevel.
   */
  public int getMagicClassLowestLevel()
  {
    return _magicClassLowestLevel;
  }

  /**
   * @param magicClassLowestLevel The magicClassLowestLevel to set.
   */
  public void setMagicClassLowestLevel(int magicClassLowestLevel)
  {
    _magicClassLowestLevel = magicClassLowestLevel;
  }

  /**
   * @return Returns the physicClassHighestLevel.
   */
  public int getPhysicClassHighestLevel()
  {
    return _physicClassHighestLevel;
  }

  /**
   * @param physicClassHighestLevel The physicClassHighestLevel to set.
   */
  public void setPhysicClassHighestLevel(int physicClassHighestLevel)
  {
    _physicClassHighestLevel = physicClassHighestLevel;
  }

  /**
   * @return Returns the physicClassLowestLevel.
   */
  public int getPhysicClassLowestLevel()
  {
    return _physicClassLowestLevel;
  }

  /**
   * @param physicClassLowestLevel The physicClassLowestLevel to set.
   */
  public void setPhysicClassLowestLevel(int physicClassLowestLevel)
  {
    _physicClassLowestLevel = physicClassLowestLevel;
  }

}
TOP

Related Classes of com.l2jfrozen.gameserver.datatables.sql.HelperBuffTable

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.