Addition of player limit for rank manager.

This commit is contained in:
MobiusDevelopment 2019-12-12 11:58:17 +00:00
parent 6abcec1ce6
commit 6f337395e5
12 changed files with 84 additions and 64 deletions

View File

@ -141,6 +141,7 @@ import org.l2jmobius.gameserver.instancemanager.PetitionManager;
import org.l2jmobius.gameserver.instancemanager.PremiumManager; import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.instancemanager.PunishmentManager; import org.l2jmobius.gameserver.instancemanager.PunishmentManager;
import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.instancemanager.RankManager;
import org.l2jmobius.gameserver.instancemanager.SellBuffsManager; import org.l2jmobius.gameserver.instancemanager.SellBuffsManager;
import org.l2jmobius.gameserver.instancemanager.ServerRestartManager; import org.l2jmobius.gameserver.instancemanager.ServerRestartManager;
import org.l2jmobius.gameserver.instancemanager.SiegeGuardManager; import org.l2jmobius.gameserver.instancemanager.SiegeGuardManager;
@ -351,6 +352,7 @@ public class GameServer
CursedWeaponsManager.getInstance(); CursedWeaponsManager.getInstance();
TransformData.getInstance(); TransformData.getInstance();
BotReportTable.getInstance(); BotReportTable.getInstance();
RankManager.getInstance();
if (Config.SELLBUFF_ENABLED) if (Config.SELLBUFF_ENABLED)
{ {
SellBuffsManager.getInstance(); SellBuffsManager.getInstance();

View File

@ -37,11 +37,13 @@ public class RankManager
{ {
private static final Logger LOGGER = Logger.getLogger(RankManager.class.getName()); private static final Logger LOGGER = Logger.getLogger(RankManager.class.getName());
private static final String SELECT_CHARACTERS = "SELECT charId,char_name,level,race,base_class, clanid FROM characters WHERE level > 84 ORDER BY exp DESC"; public static final int PLAYER_LIMIT = 100;
private static final String SELECT_CHARACTERS_BY_RACE = "SELECT charId FROM characters WHERE level > 84 AND race = ? ORDER BY exp DESC";
private static final String GET_CURRENT_CYCLE_DATA = "SELECT characters.char_name, characters.level, characters.base_class, characters.clanid, olympiad_nobles.charId, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_won, olympiad_nobles.competitions_lost FROM characters, olympiad_nobles WHERE characters.charId = olympiad_nobles.charId ORDER BY olympiad_nobles.olympiad_points DESC"; private static final String SELECT_CHARACTERS = "SELECT charId,char_name,level,race,base_class, clanid FROM characters WHERE level > 84 ORDER BY exp DESC LIMIT " + PLAYER_LIMIT;
private static final String GET_CHARACTERS_BY_CLASS = "SELECT characters.charId, olympiad_nobles.olympiad_points FROM characters, olympiad_nobles WHERE olympiad_nobles.charId = characters.charId AND characters.base_class = ? ORDER BY olympiad_nobles.olympiad_points DESC"; private static final String SELECT_CHARACTERS_BY_RACE = "SELECT charId FROM characters WHERE level > 84 AND race = ? ORDER BY exp DESC LIMIT " + PLAYER_LIMIT;
private static final String GET_CURRENT_CYCLE_DATA = "SELECT characters.char_name, characters.level, characters.base_class, characters.clanid, olympiad_nobles.charId, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_won, olympiad_nobles.competitions_lost FROM characters, olympiad_nobles WHERE characters.charId = olympiad_nobles.charId ORDER BY olympiad_nobles.olympiad_points DESC LIMIT " + PLAYER_LIMIT;
private static final String GET_CHARACTERS_BY_CLASS = "SELECT characters.charId, olympiad_nobles.olympiad_points FROM characters, olympiad_nobles WHERE olympiad_nobles.charId = characters.charId AND characters.base_class = ? ORDER BY olympiad_nobles.olympiad_points DESC LIMIT " + PLAYER_LIMIT;
private final Map<Integer, StatsSet> _mainList = new ConcurrentHashMap<>(); private final Map<Integer, StatsSet> _mainList = new ConcurrentHashMap<>();
private Map<Integer, StatsSet> _snapshotList = new ConcurrentHashMap<>(); private Map<Integer, StatsSet> _snapshotList = new ConcurrentHashMap<>();
@ -53,26 +55,6 @@ public class RankManager
ThreadPool.scheduleAtFixedRate(this::update, 0, 1800000); ThreadPool.scheduleAtFixedRate(this::update, 0, 1800000);
} }
public Map<Integer, StatsSet> getRankList()
{
return _mainList;
}
public Map<Integer, StatsSet> getSnapshotList()
{
return _snapshotList;
}
public Map<Integer, StatsSet> getOlyRankList()
{
return _mainOlyList;
}
public Map<Integer, StatsSet> getSnapshotOlyList()
{
return _snapshotOlyList;
}
private synchronized void update() private synchronized void update()
{ {
// Load charIds All // Load charIds All
@ -80,6 +62,7 @@ public class RankManager
_mainList.clear(); _mainList.clear();
_snapshotOlyList = _mainOlyList; _snapshotOlyList = _mainOlyList;
_mainOlyList.clear(); _mainOlyList.clear();
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
PreparedStatement statement = con.prepareStatement(SELECT_CHARACTERS)) PreparedStatement statement = con.prepareStatement(SELECT_CHARACTERS))
{ {
@ -117,6 +100,7 @@ public class RankManager
{ {
LOGGER.log(Level.WARNING, "Could not load chars total rank data: " + this + " - " + e.getMessage(), e); LOGGER.log(Level.WARNING, "Could not load chars total rank data: " + this + " - " + e.getMessage(), e);
} }
// load olympiad data. // load olympiad data.
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
PreparedStatement statement = con.prepareStatement(GET_CURRENT_CYCLE_DATA)) PreparedStatement statement = con.prepareStatement(GET_CURRENT_CYCLE_DATA))
@ -237,13 +221,33 @@ public class RankManager
} }
} }
private static class SingletonHolder public Map<Integer, StatsSet> getRankList()
{ {
protected static final RankManager INSTANCE = new RankManager(); return _mainList;
}
public Map<Integer, StatsSet> getSnapshotList()
{
return _snapshotList;
}
public Map<Integer, StatsSet> getOlyRankList()
{
return _mainOlyList;
}
public Map<Integer, StatsSet> getSnapshotOlyList()
{
return _snapshotOlyList;
} }
public static RankManager getInstance() public static RankManager getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder
{
protected static final RankManager INSTANCE = new RankManager();
}
} }

