diff --git a/src/main/java/net/minestom/server/adventure/bossbar/BossBarHolder.java b/src/main/java/net/minestom/server/adventure/bossbar/BossBarHolder.java index a2807e13a..9a5deb280 100644 --- a/src/main/java/net/minestom/server/adventure/bossbar/BossBarHolder.java +++ b/src/main/java/net/minestom/server/adventure/bossbar/BossBarHolder.java @@ -25,16 +25,13 @@ final class BossBarHolder implements Viewable { protected final UUID uuid = UUID.randomUUID(); protected final Set players = new CopyOnWriteArraySet<>(); protected final BossBar bar; - protected boolean registered; BossBarHolder(@NotNull BossBar bar) { this.bar = bar; - this.registered = false; } @NotNull BossBarPacket createRemovePacket() { - return this.createGenericPacket(REMOVE, packet -> { - }); + return this.createGenericPacket(REMOVE, packet -> { }); } @NotNull BossBarPacket createAddPacket() { diff --git a/src/main/java/net/minestom/server/adventure/bossbar/BossBarListener.java b/src/main/java/net/minestom/server/adventure/bossbar/BossBarListener.java index b5d01b33f..8d36ec6fd 100644 --- a/src/main/java/net/minestom/server/adventure/bossbar/BossBarListener.java +++ b/src/main/java/net/minestom/server/adventure/bossbar/BossBarListener.java @@ -56,7 +56,7 @@ class BossBarListener implements BossBar.Listener { private void doIfRegistered(@NotNull BossBar bar, @NotNull Consumer consumer) { BossBarHolder holder = this.manager.bars.get(bar); - if (holder != null && holder.registered) { + if (holder != null) { consumer.accept(holder); } } diff --git a/src/main/java/net/minestom/server/adventure/bossbar/BossBarManager.java b/src/main/java/net/minestom/server/adventure/bossbar/BossBarManager.java index 53f4ac38a..5440d3398 100644 --- a/src/main/java/net/minestom/server/adventure/bossbar/BossBarManager.java +++ b/src/main/java/net/minestom/server/adventure/bossbar/BossBarManager.java @@ -58,9 +58,9 @@ public class BossBarManager { * @param bar the boss bar to hide */ public void removeBossBar(@NotNull Player player, @NotNull BossBar bar) { - BossBarHolder holder = this.getOrCreateHandler(bar); + BossBarHolder holder = this.bars.get(bar); - if (holder.removeViewer(player)) { + if (holder != null && holder.removeViewer(player)) { player.getPlayerConnection().sendPacket(holder.createRemovePacket()); this.removePlayer(player, holder); } @@ -96,18 +96,21 @@ public class BossBarManager { * @param bar the boss bar to hide */ public void removeBossBar(@NotNull Collection players, @NotNull BossBar bar) { - BossBarHolder holder = this.getOrCreateHandler(bar); - Collection removedPlayers = new ArrayList<>(); + BossBarHolder holder = this.bars.get(bar); - for (Player player : players) { - if (holder.removeViewer(player)) { - removedPlayers.add(player); - this.removePlayer(player, holder); + if (holder != null) { + Collection removedPlayers = new ArrayList<>(); + + for (Player player : players) { + if (holder.removeViewer(player)) { + removedPlayers.add(player); + this.removePlayer(player, holder); + } } - } - if (!removedPlayers.isEmpty()) { - PacketUtils.sendGroupedPacket(removedPlayers, holder.createRemovePacket()); + if (!removedPlayers.isEmpty()) { + PacketUtils.sendGroupedPacket(removedPlayers, holder.createRemovePacket()); + } } }