|
3 | 3 | import cn.nukkit.Player; |
4 | 4 | import cn.nukkit.Server; |
5 | 5 | import lombok.Getter; |
6 | | -import lombok.ToString; |
7 | 6 | import me.iwareq.scoreboard.line.ScoreboardLine; |
8 | 7 | import me.iwareq.scoreboard.manager.ScoreboardManager; |
9 | 8 | import me.iwareq.scoreboard.packet.RemoveObjectivePacket; |
|
20 | 19 | import java.util.Set; |
21 | 20 | import java.util.function.BiConsumer; |
22 | 21 |
|
23 | | -@ToString |
24 | 22 | public class Scoreboard { |
25 | 23 |
|
26 | | - @Getter |
27 | | - private final Set<Player> viewers = new HashSet<>(); |
28 | | - |
29 | 24 | private final String displayName; |
30 | | - |
31 | | - private final Map<Integer, ScoreboardLine> lines = new HashMap<>(); |
32 | | - |
33 | 25 | private final BiConsumer<Scoreboard, Player> callback; |
34 | | - |
35 | 26 | private final ScoreboardManager manager; |
| 27 | + |
36 | 28 | @Getter |
37 | | - private final int updateTime; |
| 29 | + private final Set<Player> viewers = new HashSet<>(); |
| 30 | + private final Map<Integer, ScoreboardLine> lines = new HashMap<>(); |
38 | 31 |
|
39 | 32 | private int lastIndex; |
40 | 33 |
|
41 | 34 | public Scoreboard(String displayName, BiConsumer<Scoreboard, Player> callback, int updateTime) { |
42 | 35 | this.displayName = displayName; |
43 | 36 | this.callback = callback; |
44 | | - this.updateTime = updateTime; |
45 | 37 | this.manager = ScoreboardAPI.getInstance().getScoreboardManager(); |
46 | 38 |
|
47 | | - Server.getInstance().getScheduler().scheduleRepeatingTask(new ScoreboardUpdater(this), 20, true); |
| 39 | + Server.getInstance().getScheduler().scheduleRepeatingTask(new ScoreboardUpdater(this), updateTime, true); |
48 | 40 | } |
49 | 41 |
|
50 | 42 | public void setLine(int index, String text) { |
@@ -73,18 +65,18 @@ private void checkLineIndex(int index) { |
73 | 65 | public void refresh() { |
74 | 66 | this.lines.clear(); |
75 | 67 | this.lastIndex = 0; |
76 | | - this.viewers.removeIf(p -> { |
77 | | - boolean remove = !p.isConnected() || !p.isOnline(); |
| 68 | + this.viewers.removeIf(viewer -> { |
| 69 | + boolean remove = !viewer.isConnected() || !viewer.isOnline(); |
78 | 70 | if (remove) { |
79 | | - this.manager.removeScoreboard(p); |
| 71 | + this.manager.removeScoreboard(viewer); |
80 | 72 | } |
81 | 73 |
|
82 | 74 | return remove; |
83 | 75 | }); |
84 | 76 |
|
85 | | - this.viewers.forEach(player -> { |
86 | | - this.hide(player, false); |
87 | | - this.show(player, false); |
| 77 | + this.viewers.forEach(viewer -> { |
| 78 | + this.hide(viewer, false); |
| 79 | + this.show(viewer, false); |
88 | 80 | }); |
89 | 81 | } |
90 | 82 |
|
@@ -112,7 +104,7 @@ private void show(Player player, boolean add) { |
112 | 104 | player.dataPacket(scorePacket); |
113 | 105 |
|
114 | 106 | if (add) { |
115 | | - this.manager.addScoreboard(player, this); |
| 107 | + this.manager.setScoreboard(player, this); |
116 | 108 | } |
117 | 109 | } |
118 | 110 | } |
|
0 commit comments