From 2ca97c88fcc32b2fee563d3e9d9497e3b0e74a62 Mon Sep 17 00:00:00 2001 From: lars Date: Wed, 24 Dec 2025 00:49:50 +0100 Subject: [PATCH] made score staying the highest ever reached --- .../scoreboard/EventScoreboardBuilder.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/scoreboard/EventScoreboardBuilder.java b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/scoreboard/EventScoreboardBuilder.java index 7cb2965..d130ef4 100644 --- a/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/scoreboard/EventScoreboardBuilder.java +++ b/event/src/main/java/eu/mhsl/craftattack/spawn/event/appliances/eventController/scoreboard/EventScoreboardBuilder.java @@ -53,9 +53,6 @@ public class EventScoreboardBuilder { objective.numberFormat(NumberFormat.blank()); UUID uuid = p.getUniqueId(); - scoreList.removeIf(e -> e.playerUuid().equals(uuid)); - scoreList.add(new EventScoreEntry(uuid, p.getName(), this.scorable.getScore(p))); - scoreList.sort(this.scoreComparator); int size = scoreList.size(); @@ -140,8 +137,19 @@ public class EventScoreboardBuilder { } private void updateScore(Player p) { - this.playerScores.removeIf(entry -> entry.playerUuid().equals(p.getUniqueId())); - this.playerScores.add(new EventScoreEntry(p.getUniqueId(), p.getName(), this.scorable.getScore(p))); + EventScoreEntry previousEntry = this.playerScores.stream() + .filter(entry -> entry.playerUuid().equals(p.getUniqueId())) + .findFirst() + .orElse(null); + if(previousEntry == null) { + this.playerScores.add(new EventScoreEntry(p.getUniqueId(), p.getName(), this.scorable.getScore(p))); + return; + } + int currentScore = this.scorable.getScore(p); + if(previousEntry.score() < currentScore) { + this.playerScores.removeIf(entry -> entry.playerUuid().equals(p.getUniqueId())); + this.playerScores.add(new EventScoreEntry(p.getUniqueId(), p.getName(), currentScore)); + } } public void updateScoreboards() {