monthly best time and other minecleaner letter color

This commit is contained in:
LunarAkai 2024-03-26 13:23:01 +01:00
commit c0503f5446
4 changed files with 28 additions and 16 deletions

View file

@ -80,6 +80,7 @@ public class MinecleanerManager {
statisticsTotalGamesPlayed.put(e.getKey(), s);
s = plugin.getCubesideStatistics().getStatisticKey("minecleaner.timerecord." + e.getKey());
s.setIsMonthlyStats(true);
s.setDisplayName("Bestzeit bei Größe " + sizeDisplay);
statisticsTimeRecord.put(e.getKey(), s);
}
@ -232,6 +233,7 @@ public class MinecleanerManager {
HashMap<Integer, PlayerStatisticsQueryKey> kWonGamesPlayedSize = new HashMap<>();
HashMap<Integer, PlayerStatisticsQueryKey> kWonGamesPlayedSizeMonth = new HashMap<>();
HashMap<Integer, PlayerStatisticsQueryKey> kSizeTimeRecord = new HashMap<>();
HashMap<Integer, PlayerStatisticsQueryKey> kSizeTimeRecordMonth = new HashMap<>();
HashMap<Integer, PlayerStatisticsQueryKey> kSizeTotalGamesPlayed = new HashMap<>();
HashMap<Integer, PlayerStatisticsQueryKey> kSizeTotalGamesPlayedMonth = new HashMap<>();
@ -252,6 +254,8 @@ public class MinecleanerManager {
StatisticKey statisticKeyTime = statisticsTimeRecord.get(i);
keys.add(qk = new PlayerStatisticsQueryKey(pStatistics, statisticKeyTime, QueryType.SCORE));
kSizeTimeRecord.put(i, qk);
keys.add(qk = new PlayerStatisticsQueryKey(pStatistics, statisticKeyTime, QueryType.SCORE, TimeFrame.MONTH));
kSizeTimeRecordMonth.put(i, qk);
}
PlayerStatisticsQueryKey kPointsAcquired;
@ -268,6 +272,7 @@ public class MinecleanerManager {
HashMap<Integer, Integer> sizeWonGames = new HashMap<>();
HashMap<Integer, Integer> sizeWonGamesMonth = new HashMap<>();
HashMap<Integer, Integer> sizeTimeRecord = new HashMap<>();
HashMap<Integer, Integer> sizeTimeRecordMonth = new HashMap<>();
HashMap<Integer, Integer> sizeTotalGamesPlayed = new HashMap<>();
HashMap<Integer, Integer> sizeTotalGamesPlayedMonth = new HashMap<>();
@ -275,6 +280,7 @@ public class MinecleanerManager {
sizeWonGames.put(i, c.getOrDefault(kWonGamesPlayedSize.get(i), 0));
sizeWonGamesMonth.put(i, c.getOrDefault(kWonGamesPlayedSizeMonth.get(i), 0));
sizeTimeRecord.put(i, c.getOrDefault(kSizeTimeRecord.get(i), null));
sizeTimeRecordMonth.put(i, c.getOrDefault(kSizeTimeRecordMonth.get(i), null));
sizeTotalGamesPlayed.put(i, c.getOrDefault(kSizeTotalGamesPlayed.get(i), 0));
sizeTotalGamesPlayedMonth.put(i, c.getOrDefault(kSizeTotalGamesPlayedMonth.get(i), 0));
}
@ -288,7 +294,8 @@ public class MinecleanerManager {
sizeWonGamesMonth,
pointsAcquiredTotal,
pointsAcquiredMonth,
sizeTimeRecord));
sizeTimeRecord,
sizeTimeRecordMonth));
});
}
@ -311,9 +318,6 @@ public class MinecleanerManager {
for(StatisticKey statsKey : statisticsTimeRecord.values()) {
statsPlayer.deleteScore(statsKey);
}
for(StatisticKey statsKey : statisticsTimeRecord.values()) {
statsPlayer.deleteScore(statsKey);
}
for(StatisticKey statsKey : statisticsTotalGamesPlayed.values()) {
statsPlayer.deleteScore(statsKey);
}

View file

@ -15,6 +15,7 @@ public class PlayerStatisticsData {
private int pointsAcquiredTotal;
private int pointsAcquiredMonth;
private HashMap<Integer, Integer> bestTime;
private HashMap<Integer, Integer> bestTimeThisMonth;
public PlayerStatisticsData(UUID playerUUID, String playerName,
HashMap<Integer, Integer> totalGamesPlayedSize,
@ -25,7 +26,8 @@ public class PlayerStatisticsData {
HashMap<Integer, Integer> gamesPlayedSizeThisMonth,
int pointsAcquiredTotal,
int pointsAcquiredMonth,
HashMap<Integer, Integer> bestTime) {
HashMap<Integer, Integer> bestTime,
HashMap<Integer, Integer> bestTimeThisMonth) {
this.playerUUID = playerUUID;
this.playerName = playerName;
@ -42,6 +44,7 @@ public class PlayerStatisticsData {
this.pointsAcquiredMonth = pointsAcquiredMonth;
this.bestTime = bestTime;
this.bestTimeThisMonth = bestTimeThisMonth;
}
public UUID getPlayerID() {
@ -91,4 +94,8 @@ public class PlayerStatisticsData {
public Integer getBestTime(Integer widthIndex) {
return bestTime.get(widthIndex);
}
public Integer getBestTimeThisMonth(Integer widthIndex) {
return bestTimeThisMonth.get(widthIndex);
}
}

View file

@ -69,7 +69,8 @@ public class StatsCommand extends SubCommand {
sender.sendMessage(ChatColor.GREEN + " " + sizeName + ":");
sender.sendMessage(ChatColor.BLUE + " Runden gewonnen: " + ChatColor.GREEN + totalWonSize + " von " + totalSize + " (" + MinecleanerStringUtil.percentageString(totalWonSize, totalSize)+ ") " + "(Dieser Monat: " + totalWonMonth + " von " + totalSizeMonth + " (" + MinecleanerStringUtil.percentageString(totalWonMonth, totalSizeMonth)+ ")" + ")");
Integer time = data.getBestTime(e.getKey());
sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-": MinecleanerStringUtil.timeToString(time)));
Integer timeThisMonth = data.getBestTimeThisMonth(e.getKey());
sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-" : MinecleanerStringUtil.timeToString(time)) + " (Dieser Monat: " + (timeThisMonth == null ? "-" : MinecleanerStringUtil.timeToString(timeThisMonth)) + ")");
}
}
}

View file

@ -24,16 +24,16 @@ public enum MinecleanerHeads {
MINESWEEPER_TILE_UNKNOWN("2fe94bff-c5c1-410e-8c99-cf713c850930", "Minesweeper Tile Unknown", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYzdmMWVhMjZlYTVlNjg1YjJmMmY4NzY0OTAxYmU5MTRmZTM1NTU5Y2IxZWNiMWVmMzRiN2U0NmFiYzhlZTU0MCJ9fX0="),
TNT("22a627e8-e68a-4fca-ad91-7d14c36e8556", "Minesweeper TNT", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZGVlYmI4YjAzY2QyN2QzNDM1ZTExNTYxNmI4ZWQzNWRjYjQyN2FmNWIwYjFjYzUyNmQzMjY1YTcyZDQ5M2UifX19"),
EXPLODED("166a5608-5206-49bb-a325-fbcd9564dc2b", "Minesweeper Exploded", "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjgzMWQ1NzIxOTUwZWZhOWFhNzk5NjdlYjE5MTZhYmViNjRjOTc4ZWE4NTkzYTBjNjgzMzU0ODA5YzZjMzYxZCJ9fX0="),
MINESWEEPER_LETTER_M("a9046a9a-cf3a-4171-971d-6752561c1962", "Minesweeper Letter M", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTZmZTljNTlhNGE2ZTg3MzRlZjFmMGIzNWFkNzFjNjM1ZjY2OTMzYzcxOWEwMjA4NGYxZjc1YTY0MzgyYzJhNCIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_I("3c3409c6-7671-4103-b2cf-42340c8689c1", "Minesweeper Letter I", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMzQxYjYxNzFhNjM5MmZkMTU0NDNhN2M5Y2E2ZjEwOGE1OGM3ZmUyZDgxNDZiN2VmZTk3OTQ0ODQxNTJhMWQ5ZCIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_N("015bd450-d99a-41ac-a313-5fc7eb68dad6", "Minesweeper Letter N", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTFkZGEwY2MwZTQwNzM1MTQ0MmVlNTE4MGIzMGYwMzZmNWM3ODI5MTk5NGNmYTgwZjc3ZTQyNmI1NjM1MmM2MiIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_E("dd3290e5-b62b-4e3e-977a-39d44c782ce1", "Minesweeper Letter E", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjRlOTg4MDQ3ZWQwYTFlZDFkZjdhZTFlM2ViZDAyZTQ2ZmY5YWM5NGIzYmEwYTY2OWMzNDExMDRjNDY2NTYwMiIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_S("9ac8c7b4-e62e-40f6-b03a-29ee70fe3788", "Minesweeper Letter S", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZTExMTI3NmU0ZjU0MDdhNzc1ZWNmNTRlZGRiMzM4Y2VjYTI0Yzg1MmY0OGYzMjQ3NDkzZTU4YzU4MDEwZmE3ZCIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_W("6d580f6c-11ce-4af5-ac20-b5214a0bd901", "Minesweeper Letter W", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjk2MjZiOTg2NWE0OGE4MGU3YzVlMTY0MmZkZWUzMDczN2IzMGE0MjcyYWJiNWE3ZTc5Njc5MjFiODRmNmFhZiIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_P("922fb986-d434-4509-9bef-2ba1c3af753c", "Minesweeper Letter P", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvYmIyNmNlODI4ZmE5Y2JlMzBlYWIwMDVhNGQzNzA3YzVmZGY0Yzg0MWI0ZGJlNjA5OGZhN2MzMGE2YWUzZGIwYSIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_R("3eacba28-ad1a-446a-beb4-824f545353d0", "Minesweeper Letter R", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjdjOWUwYzFkNzBlNDIzNzI0Y2QwZjJlN2IwNDM1N2I4MDVmZTNmZWM5NzJkN2U4NDRmMDZhNjJjODYzNGU1MiIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_MINUS("7f15a38b-fae8-4b0a-908f-93f72fea0c5f", "Minesweeper Letter Minus", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzcxYzNkOWQwZGUzODQ4Mjg3MGY0MTlmMGRiYWFiZjM4NGVlODFmZTI4Y2EzMTA5ZWQyYmMwOTM0NzIyYWFjNiIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_M("ea93f08d-3971-42c8-bf40-8adaa8d269b0", "Minesweeper Letter M", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNDRjNmRjNGVjOTI3NjhkY2JhNzBiNGI5ZDAzZGU4YjBkNDgxYTNhOTZkODZkNzhmNTlkMjhlZDdiMGFlN2JjIgogICAgfQogIH0KfQ=="),
MINESWEEPER_LETTER_I("7feaa104-c993-4949-9b2b-3c96de70cdc0", "Minesweeper Letter I", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMWMxOGVhZmVmNmQ3YTUyYzQzNWM3NTNmN2ZiNjczODhmODBhM2JlMjcwYmZiOTY0ZmIyMzVjYWQ0NWY5NmVmNSIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_N("5e85f057-57fd-481b-a5ce-216b6d19993b", "Minesweeper Letter N", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOTRjZThjZjFjZmU3OTZkZDRkYjVhYTQyNTg1YjFlNjRkYTBkZGI1YzRhZTM2Mzc5MDE3NDVmMGMyM2M1MjI0OSIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_E("d9f8d6a3-107d-416e-9625-df0c0a2188f2", "Minesweeper Letter E", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMThhYWJlN2QyNThjYjk0MTg0ZTRkMTgyZjNmZTc4ZGJlNDA5MTM1ZjEyODQ1NWQ0YzdlOGEzODIzZDYxNTI0ZCIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_S("35b248ae-2c2f-4a96-acdb-7ba050ba9ef6", "Minesweeper Letter S", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZWNkZjA0NGZiN2RkMDc3M2VjYWQwYzhiZDRhOGM2M2FiMmM1ZTczZjNjOGM0MzkzMTg4N2M0MDA0ODI4ZDlkIgogICAgfQogIH0KfQ=="),
MINESWEEPER_LETTER_W("33e92d44-679c-455d-b260-41f8ed7ab69f", "Minesweeper Letter W", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMjY0YWMyM2NiMDJlZGViMDZiNjdjOWE5N2JmNmU0N2FjMDM3YzBjYzA5ODNjOGE1MGUzYTZlOGM1OGU1NDViMyIKICAgIH0KICB9Cn0K"),
MINESWEEPER_LETTER_P("040788dd-fbac-4104-9bdf-fd7cb7bf1755", "Minesweeper Letter P", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZjc0ZjE5MWE3YWE0NjgyZDhkNTAwOTBhNDI1MzIwMGQzYmU4OGM5ODhmMDU1Mzk5Mjg1Njc3ODE4ZmRjMzIzNyIKICAgIH0KICB9Cn0="),
MINESWEEPER_LETTER_R("d43f9988-83c0-4576-a885-769d7f320bdb", "Minesweeper Letter R", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODIyZDdhOTNhMjBmNzczN2VmNGM1ZGMwOWI4YzFkZjUzYjUyNmFiNjFhZWVhMjBjMTQ3YWRlMmNiOTAxNjUiCiAgICB9CiAgfQp9"),
MINESWEEPER_LETTER_MINUS("75e3a9a4-851f-4160-97a7-38f419128745", "Minesweeper Letter Minus", "ewogICJ0ZXh0dXJlcyIgOiB7CiAgICAiU0tJTiIgOiB7CiAgICAgICJ1cmwiIDogImh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmJmM2M2ZGFmOWE2OTg5NGUyYzViNDI2ZWY0NTNlNjNiZmUzY2E1MzVjMDk5M2UzZmE0NzIyMDYxM2I2YjhlZCIKICAgIH0KICB9Cn0"),
;
private ItemStack head;