Skip to content

Commit d7b14c2

Browse files
committed
Refactoring:
De-duplicates methods in the Paper/Folia HUD. Change Set<Player> to Set<UUID> in Paper/FoliaHUD. Change PermHUD and MapHUD constructors to take in HUD instead of building them internally.
1 parent 63e182c commit d7b14c2

File tree

6 files changed

+44
-58
lines changed

6 files changed

+44
-58
lines changed

Towny/src/main/java/com/palmergames/bukkit/towny/huds/HUDManager.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.palmergames.bukkit.towny.event.PlayerChangePlotEvent;
66
import com.palmergames.bukkit.towny.event.TownBlockSettingsChangedEvent;
77
import com.palmergames.bukkit.towny.huds.providers.FoliaHUD;
8+
import com.palmergames.bukkit.towny.huds.providers.HUD;
89
import com.palmergames.bukkit.towny.huds.providers.PaperHUD;
910
import com.palmergames.bukkit.towny.huds.providers.ServerHUD;
1011
import com.palmergames.bukkit.towny.object.WorldCoord;
@@ -31,10 +32,12 @@ public class HUDManager implements Listener {
3132
public HUDManager(Towny plugin) {
3233
boolean isFolia = Towny.getPlugin().isFolia();
3334

34-
PermHUD permHud = new PermHUD("permHUD", PERM_HUD_OBJECTIVE_NAME, (p) -> PermHUD.updatePerms(p), (p, wc) -> PermHUD.updatePerms(p, (WorldCoord) wc));
35+
HUD permHUD = new HUD("permHUD", PERM_HUD_OBJECTIVE_NAME, (p) -> PermHUD.updatePerms(p), (p, wc) -> PermHUD.updatePerms(p, (WorldCoord) wc));
36+
PermHUD permHud = new PermHUD(permHUD);
3537
huds.put("permHUD", isFolia ? new FoliaHUD(permHud) : new PaperHUD(permHud));
3638

37-
MapHUD mapHud = new MapHUD("mapHUD", MAP_HUD_OBJECTIVE_NAME, (p) -> MapHUD.updateMap(p), (p, wc) -> MapHUD.updateMap(p, (WorldCoord) wc));
39+
HUD mapHUD = new HUD("mapHUD", MAP_HUD_OBJECTIVE_NAME, (p) -> MapHUD.updateMap(p), (p, wc) -> MapHUD.updateMap(p, (WorldCoord) wc));
40+
MapHUD mapHud = new MapHUD(mapHUD);
3841
huds.put("mapHUD", isFolia ? new FoliaHUD(mapHud) : new PaperHUD(mapHud));
3942
}
4043

Towny/src/main/java/com/palmergames/bukkit/towny/huds/MapHUD.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,6 @@
2121
import java.util.LinkedList;
2222
import java.util.Map;
2323
import java.util.UUID;
24-
import java.util.function.BiConsumer;
25-
import java.util.function.Consumer;
26-
2724
import net.kyori.adventure.text.Component;
2825
import org.bukkit.World;
2926
import org.bukkit.entity.Player;
@@ -35,8 +32,8 @@ public class MapHUD implements HUDImplementer {
3532
private static final int halfMapLineWidth = mapLineWidth/2;
3633
private static final int halfMapLineHeight = mapLineHeight/2;
3734

38-
public MapHUD(String name, String objectiveName, Consumer<Player> playerConsumer, BiConsumer<Player, Object> playerWithObjectConsumer) {
39-
this.hud = new HUD(name, objectiveName, playerConsumer, playerWithObjectConsumer);
35+
public MapHUD(HUD hud) {
36+
this.hud = hud;
4037
}
4138

4239
@Override

Towny/src/main/java/com/palmergames/bukkit/towny/huds/PermHUD.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,14 @@
2121
import net.kyori.adventure.text.Component;
2222
import java.util.LinkedList;
2323
import java.util.UUID;
24-
import java.util.function.BiConsumer;
25-
import java.util.function.Consumer;
26-
2724
import org.bukkit.World;
2825
import org.bukkit.entity.Player;
2926

3027
public class PermHUD implements HUDImplementer {
3128
final HUD hud;
3229

33-
public PermHUD(String name, String objectiveName, Consumer<Player> playerConsumer, BiConsumer<Player, Object> playerWithObjectConsumer) {
34-
this.hud = new HUD(name, objectiveName, playerConsumer, playerWithObjectConsumer);
30+
public PermHUD(HUD hud) {
31+
this.hud = hud;
3532
}
3633

3734
@Override

Towny/src/main/java/com/palmergames/bukkit/towny/huds/providers/FoliaHUD.java

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,13 +19,13 @@
1919

2020
public class FoliaHUD implements ServerHUD {
2121

22-
final String objectiveName;
2322
final String displayName;
23+
final String objectiveName;
2424
final Consumer<Player> playerConsumer;
2525
final BiConsumer<Player, Object> playerWithObjectConsumer;
2626

2727
Map<UUID, FastBoard> boardMap = new HashMap<>();
28-
Set<Player> players = new HashSet<>();
28+
Set<UUID> playerUUIDs = new HashSet<>();
2929

3030

3131
public FoliaHUD(HUDImplementer implementer) {
@@ -36,35 +36,24 @@ public FoliaHUD(HUDImplementer implementer) {
3636
this.playerWithObjectConsumer = hud.playerWithObjectConsumer;
3737
}
3838

39-
public boolean hasPlayer(Player player) {
40-
return getPlayers().contains(player);
41-
}
42-
43-
public boolean addPlayer(Player player) {
44-
return players.add(player);
45-
}
46-
47-
public boolean removePlayer(Player player) {
48-
return players.remove(player);
49-
}
50-
51-
public Set<Player> getPlayers() {
52-
return players;
39+
public Set<UUID> getPlayerUUIDs() {
40+
return playerUUIDs;
5341
}
5442

5543
@Override
5644
public boolean toggleOff(Player player) {
5745
FastBoard board = boardMap.remove(player.getUniqueId());
5846
if (board != null)
5947
board.delete();
60-
48+
removePlayer(player);
6149
return true;
6250
}
6351

6452
@Override
6553
public boolean toggleOn(Player player) {
6654
FastBoard board = new FastBoard(player);
6755
boardMap.put(player.getUniqueId(), board);
56+
addPlayer(player);
6857
updateHUD(player);
6958
return true;
7059
}

Towny/src/main/java/com/palmergames/bukkit/towny/huds/providers/PaperHUD.java

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ public class PaperHUD implements ServerHUD {
3232
final BiConsumer<Player, Object> playerWithObjectConsumer;
3333

3434
Map<UUID, Scoreboard> boardMap = new HashMap<>();
35-
Set<Player> players = new HashSet<>();
35+
Set<UUID> playerUUIDs = new HashSet<>();
3636

3737
public PaperHUD(HUDImplementer implementer) {
3838
HUD hud = implementer.getHUD();
@@ -42,30 +42,8 @@ public PaperHUD(HUDImplementer implementer) {
4242
this.playerWithObjectConsumer = hud.playerWithObjectConsumer;
4343
}
4444

45-
public boolean hasPlayer(Player player) {
46-
return getPlayers().contains(player);
47-
}
48-
49-
public boolean addPlayer(Player player) {
50-
return players.add(player);
51-
}
52-
53-
public boolean removePlayer(Player player) {
54-
boardMap.remove(player.getUniqueId());
55-
return players.remove(player);
56-
}
57-
58-
public Set<Player> getPlayers() {
59-
return players;
60-
}
61-
62-
@Nullable
63-
private Objective getObjective(UUID uuuid) {
64-
Scoreboard board = boardMap.get(uuuid);
65-
if (board == null)
66-
return null;
67-
Objective objective = board.getObjective(objectiveName);
68-
return objective;
45+
public Set<UUID> getPlayerUUIDs() {
46+
return playerUUIDs;
6947
}
7048

7149
@Override
@@ -133,4 +111,13 @@ public void updateHUD(Player player, Object object) {
133111
public void updateHUD(Player player) {
134112
playerConsumer.accept(player);
135113
}
114+
115+
@Nullable
116+
private Objective getObjective(UUID uuuid) {
117+
Scoreboard board = boardMap.get(uuuid);
118+
if (board == null)
119+
return null;
120+
Objective objective = board.getObjective(objectiveName);
121+
return objective;
122+
}
136123
}

Towny/src/main/java/com/palmergames/bukkit/towny/huds/providers/ServerHUD.java

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,12 @@
33
import java.util.List;
44
import java.util.Set;
55
import java.util.UUID;
6+
import java.util.stream.Collectors;
67

78
import org.bukkit.entity.Player;
89

10+
import com.palmergames.bukkit.util.BukkitTools;
11+
912
import net.kyori.adventure.text.Component;
1013

1114
public abstract interface ServerHUD {
@@ -14,13 +17,23 @@ public abstract interface ServerHUD {
1417

1518
boolean toggleOn(Player player);
1619

17-
boolean hasPlayer(Player player);
20+
public default boolean hasPlayer(Player player) {
21+
return getPlayerUUIDs().contains(player.getUniqueId());
22+
}
23+
24+
public default boolean addPlayer(Player player) {
25+
return getPlayerUUIDs().add(player.getUniqueId());
26+
}
1827

19-
boolean addPlayer(Player player);
28+
public default boolean removePlayer(Player player) {
29+
return getPlayerUUIDs().remove(player.getUniqueId());
30+
}
2031

21-
boolean removePlayer(Player player);
32+
public Set<UUID> getPlayerUUIDs();
2233

23-
Set<Player> getPlayers();
34+
public default Set<Player> getPlayers() {
35+
return getPlayerUUIDs().stream().map(uuid -> BukkitTools.getPlayer(uuid)).collect(Collectors.toSet());
36+
}
2437

2538
boolean isActive(Player player);
2639

0 commit comments

Comments
 (0)