From d8aefba51b015676c9edcb26cef3c91332977ca1 Mon Sep 17 00:00:00 2001 From: Lixfel Date: Fri, 2 Apr 2021 21:42:17 +0200 Subject: [PATCH] Continouus updating scoreboard Signed-off-by: Lixfel --- .../fightsystem/listener/FightScoreboard.java | 52 +++++++++---------- 1 file changed, 25 insertions(+), 27 deletions(-) diff --git a/FightSystem_Main/src/de/steamwar/fightsystem/listener/FightScoreboard.java b/FightSystem_Main/src/de/steamwar/fightsystem/listener/FightScoreboard.java index 40c4c2e..0c5ccab 100644 --- a/FightSystem_Main/src/de/steamwar/fightsystem/listener/FightScoreboard.java +++ b/FightSystem_Main/src/de/steamwar/fightsystem/listener/FightScoreboard.java @@ -41,11 +41,12 @@ import org.bukkit.scoreboard.Scoreboard; import java.util.*; -public class FightScoreboard implements Listener { +public class FightScoreboard implements Listener, ScoreboardCallback { private static final Set fullScoreboard = EnumSet.of(FightState.RUNNING, FightState.SPECTATE); private int index = 0; + private String title = ""; private final HashMap scores = new HashMap<>(); @@ -55,22 +56,12 @@ public class FightScoreboard implements Listener { public FightScoreboard(){ new StateDependentListener(ArenaMode.All, FightState.All, this); - new StateDependentTask(ArenaMode.All, FightState.All, this::nextIndexDisplay, 0, 200); + new StateDependentTask(ArenaMode.All, FightState.All, this::updateScoreboard, 0, 20); } @EventHandler public void onPlayerJoin(PlayerJoinEvent event) { - SWScoreboard.createScoreboard(event.getPlayer(), new ScoreboardCallback() { - @Override - public HashMap getData() { - return scores; - } - - @Override - public String getTitle() { - return title; - } - }); + SWScoreboard.createScoreboard(event.getPlayer(), this); } @EventHandler @@ -114,20 +105,17 @@ public class FightScoreboard implements Listener { } } - private void nextIndexDisplay() { - index++; - if(index > 2) - index = 0; - FightTeam team = null; - if(index == 1) - team = Fight.getRedTeam(); - if(index == 2) - team = Fight.getBlueTeam(); - scores.clear(); - if(team != null) - teamScoreboard(team); - else - generalScoreboard(); + private void updateScoreboard() { + switch((index++ / 10) % 3){ + case 0: + generalScoreboard(); + break; + case 1: + teamScoreboard(Fight.getBlueTeam()); + break; + case 2: + teamScoreboard(Fight.getRedTeam()); + } } private void setTitle(String t) { @@ -139,4 +127,14 @@ public class FightScoreboard implements Listener { scores.put(string, i); RecordSystem.scoreboardData(string, i); } + + @Override + public String getTitle() { + return title; + } + + @Override + public HashMap getData() { + return scores; + } } -- 2.39.2