From 2beb9563bbff45d00b4c0161156c596865b672dc Mon Sep 17 00:00:00 2001 From: NEZNAMY Date: Tue, 31 Mar 2026 17:02:28 +0200 Subject: [PATCH] [BossBar] Forward UUID to platforms to prepare for 26.1 changes --- .../neznamy/tab/platforms/bukkit/bossbar/BukkitBossBar.java | 4 +++- .../me/neznamy/tab/platforms/bukkit/bossbar/ViaBossBar.java | 4 +++- .../me/neznamy/tab/platforms/bungeecord/BungeeBossBar.java | 4 ++-- .../java/me/neznamy/tab/platforms/fabric/FabricBossBar.java | 4 +++- .../java/me/neznamy/tab/platforms/forge/ForgeBossBar.java | 4 +++- .../me/neznamy/tab/platforms/neoforge/NeoForgeBossBar.java | 4 +++- .../neznamy/tab/shared/platform/decorators/SafeBossBar.java | 6 ++++-- .../neznamy/tab/shared/platform/impl/AdventureBossBar.java | 4 +++- .../me/neznamy/tab/shared/platform/impl/DummyBossBar.java | 4 +++- 9 files changed, 27 insertions(+), 11 deletions(-) diff --git a/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/BukkitBossBar.java b/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/BukkitBossBar.java index 5fff050a3..28514bccb 100644 --- a/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/BukkitBossBar.java +++ b/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/BukkitBossBar.java @@ -12,6 +12,8 @@ import org.bukkit.Bukkit; import org.bukkit.boss.BossBar; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * BossBar for 1.9+ servers where Bukkit API is used. If ViaVersion is used * to allow 1.8 players, it will handle the entity and teleporting by itself. @@ -32,7 +34,7 @@ public class BukkitBossBar extends SafeBossBar { @Override @NotNull - public BossBar constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public BossBar constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { BossBar bar = Bukkit.createBossBar( player.getPlatform().toBukkitFormat(title), org.bukkit.boss.BarColor.valueOf(color.name()), diff --git a/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/ViaBossBar.java b/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/ViaBossBar.java index f8ade8e5a..32ba5d0a3 100644 --- a/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/ViaBossBar.java +++ b/bukkit/src/main/java/me/neznamy/tab/platforms/bukkit/bossbar/ViaBossBar.java @@ -12,6 +12,8 @@ import me.neznamy.tab.shared.chat.component.TabComponent; import me.neznamy.tab.shared.platform.decorators.SafeBossBar; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * Handler for 1.9+ players on 1.8 server using ViaVersion API. */ @@ -27,7 +29,7 @@ public class ViaBossBar extends SafeBossBar { @Override @NotNull - public BossBar constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public BossBar constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { return Via.getAPI().legacyAPI().createLegacyBossBar( title.toLegacyText(), progress, diff --git a/bungeecord/src/main/java/me/neznamy/tab/platforms/bungeecord/BungeeBossBar.java b/bungeecord/src/main/java/me/neznamy/tab/platforms/bungeecord/BungeeBossBar.java index ad9c3fc5f..39681af79 100644 --- a/bungeecord/src/main/java/me/neznamy/tab/platforms/bungeecord/BungeeBossBar.java +++ b/bungeecord/src/main/java/me/neznamy/tab/platforms/bungeecord/BungeeBossBar.java @@ -24,8 +24,8 @@ public class BungeeBossBar extends SafeBossBar { @Override @NotNull - public UUID constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { - return UUID.randomUUID(); + public UUID constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + return id; } @Override diff --git a/fabric/src/main/java/me/neznamy/tab/platforms/fabric/FabricBossBar.java b/fabric/src/main/java/me/neznamy/tab/platforms/fabric/FabricBossBar.java index 846c7de71..1aeb71194 100644 --- a/fabric/src/main/java/me/neznamy/tab/platforms/fabric/FabricBossBar.java +++ b/fabric/src/main/java/me/neznamy/tab/platforms/fabric/FabricBossBar.java @@ -10,6 +10,8 @@ import net.minecraft.world.BossEvent.BossBarColor; import net.minecraft.world.BossEvent.BossBarOverlay; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * BossBar implementation for Fabric using packets. */ @@ -22,7 +24,7 @@ public class FabricBossBar extends SafeBossBar { @Override @NotNull - public ServerBossEvent constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public ServerBossEvent constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { ServerBossEvent bar = new ServerBossEvent( title.convert(), BossBarColor.valueOf(color.name()), diff --git a/forge/src/main/java/me/neznamy/tab/platforms/forge/ForgeBossBar.java b/forge/src/main/java/me/neznamy/tab/platforms/forge/ForgeBossBar.java index 8b28851ba..02c35417e 100644 --- a/forge/src/main/java/me/neznamy/tab/platforms/forge/ForgeBossBar.java +++ b/forge/src/main/java/me/neznamy/tab/platforms/forge/ForgeBossBar.java @@ -10,6 +10,8 @@ import net.minecraft.world.BossEvent.BossBarColor; import net.minecraft.world.BossEvent.BossBarOverlay; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * BossBar implementation for Forge using packets. */ @@ -22,7 +24,7 @@ public class ForgeBossBar extends SafeBossBar { @Override @NotNull - public ServerBossEvent constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public ServerBossEvent constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { ServerBossEvent bar = new ServerBossEvent( title.convert(), BossBarColor.valueOf(color.name()), diff --git a/neoforge/src/main/java/me/neznamy/tab/platforms/neoforge/NeoForgeBossBar.java b/neoforge/src/main/java/me/neznamy/tab/platforms/neoforge/NeoForgeBossBar.java index ee1aaae8b..e8853e28a 100644 --- a/neoforge/src/main/java/me/neznamy/tab/platforms/neoforge/NeoForgeBossBar.java +++ b/neoforge/src/main/java/me/neznamy/tab/platforms/neoforge/NeoForgeBossBar.java @@ -10,6 +10,8 @@ import net.minecraft.world.BossEvent.BossBarColor; import net.minecraft.world.BossEvent.BossBarOverlay; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * BossBar implementation for NeoForge using packets. */ @@ -22,7 +24,7 @@ public class NeoForgeBossBar extends SafeBossBar { @Override @NotNull - public ServerBossEvent constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public ServerBossEvent constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { ServerBossEvent bar = new ServerBossEvent( title.convert(), BossBarColor.valueOf(color.name()), diff --git a/shared/src/main/java/me/neznamy/tab/shared/platform/decorators/SafeBossBar.java b/shared/src/main/java/me/neznamy/tab/shared/platform/decorators/SafeBossBar.java index dce692fcc..8e7bae4b0 100644 --- a/shared/src/main/java/me/neznamy/tab/shared/platform/decorators/SafeBossBar.java +++ b/shared/src/main/java/me/neznamy/tab/shared/platform/decorators/SafeBossBar.java @@ -35,7 +35,7 @@ public abstract class SafeBossBar implements BossBar { @Override public synchronized void create(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { - BossBarInfo bar = new BossBarInfo(title, progress, color, style, constructBossBar(title, progress, color, style)); + BossBarInfo bar = new BossBarInfo(title, progress, color, style, constructBossBar(id, title, progress, color, style)); bossBars.put(id, bar); if (frozen) return; show(bar); @@ -132,6 +132,8 @@ public abstract class SafeBossBar implements BossBar { /** * Constructs platform's BossBar object with given parameters. * + * @param id + * BossBar UUID (if configurable by platform) * @param title * BossBar title * @param progress @@ -143,7 +145,7 @@ public abstract class SafeBossBar implements BossBar { * @return Platform's BossBar with given data */ @NotNull - public abstract T constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style); + public abstract T constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style); /** * Shows BossBar to the player. diff --git a/shared/src/main/java/me/neznamy/tab/shared/platform/impl/AdventureBossBar.java b/shared/src/main/java/me/neznamy/tab/shared/platform/impl/AdventureBossBar.java index 4a9d861af..16a6506e8 100644 --- a/shared/src/main/java/me/neznamy/tab/shared/platform/impl/AdventureBossBar.java +++ b/shared/src/main/java/me/neznamy/tab/shared/platform/impl/AdventureBossBar.java @@ -14,6 +14,8 @@ import net.kyori.adventure.bossbar.BossBar.Color; import net.kyori.adventure.bossbar.BossBar.Overlay; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * Shared BossBar implementation using Adventure API. */ @@ -29,7 +31,7 @@ public class AdventureBossBar extends SafeBossBar { @Override @NotNull - public BossBar constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public BossBar constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { return BossBar.bossBar(title.toAdventure(), progress, Color.valueOf(color.name()), Overlay.valueOf(style.name())); } diff --git a/shared/src/main/java/me/neznamy/tab/shared/platform/impl/DummyBossBar.java b/shared/src/main/java/me/neznamy/tab/shared/platform/impl/DummyBossBar.java index a551528db..8398b170a 100644 --- a/shared/src/main/java/me/neznamy/tab/shared/platform/impl/DummyBossBar.java +++ b/shared/src/main/java/me/neznamy/tab/shared/platform/impl/DummyBossBar.java @@ -6,6 +6,8 @@ import me.neznamy.tab.shared.chat.component.TabComponent; import me.neznamy.tab.shared.platform.decorators.SafeBossBar; import org.jetbrains.annotations.NotNull; +import java.util.UUID; + /** * Dummy implementation when no suitable one is available. */ @@ -13,7 +15,7 @@ public class DummyBossBar extends SafeBossBar { @Override @NotNull - public Object constructBossBar(@NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { + public Object constructBossBar(@NotNull UUID id, @NotNull TabComponent title, float progress, @NotNull BarColor color, @NotNull BarStyle style) { return new Object(); }