View File

@ -37,5 +37,4 @@ public class RequestOlympiadMyRankingInfo implements IClientIncomingPacket
{ {
client.sendPacket(new ExOlympiadMyRankingInfo(client.getPlayer())); client.sendPacket(new ExOlympiadMyRankingInfo(client.getPlayer()));
} }
} }

View File

@ -48,5 +48,4 @@ public class RequestOlympiadRankingInfo implements IClientIncomingPacket
{ {
client.sendPacket(new ExOlympiadRankingInfo(client.getPlayer(), _tabId, _rankingType, _unk, _classId, _serverId)); client.sendPacket(new ExOlympiadRankingInfo(client.getPlayer(), _tabId, _rankingType, _unk, _classId, _serverId));
} }
} }

View File

@ -25,6 +25,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.instancemanager.RankManager;
import org.l2jmobius.gameserver.model.entity.Hero; import org.l2jmobius.gameserver.model.entity.Hero;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -34,11 +35,11 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/ */
public class ExOlympiadHeroAndLegendInfo implements IClientOutgoingPacket public class ExOlympiadHeroAndLegendInfo implements IClientOutgoingPacket
{ {
private static final String GET_HEROES = "SELECT characters.charId, characters.char_name, characters.race, characters.sex, characters.base_class, characters.level, characters.clanid, olympiad_nobles_eom.competitions_won, olympiad_nobles_eom.competitions_lost, olympiad_nobles_eom.olympiad_points, heroes.legend_count, heroes.count FROM heroes, characters, olympiad_nobles_eom WHERE characters.charId = heroes.charId AND characters.charId = olympiad_nobles_eom.charId ORDER BY olympiad_nobles_eom.olympiad_points DESC, characters.base_class ASC"; // TODO: Move query and store data at RankManager.
private static final String GET_HEROES = "SELECT characters.charId, characters.char_name, characters.race, characters.sex, characters.base_class, characters.level, characters.clanid, olympiad_nobles_eom.competitions_won, olympiad_nobles_eom.competitions_lost, olympiad_nobles_eom.olympiad_points, heroes.legend_count, heroes.count FROM heroes, characters, olympiad_nobles_eom WHERE characters.charId = heroes.charId AND characters.charId = olympiad_nobles_eom.charId ORDER BY olympiad_nobles_eom.olympiad_points DESC, characters.base_class ASC LIMIT " + RankManager.PLAYER_LIMIT;
public ExOlympiadHeroAndLegendInfo() public ExOlympiadHeroAndLegendInfo()
{ {
} }
@Override @Override

View File

@ -26,6 +26,7 @@ import java.util.GregorianCalendar;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.instancemanager.RankManager;
import org.l2jmobius.gameserver.model.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.Hero; import org.l2jmobius.gameserver.model.entity.Hero;
@ -38,8 +39,10 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/ */
public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket
{ {
private static final String GET_CURRENT_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles WHERE class_id = ?"; // TODO: Move query and store data at RankManager.
private static final String GET_PREVIOUS_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles_eom WHERE class_id = ?"; private static final String GET_CURRENT_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles WHERE class_id = ? ORDER BY olympiad_points DESC LIMIT " + RankManager.PLAYER_LIMIT;
private static final String GET_PREVIOUS_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles_eom WHERE class_id = ? ORDER BY olympiad_points DESC LIMIT " + RankManager.PLAYER_LIMIT;
private final PlayerInstance _player; private final PlayerInstance _player;
public ExOlympiadMyRankingInfo(PlayerInstance player) public ExOlympiadMyRankingInfo(PlayerInstance player)
@ -98,6 +101,7 @@ public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket
{ {
LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage()); LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage());
} }
int previousPlace = 0; int previousPlace = 0;
int previousWins = 0; int previousWins = 0;
int previousLoses = 0; int previousLoses = 0;
@ -126,6 +130,7 @@ public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket
{ {
LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage()); LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage());
} }
int heroCount = 0; int heroCount = 0;
int legendCount = 0; int legendCount = 0;
if (Hero.getInstance().getCompleteHeroes().containsKey(_player.getObjectId())) if (Hero.getInstance().getCompleteHeroes().containsKey(_player.getObjectId()))

