package net.sf.l2j.gameserver.model; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.HashMap; import java.util.logging.Logger; import net.sf.l2j.L2DatabaseFactory; public class L2AgitInstance { private static L2AgitInstance _instance; private static HashMap _agitData; private static Logger _log = Logger.getLogger(L2AgitInstance.class.getName()); public static L2AgitInstance getInstance() { if(_instance == null) _instance = new L2AgitInstance(); return _instance; } private L2AgitInstance() { _agitData = new HashMap(); restore(); _log.info("L2AgitInstance: loaded "+_agitData.size()+" agit objects"); } private void restore() { java.sql.Connection con = null; try { con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT id,name,owner_id,zone_id,owner_respawnx,owner_respawny,owner_respawnz FROM agit_data"); ResultSet rset = statement.executeQuery(); while(rset.next()) { try { AgitData agit = new AgitData(rset.getInt("id"), rset.getString("name"), rset.getInt("owner_id"), rset.getInt("zone_id")); agit.setRespawn(rset.getInt("owner_respawnx"), rset.getInt("owner_respawny"), rset.getInt("owner_respawnz")); _agitData.put(agit.getId(),agit); } catch(Exception e) { _log.warning("Error restoring agit data: "+e); } } statement.close(); con.close(); } catch (Exception e) { _log.warning("Error while dissolving clan by GM Command: "+e); } finally { try { con.close(); } catch (Exception e) {} } } public void setAgitOwner(int agitId, int newOwner) { AgitData agit = _agitData.get(agitId); if(agit == null) { _log.warning("No agit with id "+agitId); return; } agit.setOwnerId(newOwner); _agitData.put(agitId,agit); } public int[] getAgitRespawn(int agitId) { return _agitData.get(agitId).getRespawn(); } private class AgitData { public AgitData(int id,String name, int pledgeId, int zone) { _name = name; _id = id; _pledgeId = pledgeId; _zone = zone; } public void setRespawn(int x, int y, int z) { _respawn = new int[3]; _respawn[0] = x; _respawn[1] = y; _respawn[2] = z; } public int[] getRespawn() { return _respawn; } public String getName() { return _name; } public int getId() { return _id; } public int getOwnerId() { return _pledgeId; } public void setOwnerId(int newOwner) { _pledgeId = newOwner; } private String _name; private int _id; private int _pledgeId; private long _nextAuction; private long _bid; private int _zone; private int _respawn[]; } }