/* * 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 net.sf.l2j.gameserver;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.util.HashMap;import java.util.logging.Logger;import net.sf.l2j.Config;import net.sf.l2j.L2DatabaseFactory;import net.sf.l2j.gameserver.idfactory.IdFactory;import net.sf.l2j.gameserver.model.L2Alliance;import net.sf.l2j.gameserver.model.L2PcInstance;/** * This class ... * * @version $Revision: 1.11.2.5.2.5 $ $Date: 2005/03/27 15:29:18 $ */public class AllianceTable{ private static Logger _log = Logger.getLogger(AllianceTable.class.getName()); private static AllianceTable _instance; private HashMap<Integer, L2Alliance> _alliances; public static AllianceTable getInstance() { if (_instance == null) { _instance = new AllianceTable(); } return _instance; } private AllianceTable() { _alliances = new HashMap<Integer, L2Alliance>(); } /** * @param allyId * @return */ public L2Alliance getAlliance(int allyId) { L2Alliance alliance = _alliances.get(new Integer(allyId)); if (alliance == null) { alliance = new L2Alliance(allyId); if (alliance != null) { _alliances.put(alliance.getAllianceId(), alliance); } } return alliance; } /** * @param player * @return NULL if alliance with same name already exists */ public L2Alliance createAlliance(L2PcInstance player, String allianceName) { java.sql.Connection con = null; boolean allianceExists = true; L2Alliance alliance = null; try//store the new alliance in db { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT ally_id FROM alliance_data WHERE ally_name=?"); statement.setString(1, allianceName); ResultSet result = statement.executeQuery(); allianceExists = result.next(); result.close(); statement.close(); } catch (Exception e) { _log.warning("Error while saving new alliance to db "+e); } finally { try { con.close(); } catch (Exception e) {} } if (!allianceExists) { // no alliance with same name exists alliance = new L2Alliance(IdFactory.getInstance().getNextId(), allianceName, player.getClan()); alliance.store(); player.setAlliance(alliance); if (Config.DEBUG) _log.fine("New alliances created: "+alliance.getAllianceId() + " " +alliance.getName()); _alliances.put(new Integer(alliance.getAllianceId()), alliance); } return alliance; }}