package net.sf.l2j.gameserver.instancemanager;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
import net.sf.l2j.Config;
import net.sf.l2j.L2DatabaseFactory;
public class RaidBossInfoManager
{
private static final Logger _log = Logger.getLogger(RaidBossInfoManager.class.getName());
private final Map<Integer, Long> _raidBosses;
public static RaidBossInfoManager getInstance()
{
return SingletonHolder._instance;
}
protected RaidBossInfoManager()
{
_raidBosses = new ConcurrentHashMap<>();
load();
}
public void load()
{
try (Connection con = L2DatabaseFactory.getInstance().getConnection())
{
PreparedStatement statement;
ResultSet rs;
statement = con.prepareStatement("SELECT boss_id, respawn_time FROM grandboss_data UNION SELECT boss_id, respawn_time FROM raidboss_spawnlist ORDER BY boss_id");
rs = statement.executeQuery();
while (rs.next())
{
int bossId = rs.getInt("boss_id");
if (Config.LIST_RAID_BOSS_IDS.contains(bossId))
_raidBosses.put(bossId, rs.getLong("respawn_time"));
}
rs.close();
statement.close();
}
catch (Exception e)
{
e.printStackTrace();
}
_log.info("RaidBossInfoManager: Loaded " + _raidBosses.size() + " instances.");
}
public void updateRaidBossInfo(int bossId, long respawnTime)
{
_raidBosses.put(bossId, respawnTime);
}
public long getRaidBossRespawnTime(int bossId)
{
return _raidBosses.get(bossId);
}
private static class SingletonHolder
{
protected static final RaidBossInfoManager _instance = new RaidBossInfoManager();
}
}
if (Config.LIST_RAID_BOSS_IDS.contains(bossId))
Config.java
public static List<Integer> LIST_RAID_BOSS_IDS;
LIST_RAID_BOSS_IDS = new ArrayList<>();
for (String val : RAID_BOSS_IDS.split(","))
{
int npcId = Integer.parseInt(val);
LIST_RAID_BOSS_IDS.add(npcId);
}
Good luck with your project - from the moment you take pleasure, it's the essential.
If you manage to improve performance over specific points compared to L2J (knownlist, geoengine, movement,...), don't hesitate to share back on your topic what/why you did it and the actual performance gain, if measured.
Question
NickTs
Config.java
Need someones help please!
aCis 364
Link to comment
Share on other sites
7 answers to this question
Recommended Posts