View File

@ -138,6 +138,7 @@ import org.l2jmobius.gameserver.instancemanager.PetitionManager;
import org.l2jmobius.gameserver.instancemanager.PremiumManager; import org.l2jmobius.gameserver.instancemanager.PremiumManager;
import org.l2jmobius.gameserver.instancemanager.PunishmentManager; import org.l2jmobius.gameserver.instancemanager.PunishmentManager;
import org.l2jmobius.gameserver.instancemanager.QuestManager; import org.l2jmobius.gameserver.instancemanager.QuestManager;
import org.l2jmobius.gameserver.instancemanager.RankManager;
import org.l2jmobius.gameserver.instancemanager.SellBuffsManager; import org.l2jmobius.gameserver.instancemanager.SellBuffsManager;
import org.l2jmobius.gameserver.instancemanager.ServerRestartManager; import org.l2jmobius.gameserver.instancemanager.ServerRestartManager;
import org.l2jmobius.gameserver.instancemanager.SiegeGuardManager; import org.l2jmobius.gameserver.instancemanager.SiegeGuardManager;
@ -347,6 +348,7 @@ public class GameServer
CursedWeaponsManager.getInstance(); CursedWeaponsManager.getInstance();
TransformData.getInstance(); TransformData.getInstance();
BotReportTable.getInstance(); BotReportTable.getInstance();
RankManager.getInstance();
if (Config.SELLBUFF_ENABLED) if (Config.SELLBUFF_ENABLED)
{ {
SellBuffsManager.getInstance(); SellBuffsManager.getInstance();

View File

@ -37,11 +37,13 @@ public class RankManager
{ {
private static final Logger LOGGER = Logger.getLogger(RankManager.class.getName()); private static final Logger LOGGER = Logger.getLogger(RankManager.class.getName());
private static final String SELECT_CHARACTERS = "SELECT charId,char_name,level,race,base_class, clanid FROM characters WHERE level > 84 ORDER BY exp DESC"; public static final int PLAYER_LIMIT = 100;
private static final String SELECT_CHARACTERS_BY_RACE = "SELECT charId FROM characters WHERE level > 84 AND race = ? ORDER BY exp DESC";
private static final String GET_CURRENT_CYCLE_DATA = "SELECT characters.char_name, characters.level, characters.base_class, characters.clanid, olympiad_nobles.charId, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_won, olympiad_nobles.competitions_lost FROM characters, olympiad_nobles WHERE characters.charId = olympiad_nobles.charId ORDER BY olympiad_nobles.olympiad_points DESC"; private static final String SELECT_CHARACTERS = "SELECT charId,char_name,level,race,base_class, clanid FROM characters WHERE level > 84 ORDER BY exp DESC LIMIT " + PLAYER_LIMIT;
private static final String GET_CHARACTERS_BY_CLASS = "SELECT characters.charId, olympiad_nobles.olympiad_points FROM characters, olympiad_nobles WHERE olympiad_nobles.charId = characters.charId AND characters.base_class = ? ORDER BY olympiad_nobles.olympiad_points DESC"; private static final String SELECT_CHARACTERS_BY_RACE = "SELECT charId FROM characters WHERE level > 84 AND race = ? ORDER BY exp DESC LIMIT " + PLAYER_LIMIT;
private static final String GET_CURRENT_CYCLE_DATA = "SELECT characters.char_name, characters.level, characters.base_class, characters.clanid, olympiad_nobles.charId, olympiad_nobles.olympiad_points, olympiad_nobles.competitions_won, olympiad_nobles.competitions_lost FROM characters, olympiad_nobles WHERE characters.charId = olympiad_nobles.charId ORDER BY olympiad_nobles.olympiad_points DESC LIMIT " + PLAYER_LIMIT;
private static final String GET_CHARACTERS_BY_CLASS = "SELECT characters.charId, olympiad_nobles.olympiad_points FROM characters, olympiad_nobles WHERE olympiad_nobles.charId = characters.charId AND characters.base_class = ? ORDER BY olympiad_nobles.olympiad_points DESC LIMIT " + PLAYER_LIMIT;
private final Map<Integer, StatsSet> _mainList = new ConcurrentHashMap<>(); private final Map<Integer, StatsSet> _mainList = new ConcurrentHashMap<>();
private Map<Integer, StatsSet> _snapshotList = new ConcurrentHashMap<>(); private Map<Integer, StatsSet> _snapshotList = new ConcurrentHashMap<>();
@ -53,26 +55,6 @@ public class RankManager
ThreadPool.scheduleAtFixedRate(this::update, 0, 1800000); ThreadPool.scheduleAtFixedRate(this::update, 0, 1800000);
} }
public Map<Integer, StatsSet> getRankList()
{
return _mainList;
}
public Map<Integer, StatsSet> getSnapshotList()
{
return _snapshotList;
}
public Map<Integer, StatsSet> getOlyRankList()
{
return _mainOlyList;
}
public Map<Integer, StatsSet> getSnapshotOlyList()
{
return _snapshotOlyList;
}
private synchronized void update() private synchronized void update()
{ {
// Load charIds All // Load charIds All
@ -80,6 +62,7 @@ public class RankManager
_mainList.clear(); _mainList.clear();
_snapshotOlyList = _mainOlyList; _snapshotOlyList = _mainOlyList;
_mainOlyList.clear(); _mainOlyList.clear();
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
PreparedStatement statement = con.prepareStatement(SELECT_CHARACTERS)) PreparedStatement statement = con.prepareStatement(SELECT_CHARACTERS))
{ {
@ -117,6 +100,7 @@ public class RankManager
{ {
LOGGER.log(Level.WARNING, "Could not load chars total rank data: " + this + " - " + e.getMessage(), e); LOGGER.log(Level.WARNING, "Could not load chars total rank data: " + this + " - " + e.getMessage(), e);
} }
// load olympiad data. // load olympiad data.
try (Connection con = DatabaseFactory.getConnection(); try (Connection con = DatabaseFactory.getConnection();
PreparedStatement statement = con.prepareStatement(GET_CURRENT_CYCLE_DATA)) PreparedStatement statement = con.prepareStatement(GET_CURRENT_CYCLE_DATA))
@ -237,13 +221,33 @@ public class RankManager
} }
} }
private static class SingletonHolder public Map<Integer, StatsSet> getRankList()
{ {
protected static final RankManager INSTANCE = new RankManager(); return _mainList;
}
public Map<Integer, StatsSet> getSnapshotList()
{
return _snapshotList;
}
public Map<Integer, StatsSet> getOlyRankList()
{
return _mainOlyList;
}
public Map<Integer, StatsSet> getSnapshotOlyList()
{
return _snapshotOlyList;
} }
public static RankManager getInstance() public static RankManager getInstance()
{ {
return SingletonHolder.INSTANCE; return SingletonHolder.INSTANCE;
} }
private static class SingletonHolder
{
protected static final RankManager INSTANCE = new RankManager();
}
} }

