diff --git a/src/main/java/com/alttd/fishingevent/config/Messages.java b/src/main/java/com/alttd/fishingevent/config/Messages.java
index 3aea166..da63e3d 100644
--- a/src/main/java/com/alttd/fishingevent/config/Messages.java
+++ b/src/main/java/com/alttd/fishingevent/config/Messages.java
@@ -147,4 +147,16 @@ public class Messages extends AbstractConfig {
WINNER_FORMAT = config.getString(prefix, "winner-format", WINNER_FORMAT);
}
}
+
+ public static class OTHER_MESSAGES {
+ private static final String prefix = "other-messages.";
+
+ public static String NEW_LEADER = " just caught a new longest fish! They caught a cm";
+
+ @SuppressWarnings("unused")
+ private static void load() {
+ NEW_LEADER = config.getString(prefix, "new-leader", NEW_LEADER);
+ }
+ }
+
}
diff --git a/src/main/java/com/alttd/fishingevent/scoreboard/ScoreboardManager.java b/src/main/java/com/alttd/fishingevent/scoreboard/ScoreboardManager.java
index d33e97f..d72a8a7 100644
--- a/src/main/java/com/alttd/fishingevent/scoreboard/ScoreboardManager.java
+++ b/src/main/java/com/alttd/fishingevent/scoreboard/ScoreboardManager.java
@@ -1,7 +1,10 @@
package com.alttd.fishingevent.scoreboard;
+import com.alttd.fishingevent.config.Messages;
import com.alttd.fishingevent.fish.Fish;
import net.kyori.adventure.text.minimessage.MiniMessage;
+import net.kyori.adventure.text.minimessage.tag.resolver.Placeholder;
+import net.kyori.adventure.text.minimessage.tag.resolver.TagResolver;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
import org.bukkit.scoreboard.*;
@@ -16,6 +19,7 @@ public class ScoreboardManager {
private Objective objective;
private final String scoreName = "Fish Leaderboard";
private double tenthLength = 0;
+ private double firstLength = 0;
private final HashMap playerScores = new HashMap<>(); //TODO save and load this along with the points data
private ScoreboardManager() {
@@ -46,10 +50,22 @@ public class ScoreboardManager {
return;
}
- playerScores.put(uuid, new PlayerScore(player, fishLength, fish));
+ playerScore = new PlayerScore(player, fishLength, fish);
+ playerScores.put(uuid, playerScore);
if (fishLength <= tenthLength)
return;
updateScoreBoard();
+
+ if (!(fishLength > firstLength)) {
+ return;
+ }
+ firstLength = fishLength;
+ player.getServer().sendMessage(MiniMessage.miniMessage().deserialize(Messages.OTHER_MESSAGES.NEW_LEADER, TagResolver.resolver(
+ Placeholder.component("player", playerScore.player().displayName()),
+ Placeholder.component("rarity", playerScore.fish().getRarity().displayName()),
+ Placeholder.component("fish", playerScore.fish().fishName()),
+ Placeholder.parsed("length", String.format("%.2f", playerScore.biggestFish()))
+ )));
}
private void updateScoreBoard() {