fixed leaderboard with new PointsWinScore class
This commit is contained in:
@@ -8,11 +8,21 @@ import java.time.Duration;
|
||||
import java.util.Set;
|
||||
|
||||
public class FirstWinsScore extends Score {
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p, int points) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p) {
|
||||
getScores().add(p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResult(Player p, int points) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TranslatableMessage scoreMessage() {
|
||||
return new TitleMessage(Duration.ofMillis(1000), Duration.ofSeconds(1)).appendTranslated("score#finish");
|
||||
|
@@ -8,9 +8,19 @@ import java.time.Duration;
|
||||
import java.util.Set;
|
||||
|
||||
public class LastWinsScore extends Score {
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p, int points) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p) {
|
||||
getScores().add(0, p);
|
||||
getScores().addFirst(p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResult(Player p, int points) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -10,11 +10,21 @@ public class NoScore extends Score {
|
||||
protected void checkGameEnd() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p, int points) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResult(Player p, int points) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TranslatableMessage scoreMessage() {
|
||||
return null;
|
||||
|
@@ -0,0 +1,40 @@
|
||||
package eu.mhsl.minenet.minigames.score;
|
||||
|
||||
import eu.mhsl.minenet.minigames.message.TranslatableMessage;
|
||||
import eu.mhsl.minenet.minigames.message.type.TitleMessage;
|
||||
import eu.mhsl.minenet.minigames.util.MapUtil;
|
||||
import net.minestom.server.entity.Player;
|
||||
import org.apache.commons.lang3.NotImplementedException;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.*;
|
||||
|
||||
public class PointsWinScore extends Score {
|
||||
private Map<Set<Player>, Integer> scoreOrder = new HashMap<>();
|
||||
|
||||
@Override
|
||||
public void insertResultImplementation(Set<Player> p, int points) {
|
||||
this.scoreOrder.put(p, points);
|
||||
this.scoreOrder = MapUtil.sortByValue(this.scoreOrder);
|
||||
getScores().clear();
|
||||
this.scoreOrder.forEach((player, integer) -> getScores().addFirst(player));
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void insertResultImplementation(Set<Player> p) {
|
||||
throw new NotImplementedException("PointsWinScore does not support adding entries without points");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insertResult(Player p, int points) {
|
||||
if(hasResult(p)) return;
|
||||
this.scoreMessage().send(p);
|
||||
this.insertResultImplementation(Set.of(p), points);
|
||||
this.checkGameEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected TranslatableMessage scoreMessage() {
|
||||
return new TitleMessage(Duration.ofMillis(1000), Duration.ofSeconds(1)).appendTranslated("score#death");
|
||||
}
|
||||
}
|
@@ -45,7 +45,13 @@ public abstract class Score {
|
||||
setDone();
|
||||
}
|
||||
}
|
||||
|
||||
public abstract void insertResultImplementation(Set<Player> p, int points);
|
||||
|
||||
protected abstract void insertResultImplementation(Set<Player> p);
|
||||
|
||||
public abstract void insertResult(Player p, int points);
|
||||
|
||||
protected abstract TranslatableMessage scoreMessage();
|
||||
|
||||
public void insertResult(Player p) {
|
||||
|
Reference in New Issue
Block a user