diff --git a/src/me/mrCookieSlime/Slimefun/api/TickerTask.java b/src/me/mrCookieSlime/Slimefun/api/TickerTask.java index 81599815c..19c8e5860 100644 --- a/src/me/mrCookieSlime/Slimefun/api/TickerTask.java +++ b/src/me/mrCookieSlime/Slimefun/api/TickerTask.java @@ -6,6 +6,7 @@ import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; import java.util.LinkedHashMap; +import java.util.List; import java.util.Map; import java.util.Set; import java.util.logging.Level; @@ -20,6 +21,7 @@ import org.bukkit.block.Block; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; +import io.github.thebusybiscuit.cscorelib2.chat.ChatColors; import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage; import me.mrCookieSlime.CSCoreLibPlugin.general.Chat.TellRawMessage.HoverAction; import me.mrCookieSlime.Slimefun.SlimefunPlugin; @@ -200,20 +202,20 @@ public class TickerTask implements Runnable { sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6Skipped Machines: &e" + skipped)); sender.sendMessage(""); sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6Ticking Machines:")); - + + List> timings = machineCount.keySet().stream() + .map(key -> new AbstractMap.SimpleEntry<>(key, machineTimings.getOrDefault(key, 0L))) + .sorted((o1, o2) -> o2.getValue().compareTo(o1.getValue())) + .collect(Collectors.toList()); + if (sender instanceof Player) { TellRawMessage tellraw = new TellRawMessage(); tellraw.addText(" &7&oHover for more Info"); StringBuilder hover = new StringBuilder(); int hidden = 0; - Map timings = machineCount.keySet().stream() - .map(key -> new AbstractMap.SimpleEntry<>(key, machineTimings.getOrDefault(key, 0L))) - .sorted((o1, o2) -> o2.getValue().compareTo(o1.getValue())) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new)); - - for (Map.Entry entry : timings.entrySet()) { - int count = machineCount.getOrDefault(entry.getKey(), 0); + for (Map.Entry entry : timings) { + int count = machineCount.get(entry.getKey()); if (entry.getValue() > 0) hover.append("\n&c").append(entry.getKey()).append(" - ") .append(count).append("x &7(").append(entry.getValue()).append("ms, ") @@ -233,30 +235,33 @@ public class TickerTask implements Runnable { } else { int hidden = 0; - - for (Map.Entry entry: machineCount.entrySet()) { - long timings = machineTimings.get(entry.getKey()); - if (timings > 0) sender.sendMessage(ChatColor.translateAlternateColorCodes('&', " &e" + entry.getKey() + " - " + entry.getValue()+ "x &7(" + timings + "ms)")); - else hidden++; + + for (Map.Entry entry: timings) { + int count = machineCount.get(entry.getKey()); + if (entry.getValue() > 0) + sender.sendMessage(ChatColors.color(" &e" + entry.getKey() + " - " + count + "x &7(" + entry.getValue() + "ms" + + ", " + (entry.getValue() / count) + "ms avg/machine)")); + else + hidden++; } - + sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&c+ &4" + hidden + " Hidden")); } sender.sendMessage(""); sender.sendMessage(ChatColor.translateAlternateColorCodes('&', "&6Ticking Chunks:")); - + + timings = chunkTimings.entrySet().stream() + .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) + .collect(Collectors.toList()); + if (sender instanceof Player) { TellRawMessage tellraw = new TellRawMessage(); tellraw.addText(" &7&oHover for more Info"); StringBuilder hover = new StringBuilder(); int hidden = 0; - Map timings = chunkTimings.entrySet().stream() - .sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())) - .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (e1, e2) -> e1, LinkedHashMap::new)); - - for (Map.Entry entry: timings.entrySet()) { + for (Map.Entry entry: timings) { if (!chunksSkipped.contains(entry.getKey())) { if (entry.getValue() > 0) hover.append("\n&c").append(entry.getKey().replace("CraftChunk", "")).append(" - ") @@ -278,7 +283,7 @@ public class TickerTask implements Runnable { } else { int hidden = 0; - for (Map.Entry entry: chunkTimings.entrySet()) { + for (Map.Entry entry: timings) { if (!chunksSkipped.contains(entry.getKey())) { if (entry.getValue() > 0) sender.sendMessage(" &c" + entry.getKey().replace("CraftChunk", "") + " - " + (chunkItemCount.getOrDefault(entry.getKey(), 0)) + "x &7(" + entry.getValue() + "ms)");