Fixup highscores, ignore admin dev and bots

This commit is contained in:
RedSparr0w
2019-11-24 13:02:53 +13:00
parent 8920ff512a
commit 4f5c808298
2 changed files with 33 additions and 14 deletions
@@ -16,13 +16,18 @@ public class HighscoresHandler {
Client player = new Client(null, -1);
player.playerName = child.getName().split("\\.")[0];
loadPlayerInfo(player, child.getName().split("\\.")[0], "", false);
if (player.playerRights >= 2 || // admin or dev
player.isBot || player.playerName.startsWith("")) { // ignore bots
System.out.println("Skipping player " + player.playerName);
continue;
}
players.add(player);
}
}
public String getRank(Client player, int i, String sortBy) {
if (players.size() <= i || player.playerRights >= 2) {
return "Nobody";
if (players.size() <= i) {
return "-----";
}
switch (sortBy) {
@@ -32,6 +37,7 @@ public class HighscoresHandler {
case "gold":
players.sort(new totalGoldComparator());
return players.get(i).playerName + ": " + players.get(i).getPlayerAssistant().totalGold() + "gp";
case "damage":
default:
players.sort(new globalDmgComparator());
return players.get(i).playerName + ": " + players.get(i).globalDamageDealt;
@@ -169,30 +169,43 @@ public class Commands implements PacketType {
continue;
}
PlayerSave.saveGame((Client) p);
System.out.println("Saved game for " + p.playerName
+ ".");
System.out.println("Saved game for " + p.playerName + ".");
Server.lastMassSave = System.currentTimeMillis();
}
HighscoresHandler hs = new HighscoresHandler();
String[] highscores = new String[]{
"@dre@Highscores",
"",
"Top 5 Total Level:",
hs.getRank(player, 0, "level"), hs.getRank(player,1, "level"), hs.getRank(player,2, "level"), hs.getRank(player,3, "level"), hs.getRank(player,4, "level"),
hs.getRank(player, 0, "level"),
hs.getRank(player, 1, "level"),
hs.getRank(player, 2, "level"),
hs.getRank(player, 3, "level"),
hs.getRank(player, 4, "level"),
"",
"Top 5 Wealthiest Players:",
hs.getRank(player,0, "gold"), hs.getRank(player,1, "gold"), hs.getRank(player,2, "gold"), hs.getRank(player,3, "gold"), hs.getRank(player, 4, "gold"),
hs.getRank(player, 0, "gold"),
hs.getRank(player, 1, "gold"),
hs.getRank(player, 2, "gold"),
hs.getRank(player, 3, "gold"),
hs.getRank(player, 4, "gold"),
"",
"Top 5 Highest Total Damage:",
hs.getRank(player,0, "damage"), hs.getRank(player,1, "damage"), hs.getRank(player,2, "damage"), hs.getRank(player, 3, "damage"), hs.getRank(player, 4, "damage"),
hs.getRank(player, 0, "damage"),
hs.getRank(player, 1, "damage"),
hs.getRank(player, 2, "damage"),
hs.getRank(player, 3, "damage"),
hs.getRank(player, 4, "damage"),
};
for (int i = 8144; i < 8245; i++) {
player.getPlayerAssistant().sendFrame126("", i);
}
for (int i = 8144; i < 8144 + highscores.length; i++) {
player.getPlayerAssistant().sendFrame126(highscores[i - 8144], i+3);
// Clear all lines
for (int i = 8144; i < 8195; i++) player.getPlayerAssistant().sendFrame126("", i);
player.getPlayerAssistant().sendFrame126("@dre@Highscores", 8144);
int lineNumber = 8147;
for (String line : highscores){
System.out.println(line + " - " + lineNumber);
player.getPlayerAssistant().sendFrame126(line, lineNumber++);
}
player.getPlayerAssistant().showInterface(8134);