From 72f53f8aadc812063d5321b343779264349215fd Mon Sep 17 00:00:00 2001 From: LunarAkai Date: Sat, 6 Apr 2024 18:30:33 +0200 Subject: [PATCH] fixed time :3 --- pom.xml | 2 +- .../minecleaner/MinecleanerArena.java | 40 ++++++++----------- .../minecleaner/MinecleanerManager.java | 4 +- .../minecleaner/commands/StatsCommand.java | 4 +- .../utils/MinecleanerStringUtil.java | 20 ++++++++-- 5 files changed, 38 insertions(+), 32 deletions(-) diff --git a/pom.xml b/pom.xml index ba7fbc0..6b04810 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ de.lunarakai Minecleaner - 1.1.0 + 1.1.1 jar Minecleaner diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java index 89ce2f7..f37c358 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerArena.java @@ -225,27 +225,6 @@ public class MinecleanerArena { currentMinecleanerGame = new Game(plugin, BoardSize.boardSizesWidth[widthIndex], BoardSize.boardSizesHeight[widthIndex], BoardSize.mineCounter[widthIndex]); currentMinecleanerGame.start(); showTextDisplay(); - if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0) { - new BukkitRunnable() { - @Override - public void run() { - if(arenaStatus == ArenaStatus.PLAYING && currentPlayer != null) { - updateIngameInfoTexts(); - } - } - }.runTaskTimer(plugin, 20L, 20L); - } - - if(plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) { - new BukkitRunnable() { - @Override - public void run() { - if(arenaStatus == ArenaStatus.PLAYING && currentPlayer != null) { - updateIngameInfoTexts(); - } - } - }.runTaskTimer(plugin, 1L, 1L); - } removeStartHeads(); ingameTime = 0; @@ -253,6 +232,21 @@ public class MinecleanerArena { hasMadeFirstClick = false; arenaStatus = ArenaStatus.PLAYING; currentGameStartTime = System.currentTimeMillis(); + + if((plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0 + || plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) && arenaStatus == ArenaStatus.PLAYING) { + new BukkitRunnable() { + @Override + public void run() { + if(arenaStatus == ArenaStatus.PLAYING && currentPlayer != null) { + ingameTime++; + updateIngameInfoTexts(); + } else { + cancel(); + } + } + }.runTaskTimer(plugin, 1L, 1L); + } } public void addJoiningPlayer(Player player) { @@ -386,8 +380,7 @@ public class MinecleanerArena { private void updateIngameInfoTexts() { String timer = ""; if(plugin.getManager().getSettingsValue("timer", currentPlayer) != 0) { - ingameTime += 1; - timer = ChatColor.GOLD + " Zeit: " + MinecleanerStringUtil.timeToString((ingameTime/20)*1000) + " "; + timer = ChatColor.GOLD + " Zeit: " + MinecleanerStringUtil.timeToString((ingameTime/20)*1000, true) + " "; } if (textDisplay != null) { @@ -401,6 +394,7 @@ public class MinecleanerArena { } textDisplay.text(Component.text(component + newLine + timer + filler)); } + if(plugin.getManager().getSettingsValue("additionaldisplay", currentPlayer) != 0) { String componentActionBar = ChatColor.GREEN + "Flaggen gesetzt: " + flagsPlaced + ChatColor.RED + " Minen insgesamt: " + BoardSize.mineCounter[widthIndex]; currentPlayer.sendActionBar(Component.text(componentActionBar + " " + timer)); diff --git a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java index 2ac61c9..6ba5610 100644 --- a/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java +++ b/src/main/java/de/lunarakai/minecleaner/MinecleanerManager.java @@ -184,9 +184,9 @@ public class MinecleanerManager { if(sg != null) { ps.minScore(sg, millis, isUpdated -> { if(isUpdated != null && isUpdated) { - player.sendMessage(ChatColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis) ); + player.sendMessage(ChatColor.GOLD + "Herzlichen Glückwunsch! Du hast eine neue Bestzeit erreicht! " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) ); } else { - player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis) + ChatColor.YELLOW + " erfolgreich lösen!"); + player.sendMessage(ChatColor.YELLOW + "Glückwunsch, du konntest das " + plugin.getDisplayedPluginName() + "-Feld in " + ChatColor.RED + MinecleanerStringUtil.timeToString(millis, false) + ChatColor.YELLOW + " erfolgreich lösen!"); } }); } diff --git a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java index f87c3a8..ab2e3b4 100644 --- a/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java +++ b/src/main/java/de/lunarakai/minecleaner/commands/StatsCommand.java @@ -71,8 +71,8 @@ public class StatsCommand extends SubCommand { sender.sendMessage(ChatColor.BLUE + " Dieser Monat: " + ChatColor.GREEN + totalWonMonth + " von " + totalSizeMonth + " (" + MinecleanerStringUtil.percentageString(totalWonMonth, totalSizeMonth)+ ")"); Integer time = data.getBestTime(e.getKey()); Integer timeThisMonth = data.getBestTimeThisMonth(e.getKey()); - sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-" : MinecleanerStringUtil.timeToString(time))); - sender.sendMessage(ChatColor.BLUE + " Dieser Monat: " + ChatColor.GREEN + (timeThisMonth == null ? "-" : MinecleanerStringUtil.timeToString(timeThisMonth))); + sender.sendMessage(ChatColor.BLUE + " Bestzeit: " + ChatColor.GREEN + (time == null ? "-" : MinecleanerStringUtil.timeToString(time, false))); + sender.sendMessage(ChatColor.BLUE + " Dieser Monat: " + ChatColor.GREEN + (timeThisMonth == null ? "-" : MinecleanerStringUtil.timeToString(timeThisMonth, false))); } } } diff --git a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java index e0e307a..7693f80 100644 --- a/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java +++ b/src/main/java/de/lunarakai/minecleaner/utils/MinecleanerStringUtil.java @@ -4,7 +4,7 @@ public class MinecleanerStringUtil { private MinecleanerStringUtil() { } - public static String timeToString(long millis) { + public static String timeToString(long millis, boolean shorten) { int sec = (int) (millis / 1000); int min = sec / 60; int hours = min / 60; @@ -12,19 +12,31 @@ public class MinecleanerStringUtil { min = min % 60; StringBuilder timeString = new StringBuilder(); if (hours > 0) { - timeString.append(hours).append(" Stunden"); + String hoursString = " Stunden"; + if(shorten) { + hoursString = " h"; + } + timeString.append(hours).append(hoursString); } if (min > 0 || !timeString.isEmpty()) { if (!timeString.isEmpty()) { timeString.append(", "); } - timeString.append(min).append(" Minuten"); + String minString = " Minuten"; + if(shorten) { + minString = " min"; + } + timeString.append(min).append(minString); } if (sec > 0 || !timeString.isEmpty()) { if (!timeString.isEmpty()) { timeString.append(" und "); } - timeString.append(sec).append(" Sekunden"); + String secondsString = " Sekunden"; + if(shorten) { + secondsString = " s"; + } + timeString.append(sec).append(secondsString); } return timeString.toString(); }