View File

@ -37,5 +37,4 @@ public class RequestOlympiadMyRankingInfo implements IClientIncomingPacket
{ {
client.sendPacket(new ExOlympiadMyRankingInfo(client.getPlayer())); client.sendPacket(new ExOlympiadMyRankingInfo(client.getPlayer()));
} }
} }

View File

@ -48,5 +48,4 @@ public class RequestOlympiadRankingInfo implements IClientIncomingPacket
{ {
client.sendPacket(new ExOlympiadRankingInfo(client.getPlayer(), _tabId, _rankingType, _unk, _classId, _serverId)); client.sendPacket(new ExOlympiadRankingInfo(client.getPlayer(), _tabId, _rankingType, _unk, _classId, _serverId));
} }
} }

View File

@ -25,6 +25,7 @@ import org.l2jmobius.Config;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.data.sql.impl.ClanTable; import org.l2jmobius.gameserver.data.sql.impl.ClanTable;
import org.l2jmobius.gameserver.instancemanager.RankManager;
import org.l2jmobius.gameserver.model.entity.Hero; import org.l2jmobius.gameserver.model.entity.Hero;
import org.l2jmobius.gameserver.network.OutgoingPackets; import org.l2jmobius.gameserver.network.OutgoingPackets;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
@ -34,11 +35,11 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/ */
public class ExOlympiadHeroAndLegendInfo implements IClientOutgoingPacket public class ExOlympiadHeroAndLegendInfo implements IClientOutgoingPacket
{ {
private static final String GET_HEROES = "SELECT characters.charId, characters.char_name, characters.race, characters.sex, characters.base_class, characters.level, characters.clanid, olympiad_nobles_eom.competitions_won, olympiad_nobles_eom.competitions_lost, olympiad_nobles_eom.olympiad_points, heroes.legend_count, heroes.count FROM heroes, characters, olympiad_nobles_eom WHERE characters.charId = heroes.charId AND characters.charId = olympiad_nobles_eom.charId ORDER BY olympiad_nobles_eom.olympiad_points DESC, characters.base_class ASC"; // TODO: Move query and store data at RankManager.
private static final String GET_HEROES = "SELECT characters.charId, characters.char_name, characters.race, characters.sex, characters.base_class, characters.level, characters.clanid, olympiad_nobles_eom.competitions_won, olympiad_nobles_eom.competitions_lost, olympiad_nobles_eom.olympiad_points, heroes.legend_count, heroes.count FROM heroes, characters, olympiad_nobles_eom WHERE characters.charId = heroes.charId AND characters.charId = olympiad_nobles_eom.charId ORDER BY olympiad_nobles_eom.olympiad_points DESC, characters.base_class ASC LIMIT " + RankManager.PLAYER_LIMIT;
public ExOlympiadHeroAndLegendInfo() public ExOlympiadHeroAndLegendInfo()
{ {
} }
@Override @Override

View File

@ -26,6 +26,7 @@ import java.util.GregorianCalendar;
import org.l2jmobius.commons.database.DatabaseFactory; import org.l2jmobius.commons.database.DatabaseFactory;
import org.l2jmobius.commons.network.PacketWriter; import org.l2jmobius.commons.network.PacketWriter;
import org.l2jmobius.gameserver.instancemanager.RankManager;
import org.l2jmobius.gameserver.model.StatsSet; import org.l2jmobius.gameserver.model.StatsSet;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.entity.Hero; import org.l2jmobius.gameserver.model.entity.Hero;
@ -38,8 +39,10 @@ import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
*/ */
public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket
{ {
private static final String GET_CURRENT_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles WHERE class_id = ?"; // TODO: Move query and store data at RankManager.
private static final String GET_PREVIOUS_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles_eom WHERE class_id = ?"; private static final String GET_CURRENT_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles WHERE class_id = ? ORDER BY olympiad_points DESC LIMIT " + RankManager.PLAYER_LIMIT;
private static final String GET_PREVIOUS_CYCLE_DATA = "SELECT charId, olympiad_points, competitions_won, competitions_lost FROM olympiad_nobles_eom WHERE class_id = ? ORDER BY olympiad_points DESC LIMIT " + RankManager.PLAYER_LIMIT;
private final PlayerInstance _player; private final PlayerInstance _player;
public ExOlympiadMyRankingInfo(PlayerInstance player) public ExOlympiadMyRankingInfo(PlayerInstance player)
@ -98,6 +101,7 @@ public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket
{ {
LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage()); LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage());
} }
int previousPlace = 0; int previousPlace = 0;
int previousWins = 0; int previousWins = 0;
int previousLoses = 0; int previousLoses = 0;
@ -126,6 +130,7 @@ public class ExOlympiadMyRankingInfo implements IClientOutgoingPacket
{ {
LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage()); LOGGER.warning("Olympiad my ranking: Couldnt load data: " + e.getMessage());
} }
int heroCount = 0; int heroCount = 0;
int legendCount = 0; int legendCount = 0;
if (Hero.getInstance().getCompleteHeroes().containsKey(_player.getObjectId())) if (Hero.getInstance().getCompleteHeroes().containsKey(_player.getObjectId()))