From 430e827e322bf3c282e825035d276cb146dd6d5f Mon Sep 17 00:00:00 2001 From: Teriuihi Date: Mon, 25 Sep 2023 03:45:55 +0200 Subject: [PATCH] Added logging top 10 PlayerScore in case of crash --- .../java/com/alttd/fishingevent/points/SaveTask.java | 8 ++++++++ .../alttd/fishingevent/scoreboard/PlayerScore.java | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/alttd/fishingevent/points/SaveTask.java b/src/main/java/com/alttd/fishingevent/points/SaveTask.java index 8d65837..246304b 100644 --- a/src/main/java/com/alttd/fishingevent/points/SaveTask.java +++ b/src/main/java/com/alttd/fishingevent/points/SaveTask.java @@ -1,6 +1,7 @@ package com.alttd.fishingevent.points; import com.alttd.fishingevent.FishingEvent; +import com.alttd.fishingevent.scoreboard.ScoreboardManager; import com.alttd.fishingevent.util.Logger; import it.unimi.dsi.fastutil.io.BinIO; @@ -8,6 +9,7 @@ import java.io.File; import java.io.IOException; import java.nio.file.Files; import java.nio.file.StandardCopyOption; +import java.util.stream.Collectors; public class SaveTask implements Runnable { @@ -23,6 +25,12 @@ public class SaveTask implements Runnable { @Override public void run() { save(); + logScoreboard(); + } + + private void logScoreboard() { + String top10 = ScoreboardManager.getInstance().getTop10().stream().map(Object::toString).collect(Collectors.joining("\n")); + logger.info("Logging top10 in case of crash: \n" + top10); } private synchronized void save() { diff --git a/src/main/java/com/alttd/fishingevent/scoreboard/PlayerScore.java b/src/main/java/com/alttd/fishingevent/scoreboard/PlayerScore.java index 1a819ee..c5e06a2 100644 --- a/src/main/java/com/alttd/fishingevent/scoreboard/PlayerScore.java +++ b/src/main/java/com/alttd/fishingevent/scoreboard/PlayerScore.java @@ -3,5 +3,15 @@ package com.alttd.fishingevent.scoreboard; import com.alttd.fishingevent.fish.Fish; import org.bukkit.entity.Player; -public record PlayerScore(Player player, double biggestFish, Fish fish){ +public record PlayerScore(Player player, double biggestFish, Fish fish) { + @Override + public String toString() { + return "PlayerScore{" + + "player name=" + player.getName() + + ", player uuid= " + player.getUniqueId() + + ", biggest fish size=" + biggestFish + + ", fish rarity=" + fish.getRarity() + + ", fish name=" + fish.normalFishName() + + '}'; + } }