Sync with L2jServer HighFive Mar 25th 2015.
This commit is contained in:
@ -18,8 +18,8 @@
|
||||
*/
|
||||
package com.l2jserver.gameserver.instancemanager;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
@ -32,7 +32,7 @@ import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
|
||||
|
||||
public class BoatManager
|
||||
{
|
||||
private final Map<Integer, L2BoatInstance> _boats = new HashMap<>();
|
||||
private final Map<Integer, L2BoatInstance> _boats = new ConcurrentHashMap<>();
|
||||
private final boolean[] _docksBusy = new boolean[3];
|
||||
|
||||
public static final int TALKING_ISLAND = 1;
|
||||
@ -103,11 +103,12 @@ public class BoatManager
|
||||
npcDat.set("basePDef", 100);
|
||||
npcDat.set("baseMDef", 100);
|
||||
|
||||
L2BoatInstance boat = new L2BoatInstance(new L2CharTemplate(npcDat));
|
||||
_boats.put(boat.getObjectId(), boat);
|
||||
final L2BoatInstance boat = new L2BoatInstance(new L2CharTemplate(npcDat));
|
||||
boat.setHeading(heading);
|
||||
boat.setXYZInvisible(x, y, z);
|
||||
boat.spawnMe();
|
||||
|
||||
_boats.put(boat.getObjectId(), boat);
|
||||
return boat;
|
||||
}
|
||||
|
||||
|
@ -45,7 +45,7 @@ public final class CHSiegeManager
|
||||
private static final Logger _log = Logger.getLogger(CHSiegeManager.class.getName());
|
||||
private static final String SQL_LOAD_HALLS = "SELECT * FROM siegable_clanhall";
|
||||
|
||||
private final HashMap<Integer, SiegableHall> _siegableHalls = new HashMap<>();
|
||||
private final Map<Integer, SiegableHall> _siegableHalls = new HashMap<>();
|
||||
|
||||
protected CHSiegeManager()
|
||||
{
|
||||
@ -86,7 +86,7 @@ public final class CHSiegeManager
|
||||
}
|
||||
}
|
||||
|
||||
public HashMap<Integer, SiegableHall> getConquerableHalls()
|
||||
public Map<Integer, SiegableHall> getConquerableHalls()
|
||||
{
|
||||
return _siegableHalls;
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ public final class CastleManager implements InstanceListManager
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(CastleManager.class.getName());
|
||||
|
||||
private List<Castle> _castles;
|
||||
private final List<Castle> _castles = new ArrayList<>();
|
||||
|
||||
private final Map<Integer, Long> _castleSiegeDate = new ConcurrentHashMap<>();
|
||||
|
||||
@ -72,9 +72,9 @@ public final class CastleManager implements InstanceListManager
|
||||
{
|
||||
double distance;
|
||||
Castle castle;
|
||||
for (int i = 0; i < getCastles().size(); i++)
|
||||
for (int i = 0; i < _castles.size(); i++)
|
||||
{
|
||||
castle = getCastles().get(i);
|
||||
castle = _castles.get(i);
|
||||
if (castle == null)
|
||||
{
|
||||
continue;
|
||||
@ -92,7 +92,7 @@ public final class CastleManager implements InstanceListManager
|
||||
|
||||
public final Castle getCastleById(int castleId)
|
||||
{
|
||||
for (Castle temp : getCastles())
|
||||
for (Castle temp : _castles)
|
||||
{
|
||||
if (temp.getResidenceId() == castleId)
|
||||
{
|
||||
@ -104,7 +104,7 @@ public final class CastleManager implements InstanceListManager
|
||||
|
||||
public final Castle getCastleByOwner(L2Clan clan)
|
||||
{
|
||||
for (Castle temp : getCastles())
|
||||
for (Castle temp : _castles)
|
||||
{
|
||||
if (temp.getOwnerId() == clan.getId())
|
||||
{
|
||||
@ -116,7 +116,7 @@ public final class CastleManager implements InstanceListManager
|
||||
|
||||
public final Castle getCastle(String name)
|
||||
{
|
||||
for (Castle temp : getCastles())
|
||||
for (Castle temp : _castles)
|
||||
{
|
||||
if (temp.getName().equalsIgnoreCase(name.trim()))
|
||||
{
|
||||
@ -128,7 +128,7 @@ public final class CastleManager implements InstanceListManager
|
||||
|
||||
public final Castle getCastle(int x, int y, int z)
|
||||
{
|
||||
for (Castle temp : getCastles())
|
||||
for (Castle temp : _castles)
|
||||
{
|
||||
if (temp.checkIfInZone(x, y, z))
|
||||
{
|
||||
@ -146,9 +146,9 @@ public final class CastleManager implements InstanceListManager
|
||||
public final int getCastleIndex(int castleId)
|
||||
{
|
||||
Castle castle;
|
||||
for (int i = 0; i < getCastles().size(); i++)
|
||||
for (int i = 0; i < _castles.size(); i++)
|
||||
{
|
||||
castle = getCastles().get(i);
|
||||
castle = _castles.get(i);
|
||||
if ((castle != null) && (castle.getResidenceId() == castleId))
|
||||
{
|
||||
return i;
|
||||
@ -165,9 +165,9 @@ public final class CastleManager implements InstanceListManager
|
||||
public final int getCastleIndex(int x, int y, int z)
|
||||
{
|
||||
Castle castle;
|
||||
for (int i = 0; i < getCastles().size(); i++)
|
||||
for (int i = 0; i < _castles.size(); i++)
|
||||
{
|
||||
castle = getCastles().get(i);
|
||||
castle = _castles.get(i);
|
||||
if ((castle != null) && castle.checkIfInZone(x, y, z))
|
||||
{
|
||||
return i;
|
||||
@ -178,17 +178,13 @@ public final class CastleManager implements InstanceListManager
|
||||
|
||||
public final List<Castle> getCastles()
|
||||
{
|
||||
if (_castles == null)
|
||||
{
|
||||
_castles = new ArrayList<>();
|
||||
}
|
||||
return _castles;
|
||||
}
|
||||
|
||||
public boolean hasOwnedCastle()
|
||||
{
|
||||
boolean hasOwnedCastle = false;
|
||||
for (Castle castle : getCastles())
|
||||
for (Castle castle : _castles)
|
||||
{
|
||||
if (castle.getOwnerId() > 0)
|
||||
{
|
||||
@ -279,9 +275,9 @@ public final class CastleManager implements InstanceListManager
|
||||
{
|
||||
while (rs.next())
|
||||
{
|
||||
getCastles().add(new Castle(rs.getInt("id")));
|
||||
_castles.add(new Castle(rs.getInt("id")));
|
||||
}
|
||||
_log.info(getClass().getSimpleName() + ": Loaded: " + getCastles().size() + " castles");
|
||||
_log.info(getClass().getSimpleName() + ": Loaded: " + _castles.size() + " castles");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
|
@ -40,7 +40,6 @@ import org.w3c.dom.Node;
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.data.xml.IXmlReader;
|
||||
import com.l2jserver.gameserver.enums.ManorMode;
|
||||
import com.l2jserver.gameserver.model.CropProcure;
|
||||
import com.l2jserver.gameserver.model.L2Clan;
|
||||
@ -53,6 +52,7 @@ import com.l2jserver.gameserver.model.interfaces.IStorable;
|
||||
import com.l2jserver.gameserver.model.itemcontainer.ItemContainer;
|
||||
import com.l2jserver.gameserver.network.SystemMessageId;
|
||||
import com.l2jserver.util.Rnd;
|
||||
import com.l2jserver.util.data.xml.IXmlReader;
|
||||
|
||||
/**
|
||||
* Castle manor system.
|
||||
|
@ -23,6 +23,7 @@ import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -44,9 +45,9 @@ public final class ClanHallManager
|
||||
{
|
||||
protected static final Logger _log = Logger.getLogger(ClanHallManager.class.getName());
|
||||
|
||||
private final Map<Integer, AuctionableHall> _clanHall;
|
||||
private final Map<Integer, AuctionableHall> _freeClanHall;
|
||||
private final Map<Integer, AuctionableHall> _allAuctionableClanHalls;
|
||||
private final Map<Integer, AuctionableHall> _clanHall = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, AuctionableHall> _freeClanHall = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, AuctionableHall> _allAuctionableClanHalls = new HashMap<>();
|
||||
private static Map<Integer, ClanHall> _allClanHalls = new HashMap<>();
|
||||
private boolean _loaded = false;
|
||||
|
||||
@ -57,9 +58,6 @@ public final class ClanHallManager
|
||||
|
||||
protected ClanHallManager()
|
||||
{
|
||||
_clanHall = new HashMap<>();
|
||||
_freeClanHall = new HashMap<>();
|
||||
_allAuctionableClanHalls = new HashMap<>();
|
||||
load();
|
||||
}
|
||||
|
||||
@ -216,7 +214,7 @@ public final class ClanHallManager
|
||||
*/
|
||||
public final ClanHall getClanHall(int x, int y, int z)
|
||||
{
|
||||
for (ClanHall temp : getAllClanHalls().values())
|
||||
for (ClanHall temp : _allClanHalls.values())
|
||||
{
|
||||
if (temp.checkIfInZone(x, y, z))
|
||||
{
|
||||
@ -313,4 +311,4 @@ public final class ClanHallManager
|
||||
{
|
||||
protected static final ClanHallManager _instance = new ClanHallManager();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -21,7 +21,8 @@ package com.l2jserver.gameserver.instancemanager;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -37,7 +38,7 @@ public final class CoupleManager
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(CoupleManager.class.getName());
|
||||
|
||||
private ArrayList<Couple> _couples;
|
||||
private final List<Couple> _couples = new CopyOnWriteArrayList<>();
|
||||
|
||||
protected CoupleManager()
|
||||
{
|
||||
@ -46,7 +47,7 @@ public final class CoupleManager
|
||||
|
||||
public void reload()
|
||||
{
|
||||
getCouples().clear();
|
||||
_couples.clear();
|
||||
load();
|
||||
}
|
||||
|
||||
@ -84,15 +85,15 @@ public final class CoupleManager
|
||||
{
|
||||
if ((player1.getPartnerId() == 0) && (player2.getPartnerId() == 0))
|
||||
{
|
||||
int _player1id = player1.getObjectId();
|
||||
int _player2id = player2.getObjectId();
|
||||
int player1id = player1.getObjectId();
|
||||
int player2id = player2.getObjectId();
|
||||
|
||||
Couple _new = new Couple(player1, player2);
|
||||
getCouples().add(_new);
|
||||
player1.setPartnerId(_player2id);
|
||||
player2.setPartnerId(_player1id);
|
||||
player1.setCoupleId(_new.getId());
|
||||
player2.setCoupleId(_new.getId());
|
||||
Couple couple = new Couple(player1, player2);
|
||||
getCouples().add(couple);
|
||||
player1.setPartnerId(player2id);
|
||||
player2.setPartnerId(player1id);
|
||||
player1.setCoupleId(couple.getId());
|
||||
player2.setCoupleId(couple.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -138,12 +139,8 @@ public final class CoupleManager
|
||||
return -1;
|
||||
}
|
||||
|
||||
public final ArrayList<Couple> getCouples()
|
||||
public final List<Couple> getCouples()
|
||||
{
|
||||
if (_couples == null)
|
||||
{
|
||||
_couples = new ArrayList<>();
|
||||
}
|
||||
return _couples;
|
||||
}
|
||||
|
||||
|
@ -19,9 +19,9 @@
|
||||
package com.l2jserver.gameserver.instancemanager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -38,9 +38,9 @@ public final class DayNightSpawnManager
|
||||
|
||||
private static Logger _log = Logger.getLogger(DayNightSpawnManager.class.getName());
|
||||
|
||||
private final List<L2Spawn> _dayCreatures;
|
||||
private final List<L2Spawn> _nightCreatures;
|
||||
private final Map<L2Spawn, L2RaidBossInstance> _bosses;
|
||||
private final List<L2Spawn> _dayCreatures = new ArrayList<>();
|
||||
private final List<L2Spawn> _nightCreatures = new ArrayList<>();
|
||||
private final Map<L2Spawn, L2RaidBossInstance> _bosses = new ConcurrentHashMap<>();
|
||||
|
||||
// private static int _currentState; // 0 = Day, 1 = Night
|
||||
|
||||
@ -51,9 +51,7 @@ public final class DayNightSpawnManager
|
||||
|
||||
protected DayNightSpawnManager()
|
||||
{
|
||||
_dayCreatures = new ArrayList<>();
|
||||
_nightCreatures = new ArrayList<>();
|
||||
_bosses = new HashMap<>();
|
||||
// Prevent external initialization.
|
||||
}
|
||||
|
||||
public void addDayCreature(L2Spawn spawnDat)
|
||||
@ -202,7 +200,6 @@ public final class DayNightSpawnManager
|
||||
{
|
||||
boss = (L2RaidBossInstance) spawn.doSpawn();
|
||||
RaidBossSpawnManager.getInstance().notifySpawnNightBoss(boss);
|
||||
_bosses.remove(spawn);
|
||||
_bosses.put(spawn, boss);
|
||||
continue;
|
||||
}
|
||||
@ -257,8 +254,6 @@ public final class DayNightSpawnManager
|
||||
|
||||
return raidboss;
|
||||
}
|
||||
|
||||
_bosses.put(spawnDat, null);
|
||||
return null;
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@ public final class FortManager implements InstanceListManager
|
||||
{
|
||||
protected static final Logger _log = Logger.getLogger(FortManager.class.getName());
|
||||
|
||||
private List<Fort> _forts;
|
||||
private final List<Fort> _forts = new ArrayList<>();
|
||||
|
||||
public final int findNearestFortIndex(L2Object obj)
|
||||
{
|
||||
@ -50,9 +50,9 @@ public final class FortManager implements InstanceListManager
|
||||
{
|
||||
double distance;
|
||||
Fort fort;
|
||||
for (int i = 0; i < getForts().size(); i++)
|
||||
for (int i = 0; i < _forts.size(); i++)
|
||||
{
|
||||
fort = getForts().get(i);
|
||||
fort = _forts.get(i);
|
||||
if (fort == null)
|
||||
{
|
||||
continue;
|
||||
@ -70,7 +70,7 @@ public final class FortManager implements InstanceListManager
|
||||
|
||||
public final Fort getFortById(int fortId)
|
||||
{
|
||||
for (Fort f : getForts())
|
||||
for (Fort f : _forts)
|
||||
{
|
||||
if (f.getResidenceId() == fortId)
|
||||
{
|
||||
@ -82,7 +82,7 @@ public final class FortManager implements InstanceListManager
|
||||
|
||||
public final Fort getFortByOwner(L2Clan clan)
|
||||
{
|
||||
for (Fort f : getForts())
|
||||
for (Fort f : _forts)
|
||||
{
|
||||
if (f.getOwnerClan() == clan)
|
||||
{
|
||||
@ -94,7 +94,7 @@ public final class FortManager implements InstanceListManager
|
||||
|
||||
public final Fort getFort(String name)
|
||||
{
|
||||
for (Fort f : getForts())
|
||||
for (Fort f : _forts)
|
||||
{
|
||||
if (f.getName().equalsIgnoreCase(name.trim()))
|
||||
{
|
||||
@ -106,7 +106,7 @@ public final class FortManager implements InstanceListManager
|
||||
|
||||
public final Fort getFort(int x, int y, int z)
|
||||
{
|
||||
for (Fort f : getForts())
|
||||
for (Fort f : _forts)
|
||||
{
|
||||
if (f.checkIfInZone(x, y, z))
|
||||
{
|
||||
@ -124,9 +124,9 @@ public final class FortManager implements InstanceListManager
|
||||
public final int getFortIndex(int fortId)
|
||||
{
|
||||
Fort fort;
|
||||
for (int i = 0; i < getForts().size(); i++)
|
||||
for (int i = 0; i < _forts.size(); i++)
|
||||
{
|
||||
fort = getForts().get(i);
|
||||
fort = _forts.get(i);
|
||||
if ((fort != null) && (fort.getResidenceId() == fortId))
|
||||
{
|
||||
return i;
|
||||
@ -143,9 +143,9 @@ public final class FortManager implements InstanceListManager
|
||||
public final int getFortIndex(int x, int y, int z)
|
||||
{
|
||||
Fort fort;
|
||||
for (int i = 0; i < getForts().size(); i++)
|
||||
for (int i = 0; i < _forts.size(); i++)
|
||||
{
|
||||
fort = getForts().get(i);
|
||||
fort = _forts.get(i);
|
||||
if ((fort != null) && fort.checkIfInZone(x, y, z))
|
||||
{
|
||||
return i;
|
||||
@ -156,10 +156,6 @@ public final class FortManager implements InstanceListManager
|
||||
|
||||
public final List<Fort> getForts()
|
||||
{
|
||||
if (_forts == null)
|
||||
{
|
||||
_forts = new ArrayList<>();
|
||||
}
|
||||
return _forts;
|
||||
}
|
||||
|
||||
@ -172,11 +168,11 @@ public final class FortManager implements InstanceListManager
|
||||
{
|
||||
while (rs.next())
|
||||
{
|
||||
getForts().add(new Fort(rs.getInt("id")));
|
||||
_forts.add(new Fort(rs.getInt("id")));
|
||||
}
|
||||
|
||||
_log.info(getClass().getSimpleName() + ": Loaded: " + getForts().size() + " fortress");
|
||||
for (Fort fort : getForts())
|
||||
_log.info(getClass().getSimpleName() + ": Loaded: " + _forts.size() + " fortress");
|
||||
for (Fort fort : _forts)
|
||||
{
|
||||
fort.getSiege().getSiegeGuardManager().loadSiegeGuard();
|
||||
}
|
||||
|
@ -23,6 +23,8 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -35,7 +37,7 @@ public final class FortSiegeGuardManager
|
||||
private static final Logger _log = Logger.getLogger(FortSiegeGuardManager.class.getName());
|
||||
|
||||
private final Fort _fort;
|
||||
private final HashMap<Integer, ArrayList<L2Spawn>> _siegeGuards = new HashMap<>();
|
||||
private final Map<Integer, List<L2Spawn>> _siegeGuards = new HashMap<>();
|
||||
|
||||
public FortSiegeGuardManager(Fort fort)
|
||||
{
|
||||
@ -49,7 +51,7 @@ public final class FortSiegeGuardManager
|
||||
{
|
||||
try
|
||||
{
|
||||
final ArrayList<L2Spawn> monsterList = getSiegeGuardSpawn().get(getFort().getResidenceId());
|
||||
final List<L2Spawn> monsterList = _siegeGuards.get(getFort().getResidenceId());
|
||||
if (monsterList != null)
|
||||
{
|
||||
for (L2Spawn spawnDat : monsterList)
|
||||
@ -79,8 +81,7 @@ public final class FortSiegeGuardManager
|
||||
{
|
||||
try
|
||||
{
|
||||
final ArrayList<L2Spawn> monsterList = getSiegeGuardSpawn().get(getFort().getResidenceId());
|
||||
|
||||
final List<L2Spawn> monsterList = _siegeGuards.get(getFort().getResidenceId());
|
||||
if (monsterList != null)
|
||||
{
|
||||
for (L2Spawn spawnDat : monsterList)
|
||||
@ -112,7 +113,7 @@ public final class FortSiegeGuardManager
|
||||
ps.setInt(1, fortId);
|
||||
try (ResultSet rs = ps.executeQuery())
|
||||
{
|
||||
ArrayList<L2Spawn> siegeGuardSpawns = new ArrayList<>();
|
||||
final List<L2Spawn> siegeGuardSpawns = new ArrayList<>();
|
||||
while (rs.next())
|
||||
{
|
||||
final L2Spawn spawn = new L2Spawn(rs.getInt("npcId"));
|
||||
@ -140,7 +141,7 @@ public final class FortSiegeGuardManager
|
||||
return _fort;
|
||||
}
|
||||
|
||||
public final HashMap<Integer, ArrayList<L2Spawn>> getSiegeGuardSpawn()
|
||||
public final Map<Integer, List<L2Spawn>> getSiegeGuardSpawn()
|
||||
{
|
||||
return _siegeGuards;
|
||||
}
|
||||
|
@ -25,10 +25,11 @@ import java.sql.Connection;
|
||||
import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
import java.util.StringTokenizer;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -53,15 +54,15 @@ public final class FortSiegeManager
|
||||
private int _attackerMaxClans = 500; // Max number of clans
|
||||
|
||||
// Fort Siege settings
|
||||
private HashMap<Integer, ArrayList<FortSiegeSpawn>> _commanderSpawnList;
|
||||
private HashMap<Integer, ArrayList<CombatFlag>> _flagList;
|
||||
private Map<Integer, List<FortSiegeSpawn>> _commanderSpawnList;
|
||||
private Map<Integer, List<CombatFlag>> _flagList;
|
||||
private boolean _justToTerritory = true; // Changeable in fortsiege.properties
|
||||
private int _flagMaxCount = 1; // Changeable in fortsiege.properties
|
||||
private int _siegeClanMinLevel = 4; // Changeable in fortsiege.properties
|
||||
private int _siegeLength = 60; // Time in minute. Changeable in fortsiege.properties
|
||||
private int _countDownLength = 10; // Time in minute. Changeable in fortsiege.properties
|
||||
private int _suspiciousMerchantRespawnDelay = 180; // Time in minute. Changeable in fortsiege.properties
|
||||
private List<FortSiege> _sieges;
|
||||
private final List<FortSiege> _sieges = new ArrayList<>();
|
||||
|
||||
protected FortSiegeManager()
|
||||
{
|
||||
@ -137,13 +138,13 @@ public final class FortSiegeManager
|
||||
_suspiciousMerchantRespawnDelay = Integer.decode(siegeSettings.getProperty("SuspiciousMerchantRespawnDelay", "180"));
|
||||
|
||||
// Siege spawns settings
|
||||
_commanderSpawnList = new HashMap<>();
|
||||
_flagList = new HashMap<>();
|
||||
_commanderSpawnList = new ConcurrentHashMap<>();
|
||||
_flagList = new ConcurrentHashMap<>();
|
||||
|
||||
for (Fort fort : FortManager.getInstance().getForts())
|
||||
{
|
||||
ArrayList<FortSiegeSpawn> _commanderSpawns = new ArrayList<>();
|
||||
ArrayList<CombatFlag> _flagSpawns = new ArrayList<>();
|
||||
List<FortSiegeSpawn> commanderSpawns = new ArrayList<>();
|
||||
List<CombatFlag> flagSpawns = new ArrayList<>();
|
||||
for (int i = 1; i < 5; i++)
|
||||
{
|
||||
final String _spawnParams = siegeSettings.getProperty(fort.getName().replace(" ", "") + "Commander" + i, "");
|
||||
@ -161,7 +162,7 @@ public final class FortSiegeManager
|
||||
int heading = Integer.parseInt(st.nextToken());
|
||||
int npc_id = Integer.parseInt(st.nextToken());
|
||||
|
||||
_commanderSpawns.add(new FortSiegeSpawn(fort.getResidenceId(), x, y, z, heading, npc_id, i));
|
||||
commanderSpawns.add(new FortSiegeSpawn(fort.getResidenceId(), x, y, z, heading, npc_id, i));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@ -169,7 +170,7 @@ public final class FortSiegeManager
|
||||
}
|
||||
}
|
||||
|
||||
_commanderSpawnList.put(fort.getResidenceId(), _commanderSpawns);
|
||||
_commanderSpawnList.put(fort.getResidenceId(), commanderSpawns);
|
||||
|
||||
for (int i = 1; i < 4; i++)
|
||||
{
|
||||
@ -187,33 +188,25 @@ public final class FortSiegeManager
|
||||
int z = Integer.parseInt(st.nextToken());
|
||||
int flag_id = Integer.parseInt(st.nextToken());
|
||||
|
||||
_flagSpawns.add(new CombatFlag(fort.getResidenceId(), x, y, z, 0, flag_id));
|
||||
flagSpawns.add(new CombatFlag(fort.getResidenceId(), x, y, z, 0, flag_id));
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_log.warning("Error while loading flag(s) for " + fort.getName() + " fort.");
|
||||
}
|
||||
}
|
||||
_flagList.put(fort.getResidenceId(), _flagSpawns);
|
||||
_flagList.put(fort.getResidenceId(), flagSpawns);
|
||||
}
|
||||
}
|
||||
|
||||
public final ArrayList<FortSiegeSpawn> getCommanderSpawnList(int _fortId)
|
||||
public final List<FortSiegeSpawn> getCommanderSpawnList(int _fortId)
|
||||
{
|
||||
if (_commanderSpawnList.containsKey(_fortId))
|
||||
{
|
||||
return _commanderSpawnList.get(_fortId);
|
||||
}
|
||||
return null;
|
||||
return _commanderSpawnList.get(_fortId);
|
||||
}
|
||||
|
||||
public final ArrayList<CombatFlag> getFlagList(int _fortId)
|
||||
public final List<CombatFlag> getFlagList(int _fortId)
|
||||
{
|
||||
if (_flagList.containsKey(_fortId))
|
||||
{
|
||||
return _flagList.get(_fortId);
|
||||
}
|
||||
return null;
|
||||
return _flagList.get(_fortId);
|
||||
}
|
||||
|
||||
public final int getAttackerMaxClans()
|
||||
@ -270,19 +263,11 @@ public final class FortSiegeManager
|
||||
|
||||
public final List<FortSiege> getSieges()
|
||||
{
|
||||
if (_sieges == null)
|
||||
{
|
||||
_sieges = new ArrayList<>();
|
||||
}
|
||||
return _sieges;
|
||||
}
|
||||
|
||||
public final void addSiege(FortSiege fortSiege)
|
||||
{
|
||||
if (_sieges == null)
|
||||
{
|
||||
_sieges = new ArrayList<>();
|
||||
}
|
||||
_sieges.add(fortSiege);
|
||||
}
|
||||
|
||||
@ -300,7 +285,7 @@ public final class FortSiegeManager
|
||||
|
||||
final Fort fort = FortManager.getInstance().getFort(player);
|
||||
|
||||
final ArrayList<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
|
||||
final List<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
|
||||
for (CombatFlag cf : fcf)
|
||||
{
|
||||
if (cf.getCombatFlagInstance() == item)
|
||||
@ -347,9 +332,7 @@ public final class FortSiegeManager
|
||||
public void dropCombatFlag(L2PcInstance player, int fortId)
|
||||
{
|
||||
final Fort fort = FortManager.getInstance().getFortById(fortId);
|
||||
|
||||
final ArrayList<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
|
||||
|
||||
final List<CombatFlag> fcf = _flagList.get(fort.getResidenceId());
|
||||
for (CombatFlag cf : fcf)
|
||||
{
|
||||
if (cf.getPlayerObjectId() == player.getObjectId())
|
||||
|
@ -24,10 +24,12 @@ import java.sql.ResultSet;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -120,9 +122,9 @@ public final class FourSepulchersManager
|
||||
};
|
||||
// @formatter:on
|
||||
|
||||
protected Map<Integer, Boolean> _archonSpawned = new HashMap<>();
|
||||
protected Map<Integer, Boolean> _hallInUse = new HashMap<>();
|
||||
protected Map<Integer, L2PcInstance> _challengers = new HashMap<>();
|
||||
protected Map<Integer, Boolean> _archonSpawned = new ConcurrentHashMap<>();
|
||||
protected Map<Integer, Boolean> _hallInUse = new ConcurrentHashMap<>();
|
||||
protected Map<Integer, L2PcInstance> _challengers = new ConcurrentHashMap<>();
|
||||
protected Map<Integer, int[]> _startHallSpawns = new HashMap<>();
|
||||
protected Map<Integer, Integer> _hallGateKeepers = new HashMap<>();
|
||||
protected Map<Integer, Integer> _keyBoxNpc = new HashMap<>();
|
||||
@ -143,7 +145,7 @@ public final class FourSepulchersManager
|
||||
protected List<L2Spawn> _managers;
|
||||
protected List<L2Spawn> _dukeFinalSpawns;
|
||||
protected List<L2Spawn> _emperorsGraveSpawns;
|
||||
protected List<L2Npc> _allMobs = new ArrayList<>();
|
||||
protected List<L2Npc> _allMobs = new CopyOnWriteArrayList<>();
|
||||
|
||||
private long _attackTimeEnd = 0;
|
||||
private long _coolDownTimeEnd = 0;
|
||||
@ -260,19 +262,15 @@ public final class FourSepulchersManager
|
||||
_hallInUse.put(31923, false);
|
||||
_hallInUse.put(31924, false);
|
||||
|
||||
if (_archonSpawned.size() != 0)
|
||||
for (int npcId : _archonSpawned.keySet())
|
||||
{
|
||||
Set<Integer> npcIdSet = _archonSpawned.keySet();
|
||||
for (int npcId : npcIdSet)
|
||||
{
|
||||
_archonSpawned.put(npcId, false);
|
||||
}
|
||||
_archonSpawned.put(npcId, false);
|
||||
}
|
||||
}
|
||||
|
||||
protected void spawnManagers()
|
||||
{
|
||||
_managers = new ArrayList<>();
|
||||
_managers = new CopyOnWriteArrayList<>();
|
||||
|
||||
for (int npcId = 31921; npcId <= 31924; npcId++)
|
||||
{
|
||||
@ -972,7 +970,7 @@ public final class FourSepulchersManager
|
||||
|
||||
if (Config.FS_PARTY_MEMBER_COUNT > 1)
|
||||
{
|
||||
List<L2PcInstance> members = new ArrayList<>();
|
||||
final List<L2PcInstance> members = new LinkedList<>();
|
||||
for (L2PcInstance mem : player.getParty().getMembers())
|
||||
{
|
||||
if (!mem.isDead() && Util.checkIfInRange(700, player, mem, true))
|
||||
@ -1006,7 +1004,7 @@ public final class FourSepulchersManager
|
||||
}
|
||||
if ((Config.FS_PARTY_MEMBER_COUNT <= 1) && player.isInParty())
|
||||
{
|
||||
List<L2PcInstance> members = new ArrayList<>();
|
||||
final List<L2PcInstance> members = new LinkedList<>();
|
||||
for (L2PcInstance mem : player.getParty().getMembers())
|
||||
{
|
||||
if (!mem.isDead() && Util.checkIfInRange(700, player, mem, true))
|
||||
@ -1084,9 +1082,8 @@ public final class FourSepulchersManager
|
||||
return;
|
||||
}
|
||||
|
||||
List<L2Spawn> monsterList;
|
||||
List<L2SepulcherMonsterInstance> mobs = new ArrayList<>();
|
||||
|
||||
final List<L2SepulcherMonsterInstance> mobs = new CopyOnWriteArrayList<>();
|
||||
final List<L2Spawn> monsterList;
|
||||
if (Rnd.get(2) == 0)
|
||||
{
|
||||
monsterList = _physicalMonsters.get(npcId);
|
||||
@ -1366,11 +1363,6 @@ public final class FourSepulchersManager
|
||||
{
|
||||
for (L2Npc mob : _allMobs)
|
||||
{
|
||||
if (mob == null)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
if (mob.getSpawn() != null)
|
||||
|
@ -29,6 +29,8 @@ import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -59,13 +61,13 @@ public final class GrandBossManager implements IStorable
|
||||
|
||||
protected static Logger _log = Logger.getLogger(GrandBossManager.class.getName());
|
||||
|
||||
protected static Map<Integer, L2GrandBossInstance> _bosses = new HashMap<>();
|
||||
protected static final Map<Integer, L2GrandBossInstance> BOSSES = new ConcurrentHashMap<>();
|
||||
|
||||
protected static Map<Integer, StatsSet> _storedInfo = new HashMap<>();
|
||||
|
||||
private final Map<Integer, Integer> _bossStatus = new HashMap<>();
|
||||
|
||||
private final List<L2BossZone> _zones = new ArrayList<>();
|
||||
private final List<L2BossZone> _zones = new CopyOnWriteArrayList<>();
|
||||
|
||||
protected GrandBossManager()
|
||||
{
|
||||
@ -276,13 +278,13 @@ public final class GrandBossManager implements IStorable
|
||||
{
|
||||
if (boss != null)
|
||||
{
|
||||
_bosses.put(boss.getId(), boss);
|
||||
BOSSES.put(boss.getId(), boss);
|
||||
}
|
||||
}
|
||||
|
||||
public L2GrandBossInstance getBoss(int bossId)
|
||||
{
|
||||
return _bosses.get(bossId);
|
||||
return BOSSES.get(bossId);
|
||||
}
|
||||
|
||||
public StatsSet getStatsSet(int bossId)
|
||||
@ -329,7 +331,7 @@ public final class GrandBossManager implements IStorable
|
||||
}
|
||||
for (Entry<Integer, StatsSet> e : _storedInfo.entrySet())
|
||||
{
|
||||
final L2GrandBossInstance boss = _bosses.get(e.getKey());
|
||||
final L2GrandBossInstance boss = BOSSES.get(e.getKey());
|
||||
StatsSet info = e.getValue();
|
||||
if ((boss == null) || (info == null))
|
||||
{
|
||||
@ -379,7 +381,7 @@ public final class GrandBossManager implements IStorable
|
||||
{
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection())
|
||||
{
|
||||
L2GrandBossInstance boss = _bosses.get(bossId);
|
||||
L2GrandBossInstance boss = BOSSES.get(bossId);
|
||||
StatsSet info = _storedInfo.get(bossId);
|
||||
|
||||
if (statusOnly || (boss == null) || (info == null))
|
||||
@ -428,7 +430,7 @@ public final class GrandBossManager implements IStorable
|
||||
{
|
||||
storeMe();
|
||||
|
||||
_bosses.clear();
|
||||
BOSSES.clear();
|
||||
_storedInfo.clear();
|
||||
_bossStatus.clear();
|
||||
_zones.clear();
|
||||
|
@ -24,28 +24,29 @@ import java.sql.ResultSet;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jserver.L2DatabaseFactory;
|
||||
import com.l2jserver.gameserver.data.xml.IXmlReader;
|
||||
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
|
||||
import com.l2jserver.gameserver.model.entity.Instance;
|
||||
import com.l2jserver.gameserver.model.instancezone.InstanceWorld;
|
||||
import com.l2jserver.util.data.xml.IXmlReader;
|
||||
|
||||
/**
|
||||
* @author evill33t, GodKratos
|
||||
*/
|
||||
public final class InstanceManager implements IXmlReader
|
||||
{
|
||||
private static final Map<Integer, Instance> _instanceList = new HashMap<>();
|
||||
private final Map<Integer, InstanceWorld> _instanceWorlds = new HashMap<>();
|
||||
private static final Map<Integer, Instance> INSTANCES = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, InstanceWorld> _instanceWorlds = new ConcurrentHashMap<>();
|
||||
private int _dynamic = 300000;
|
||||
// InstanceId Names
|
||||
private static final Map<Integer, String> _instanceIdNames = new HashMap<>();
|
||||
private final Map<Integer, Map<Integer, Long>> _playerInstanceTimes = new HashMap<>();
|
||||
private final Map<Integer, Map<Integer, Long>> _playerInstanceTimes = new ConcurrentHashMap<>();
|
||||
// SQL Queries
|
||||
private static final String ADD_INSTANCE_TIME = "INSERT INTO character_instance_time (charId,instanceId,time) values (?,?,?) ON DUPLICATE KEY UPDATE time=?";
|
||||
private static final String RESTORE_INSTANCE_TIMES = "SELECT instanceId,time FROM character_instance_time WHERE charId=?";
|
||||
@ -54,10 +55,10 @@ public final class InstanceManager implements IXmlReader
|
||||
protected InstanceManager()
|
||||
{
|
||||
// Creates the multiverse.
|
||||
_instanceList.put(-1, new Instance(-1, "multiverse"));
|
||||
INSTANCES.put(-1, new Instance(-1, "multiverse"));
|
||||
LOGGER.info(getClass().getSimpleName() + ": Multiverse Instance created.");
|
||||
// Creates the universe.
|
||||
_instanceList.put(0, new Instance(0, "universe"));
|
||||
INSTANCES.put(0, new Instance(0, "universe"));
|
||||
LOGGER.info(getClass().getSimpleName() + ": Universe Instance created.");
|
||||
load();
|
||||
}
|
||||
@ -166,7 +167,7 @@ public final class InstanceManager implements IXmlReader
|
||||
{
|
||||
return; // already restored
|
||||
}
|
||||
_playerInstanceTimes.put(playerObjId, new HashMap<Integer, Long>());
|
||||
_playerInstanceTimes.put(playerObjId, new ConcurrentHashMap<>());
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
|
||||
PreparedStatement ps = con.prepareStatement(RESTORE_INSTANCE_TIMES))
|
||||
{
|
||||
@ -270,18 +271,15 @@ public final class InstanceManager implements IXmlReader
|
||||
{
|
||||
return;
|
||||
}
|
||||
final Instance temp = _instanceList.get(instanceid);
|
||||
final Instance temp = INSTANCES.get(instanceid);
|
||||
if (temp != null)
|
||||
{
|
||||
temp.removeNpcs();
|
||||
temp.removePlayers();
|
||||
temp.removeDoors();
|
||||
temp.cancelTimer();
|
||||
_instanceList.remove(instanceid);
|
||||
if (_instanceWorlds.containsKey(instanceid))
|
||||
{
|
||||
_instanceWorlds.remove(instanceid);
|
||||
}
|
||||
INSTANCES.remove(instanceid);
|
||||
_instanceWorlds.remove(instanceid);
|
||||
}
|
||||
}
|
||||
|
||||
@ -291,7 +289,7 @@ public final class InstanceManager implements IXmlReader
|
||||
*/
|
||||
public Instance getInstance(int instanceid)
|
||||
{
|
||||
return _instanceList.get(instanceid);
|
||||
return INSTANCES.get(instanceid);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -299,7 +297,7 @@ public final class InstanceManager implements IXmlReader
|
||||
*/
|
||||
public Map<Integer, Instance> getInstances()
|
||||
{
|
||||
return _instanceList;
|
||||
return INSTANCES;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -308,7 +306,7 @@ public final class InstanceManager implements IXmlReader
|
||||
*/
|
||||
public int getPlayerInstance(int objectId)
|
||||
{
|
||||
for (Instance temp : _instanceList.values())
|
||||
for (Instance temp : INSTANCES.values())
|
||||
{
|
||||
if (temp == null)
|
||||
{
|
||||
@ -336,7 +334,7 @@ public final class InstanceManager implements IXmlReader
|
||||
}
|
||||
|
||||
final Instance instance = new Instance(id);
|
||||
_instanceList.put(id, instance);
|
||||
INSTANCES.put(id, instance);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -353,7 +351,7 @@ public final class InstanceManager implements IXmlReader
|
||||
}
|
||||
|
||||
final Instance instance = new Instance(id);
|
||||
_instanceList.put(id, instance);
|
||||
INSTANCES.put(id, instance);
|
||||
instance.loadInstanceTemplate(template);
|
||||
return true;
|
||||
}
|
||||
@ -375,7 +373,7 @@ public final class InstanceManager implements IXmlReader
|
||||
}
|
||||
}
|
||||
final Instance instance = new Instance(_dynamic);
|
||||
_instanceList.put(_dynamic, instance);
|
||||
INSTANCES.put(_dynamic, instance);
|
||||
if (template != null)
|
||||
{
|
||||
instance.loadInstanceTemplate(template);
|
||||
|
@ -23,8 +23,8 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -43,7 +43,7 @@ public final class ItemsOnGroundManager implements Runnable
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(ItemsOnGroundManager.class.getName());
|
||||
|
||||
private final List<L2ItemInstance> _items = new ArrayList<>();
|
||||
private final List<L2ItemInstance> _items = new CopyOnWriteArrayList<>();
|
||||
|
||||
protected ItemsOnGroundManager()
|
||||
{
|
||||
|
@ -27,7 +27,6 @@ import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jserver.Config;
|
||||
import com.l2jserver.gameserver.data.xml.IXmlReader;
|
||||
import com.l2jserver.gameserver.model.L2MapRegion;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.Location;
|
||||
@ -42,6 +41,7 @@ import com.l2jserver.gameserver.model.entity.Instance;
|
||||
import com.l2jserver.gameserver.model.entity.clanhall.SiegableHall;
|
||||
import com.l2jserver.gameserver.model.zone.type.L2ClanHallZone;
|
||||
import com.l2jserver.gameserver.model.zone.type.L2RespawnZone;
|
||||
import com.l2jserver.util.data.xml.IXmlReader;
|
||||
|
||||
/**
|
||||
* @author Nyaran
|
||||
|
@ -21,7 +21,6 @@ package com.l2jserver.gameserver.instancemanager;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.Statement;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CopyOnWriteArrayList;
|
||||
import java.util.logging.Level;
|
||||
@ -49,7 +48,7 @@ public final class MercTicketManager
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(MercTicketManager.class.getName());
|
||||
|
||||
private static final List<L2ItemInstance> _droppedTickets = new CopyOnWriteArrayList<>();
|
||||
private static final List<L2ItemInstance> DROPPED_TICKETS = new CopyOnWriteArrayList<>();
|
||||
|
||||
// TODO: move all these values into siege.properties
|
||||
// max tickets per merc type = 10 + (castleid * 2)?
|
||||
@ -139,7 +138,7 @@ public final class MercTicketManager
|
||||
|
||||
public void reload()
|
||||
{
|
||||
_droppedTickets.clear();
|
||||
DROPPED_TICKETS.clear();
|
||||
load();
|
||||
}
|
||||
|
||||
@ -194,7 +193,7 @@ public final class MercTicketManager
|
||||
dropticket.dropMe(null, x, y, z);
|
||||
dropticket.setDropTime(0); // avoids it from being removed by the auto item destroyer
|
||||
L2World.getInstance().storeObject(dropticket);
|
||||
_droppedTickets.add(dropticket);
|
||||
DROPPED_TICKETS.add(dropticket);
|
||||
}
|
||||
break;
|
||||
}
|
||||
@ -203,7 +202,7 @@ public final class MercTicketManager
|
||||
rs.close();
|
||||
s.close();
|
||||
|
||||
_log.info(getClass().getSimpleName() + ": Loaded: " + _droppedTickets.size() + " Mercenary Tickets");
|
||||
_log.info(getClass().getSimpleName() + ": Loaded: " + DROPPED_TICKETS.size() + " Mercenary Tickets");
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@ -235,7 +234,7 @@ public final class MercTicketManager
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
for (L2ItemInstance ticket : _droppedTickets)
|
||||
for (L2ItemInstance ticket : DROPPED_TICKETS)
|
||||
{
|
||||
if ((ticket != null) && (ticket.getId() == itemId))
|
||||
{
|
||||
@ -268,7 +267,7 @@ public final class MercTicketManager
|
||||
}
|
||||
|
||||
int count = 0;
|
||||
for (L2ItemInstance ticket : _droppedTickets)
|
||||
for (L2ItemInstance ticket : DROPPED_TICKETS)
|
||||
{
|
||||
if ((ticket != null) && (getTicketCastleId(ticket.getId()) == castleId))
|
||||
{
|
||||
@ -289,7 +288,7 @@ public final class MercTicketManager
|
||||
|
||||
public boolean isTooCloseToAnotherTicket(int x, int y, int z)
|
||||
{
|
||||
for (L2ItemInstance item : _droppedTickets)
|
||||
for (L2ItemInstance item : DROPPED_TICKETS)
|
||||
{
|
||||
double dx = x - item.getX();
|
||||
double dy = y - item.getY();
|
||||
@ -339,7 +338,7 @@ public final class MercTicketManager
|
||||
dropticket.setDropTime(0); // avoids it from beeing removed by the auto item destroyer
|
||||
L2World.getInstance().storeObject(dropticket); // add to the world
|
||||
// and keep track of this ticket in the list
|
||||
_droppedTickets.add(dropticket);
|
||||
DROPPED_TICKETS.add(dropticket);
|
||||
|
||||
return NPC_IDS[i];
|
||||
}
|
||||
@ -370,15 +369,13 @@ public final class MercTicketManager
|
||||
*/
|
||||
public void deleteTickets(int castleId)
|
||||
{
|
||||
Iterator<L2ItemInstance> it = _droppedTickets.iterator();
|
||||
while (it.hasNext())
|
||||
for (L2ItemInstance item : DROPPED_TICKETS)
|
||||
{
|
||||
L2ItemInstance item = it.next();
|
||||
if ((item != null) && (getTicketCastleId(item.getId()) == castleId))
|
||||
{
|
||||
item.decayMe();
|
||||
L2World.getInstance().removeObject(item);
|
||||
it.remove();
|
||||
DROPPED_TICKETS.remove(item);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -409,7 +406,7 @@ public final class MercTicketManager
|
||||
(new SiegeGuardManager(castle)).removeMerc(npcId, item.getX(), item.getY(), item.getZ());
|
||||
}
|
||||
|
||||
_droppedTickets.remove(item);
|
||||
DROPPED_TICKETS.remove(item);
|
||||
}
|
||||
|
||||
public int[] getItemIds()
|
||||
@ -419,7 +416,7 @@ public final class MercTicketManager
|
||||
|
||||
public final List<L2ItemInstance> getDroppedTickets()
|
||||
{
|
||||
return _droppedTickets;
|
||||
return DROPPED_TICKETS;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -26,8 +26,10 @@ import java.sql.Statement;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@ -42,7 +44,7 @@ public class RaidBossPointsManager
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(RaidBossPointsManager.class.getName());
|
||||
|
||||
private HashMap<Integer, Map<Integer, Integer>> _list;
|
||||
private final Map<Integer, Map<Integer, Integer>> _list = new ConcurrentHashMap<>();
|
||||
|
||||
public RaidBossPointsManager()
|
||||
{
|
||||
@ -51,7 +53,6 @@ public class RaidBossPointsManager
|
||||
|
||||
private final void init()
|
||||
{
|
||||
_list = new HashMap<>();
|
||||
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
|
||||
Statement s = con.createStatement();
|
||||
ResultSet rs = s.executeQuery("SELECT `charId`,`boss_id`,`points` FROM `character_raid_points`"))
|
||||
@ -101,8 +102,7 @@ public class RaidBossPointsManager
|
||||
|
||||
public final int getPointsByOwnerId(int ownerId)
|
||||
{
|
||||
Map<Integer, Integer> tmpPoint;
|
||||
tmpPoint = _list.get(ownerId);
|
||||
Map<Integer, Integer> tmpPoint = _list.get(ownerId);
|
||||
int totalPoints = 0;
|
||||
|
||||
if ((tmpPoint == null) || tmpPoint.isEmpty())
|
||||
@ -148,9 +148,7 @@ public class RaidBossPointsManager
|
||||
|
||||
public Map<Integer, Integer> getRankList()
|
||||
{
|
||||
Map<Integer, Integer> tmpRanking = new HashMap<>();
|
||||
Map<Integer, Integer> tmpPoints = new HashMap<>();
|
||||
|
||||
final Map<Integer, Integer> tmpPoints = new HashMap<>();
|
||||
for (int ownerId : _list.keySet())
|
||||
{
|
||||
int totalPoints = getPointsByOwnerId(ownerId);
|
||||
@ -159,16 +157,15 @@ public class RaidBossPointsManager
|
||||
tmpPoints.put(ownerId, totalPoints);
|
||||
}
|
||||
}
|
||||
ArrayList<Entry<Integer, Integer>> list = new ArrayList<>(tmpPoints.entrySet());
|
||||
|
||||
final List<Entry<Integer, Integer>> list = new ArrayList<>(tmpPoints.entrySet());
|
||||
list.sort(Comparator.comparing(Entry<Integer, Integer>::getValue).reversed());
|
||||
|
||||
int ranking = 1;
|
||||
for (Map.Entry<Integer, Integer> entry : list)
|
||||
final Map<Integer, Integer> tmpRanking = new HashMap<>();
|
||||
for (Entry<Integer, Integer> entry : list)
|
||||
{
|
||||
tmpRanking.put(entry.getKey(), ranking++);
|
||||
}
|
||||
|
||||
return tmpRanking;
|
||||
}
|
||||
|
||||
|
@ -23,8 +23,8 @@ import java.sql.PreparedStatement;
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.concurrent.ScheduledFuture;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
@ -46,10 +46,10 @@ public class RaidBossSpawnManager
|
||||
{
|
||||
private static final Logger _log = Logger.getLogger(RaidBossSpawnManager.class.getName());
|
||||
|
||||
protected static final Map<Integer, L2RaidBossInstance> _bosses = new HashMap<>();
|
||||
protected static final Map<Integer, L2Spawn> _spawns = new HashMap<>();
|
||||
protected static final Map<Integer, StatsSet> _storedInfo = new HashMap<>();
|
||||
protected static final Map<Integer, ScheduledFuture<?>> _schedules = new HashMap<>();
|
||||
protected static final Map<Integer, L2RaidBossInstance> _bosses = new ConcurrentHashMap<>();
|
||||
protected static final Map<Integer, L2Spawn> _spawns = new ConcurrentHashMap<>();
|
||||
protected static final Map<Integer, StatsSet> _storedInfo = new ConcurrentHashMap<>();
|
||||
protected static final Map<Integer, ScheduledFuture<?>> _schedules = new ConcurrentHashMap<>();
|
||||
|
||||
public static enum StatusEnum
|
||||
{
|
||||
|
@ -148,7 +148,7 @@ public final class SiegeGuardManager
|
||||
int hiredCount = 0, hiredMax = MercTicketManager.getInstance().getMaxAllowedMerc(_castle.getResidenceId());
|
||||
boolean isHired = (getCastle().getOwnerId() > 0) ? true : false;
|
||||
loadSiegeGuard();
|
||||
for (L2Spawn spawn : getSiegeGuardSpawn())
|
||||
for (L2Spawn spawn : _siegeGuardSpawn)
|
||||
{
|
||||
if (spawn != null)
|
||||
{
|
||||
@ -175,7 +175,7 @@ public final class SiegeGuardManager
|
||||
*/
|
||||
public void unspawnSiegeGuard()
|
||||
{
|
||||
for (L2Spawn spawn : getSiegeGuardSpawn())
|
||||
for (L2Spawn spawn : _siegeGuardSpawn)
|
||||
{
|
||||
if ((spawn != null) && (spawn.getLastSpawn() != null))
|
||||
{
|
||||
@ -184,7 +184,7 @@ public final class SiegeGuardManager
|
||||
}
|
||||
}
|
||||
|
||||
getSiegeGuardSpawn().clear();
|
||||
_siegeGuardSpawn.clear();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -268,7 +268,7 @@ public final class SiegeManager
|
||||
|
||||
public final List<Siege> getSieges()
|
||||
{
|
||||
ArrayList<Siege> sieges = new ArrayList<>();
|
||||
List<Siege> sieges = new ArrayList<>();
|
||||
for (Castle castle : CastleManager.getInstance().getCastles())
|
||||
{
|
||||
sieges.add(castle.getSiege());
|
||||
|
@ -29,7 +29,6 @@ import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jserver.gameserver.ThreadPoolManager;
|
||||
import com.l2jserver.gameserver.ai.CtrlIntention;
|
||||
import com.l2jserver.gameserver.data.xml.IXmlReader;
|
||||
import com.l2jserver.gameserver.enums.ChatType;
|
||||
import com.l2jserver.gameserver.instancemanager.tasks.StartMovingTask;
|
||||
import com.l2jserver.gameserver.model.L2NpcWalkerNode;
|
||||
@ -45,6 +44,7 @@ import com.l2jserver.gameserver.model.holders.NpcRoutesHolder;
|
||||
import com.l2jserver.gameserver.network.NpcStringId;
|
||||
import com.l2jserver.gameserver.network.serverpackets.NpcSay;
|
||||
import com.l2jserver.gameserver.util.Broadcast;
|
||||
import com.l2jserver.util.data.xml.IXmlReader;
|
||||
|
||||
/**
|
||||
* This class manages walking monsters.
|
||||
|
@ -32,7 +32,6 @@ import org.w3c.dom.Document;
|
||||
import org.w3c.dom.NamedNodeMap;
|
||||
import org.w3c.dom.Node;
|
||||
|
||||
import com.l2jserver.gameserver.data.xml.IXmlReader;
|
||||
import com.l2jserver.gameserver.model.L2Object;
|
||||
import com.l2jserver.gameserver.model.L2World;
|
||||
import com.l2jserver.gameserver.model.L2WorldRegion;
|
||||
@ -49,6 +48,7 @@ import com.l2jserver.gameserver.model.zone.type.L2ArenaZone;
|
||||
import com.l2jserver.gameserver.model.zone.type.L2OlympiadStadiumZone;
|
||||
import com.l2jserver.gameserver.model.zone.type.L2RespawnZone;
|
||||
import com.l2jserver.gameserver.model.zone.type.NpcSpawnTerritory;
|
||||
import com.l2jserver.util.data.xml.IXmlReader;
|
||||
|
||||
/**
|
||||
* This class manages the zones
|
||||
|
Reference in New Issue
Block a user