From c0503f5446581482fc77c4c6b099072f2a0eaf4b Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Tue, 26 Mar 2024 13:23:01 +0100 Subject: [PATCH] monthly best time and other minecleaner letter color --- .../minecleaner/MinecleanerManager.java | 12 +++++++---- .../minecleaner/PlayerStatisticsData.java | 9 ++++++++- .../minecleaner/commands/StatsCommand.java | 3 ++- .../minecleaner/utils/MinecleanerHeads.java | 20 +++++++++---------- 4 files changed, 28 insertions(+), 16 deletions(-) diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java index 62b3f0a..12fdbf4 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java @@ -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 kWonGamesPlayedSize = new HashMap<>(); HashMap kWonGamesPlayedSizeMonth = new HashMap<>(); HashMap kSizeTimeRecord = new HashMap<>(); + HashMap kSizeTimeRecordMonth = new HashMap<>(); HashMap kSizeTotalGamesPlayed = new HashMap<>(); HashMap 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 sizeWonGames = new HashMap<>(); HashMap sizeWonGamesMonth = new HashMap<>(); HashMap sizeTimeRecord = new HashMap<>(); + HashMap sizeTimeRecordMonth = new HashMap<>(); HashMap sizeTotalGamesPlayed = new HashMap<>(); HashMap 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); } diff --git a/src/main/java/de/lunarakai/minecleaner/PlayerStatisticsData.java b/src/main/java/de/lunarakai/minecleaner/PlayerStatisticsData.java index a111357..ca70153 100644 --- a/src/main/java/de/lunarakai/minecleaner/PlayerStatisticsData.java +++ b/src/main/java/de/lunarakai/minecleaner/PlayerStatisticsData.java @@ -15,6 +15,7 @@ public class PlayerStatisticsData { private int pointsAcquiredTotal; private int pointsAcquiredMonth; private HashMap bestTime; + private HashMap bestTimeThisMonth; public PlayerStatisticsData(UUID playerUUID, String playerName, HashMap totalGamesPlayedSize, @@ -25,7 +26,8 @@ public class PlayerStatisticsData { HashMap gamesPlayedSizeThisMonth, int pointsAcquiredTotal, int pointsAcquiredMonth, - HashMap bestTime) { + HashMap bestTime, + HashMap 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); + } } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java index 792ba74..b5094db 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java @@ -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)) + ")"); } } } diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java index b56bc16..6dbb368 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerHeads.java @@ -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;