diff --git a/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/BossBarHelper.java b/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/BossBarHelper.java deleted file mode 100644 index c84ccc4771..0000000000 --- a/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/BossBarHelper.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.denizenscript.denizen.nms.interfaces; - -import org.bukkit.boss.BarColor; -import org.bukkit.boss.BarFlag; -import org.bukkit.boss.BarStyle; -import org.bukkit.entity.Player; - -public interface BossBarHelper { - - void showBossBar(Player player, boolean removeOld, String title, double progress, BarColor color, BarStyle style, BarFlag... flags); - - void removeBossBars(Player player); -} diff --git a/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/PlayerHelper.java b/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/PlayerHelper.java index 5c84b58081..8347f2abd3 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/PlayerHelper.java +++ b/plugin/src/main/java/com/denizenscript/denizen/nms/interfaces/PlayerHelper.java @@ -3,6 +3,7 @@ import com.denizenscript.denizen.nms.abstracts.ImprovedOfflinePlayer; import com.denizenscript.denizencore.objects.Mechanism; import org.bukkit.*; +import org.bukkit.boss.BossBar; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; @@ -79,4 +80,8 @@ public byte getSkinLayers(Player player) { public void setSkinLayers(Player player, byte flags) { throw new UnsupportedOperationException(); } + + public void setBossBarTitle(BossBar bar, String title) { + bar.setTitle(title); + } } diff --git a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/BossBarCommand.java b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/BossBarCommand.java index 1db02f34c8..763d70c760 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/BossBarCommand.java +++ b/plugin/src/main/java/com/denizenscript/denizen/scripts/commands/server/BossBarCommand.java @@ -1,5 +1,6 @@ package com.denizenscript.denizen.scripts.commands.server; +import com.denizenscript.denizen.nms.NMSHandler; import com.denizenscript.denizen.utilities.Utilities; import com.denizenscript.denizen.utilities.debugging.Debug; import com.denizenscript.denizen.objects.PlayerTag; @@ -192,7 +193,7 @@ public void execute(ScriptEntry scriptEntry) { } BossBar bossBar1 = bossBarMap.get(idString); if (title != null) { - bossBar1.setTitle(title.asString()); + NMSHandler.getPlayerHelper().setBossBarTitle(bossBar1, title.asString()); } if (progress != null) { bossBar1.setProgress(progress.asDouble()); diff --git a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/helpers/PlayerHelperImpl.java b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/helpers/PlayerHelperImpl.java index 893701243f..a7a191c629 100644 --- a/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/helpers/PlayerHelperImpl.java +++ b/v1_16/src/main/java/com/denizenscript/denizen/nms/v1_16/helpers/PlayerHelperImpl.java @@ -1,9 +1,11 @@ package com.denizenscript.denizen.nms.v1_16.helpers; +import com.denizenscript.denizen.nms.v1_16.Handler; import com.denizenscript.denizen.nms.v1_16.impl.ImprovedOfflinePlayerImpl; import com.denizenscript.denizen.nms.v1_16.impl.network.handlers.AbstractListenerPlayInImpl; import com.denizenscript.denizen.nms.v1_16.impl.network.handlers.DenizenNetworkManagerImpl; import com.denizenscript.denizen.objects.EntityTag; +import com.denizenscript.denizen.utilities.FormattedTextHelper; import com.denizenscript.denizencore.objects.Mechanism; import com.mojang.authlib.GameProfile; import com.denizenscript.denizen.nms.abstracts.ImprovedOfflinePlayer; @@ -15,8 +17,10 @@ import org.bukkit.*; import org.bukkit.Chunk; import org.bukkit.SoundCategory; +import org.bukkit.boss.BossBar; import org.bukkit.craftbukkit.v1_16_R2.CraftServer; import org.bukkit.craftbukkit.v1_16_R2.CraftWorld; +import org.bukkit.craftbukkit.v1_16_R2.boss.CraftBossBar; import org.bukkit.craftbukkit.v1_16_R2.entity.CraftPlayer; import org.bukkit.entity.Entity; import org.bukkit.entity.EntityType; @@ -264,4 +268,10 @@ public byte getSkinLayers(Player player) { public void setSkinLayers(Player player, byte flags) { ((CraftPlayer) player).getHandle().getDataWatcher().set(ENTITY_HUMAN_SKINLAYERS_DATAWATCHER, flags); } + + @Override + public void setBossBarTitle(BossBar bar, String title) { + ((CraftBossBar) bar).getHandle().title = Handler.componentToNMS(FormattedTextHelper.parse(title)); + ((CraftBossBar) bar).getHandle().sendUpdate(PacketPlayOutBoss.Action.UPDATE_NAME); + } }