diff --git a/build.gradle b/build.gradle index c3dc3f5..98dbf07 100644 --- a/build.gradle +++ b/build.gradle @@ -47,7 +47,7 @@ allprojects { } dependencies { - compileOnly 'com.willfp:eco:6.8.1' + compileOnly 'com.willfp:eco:6.9.0' compileOnly 'org.jetbrains:annotations:19.0.0' diff --git a/eco-core/core-plugin/build.gradle b/eco-core/core-plugin/build.gradle index c463a83..f0d911a 100644 --- a/eco-core/core-plugin/build.gradle +++ b/eco-core/core-plugin/build.gradle @@ -2,9 +2,9 @@ group 'com.willfp' version rootProject.version dependencies { - compileOnly 'org.spigotmc:spigot-api:1.16.4-R0.1-SNAPSHOT' + compileOnly 'org.spigotmc:spigot-api:1.17.1-R0.1-SNAPSHOT' compileOnly 'commons-io:commons-io:2.8.0' - compileOnly 'com.destroystokyo.paper:paper-api:1.16.3-R0.1-SNAPSHOT' compileOnly 'com.github.lokka30:LevelledMobs:3.1.4' compileOnly 'io.lumine.xikage:MythicMobs:4.9.1' + compileOnly 'net.kyori:adventure-api:4.9.1' } \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java index ee99878..12a2e5c 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/EcoBoss.java @@ -29,6 +29,7 @@ import com.willfp.ecobosses.bosses.util.obj.TargetMode; import lombok.AccessLevel; import lombok.Getter; import lombok.Setter; +import net.kyori.adventure.bossbar.BossBar; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -340,8 +341,8 @@ public class EcoBoss extends PluginDependent { // Boss Bar this.bossbarEnabled = this.getConfig().getBool("bossbar.enabled"); this.bossbarProperties = new BossbarProperties( - BarColor.valueOf(this.getConfig().getString("bossbar.color").toUpperCase()), - BarStyle.valueOf(this.getConfig().getString("bossbar.style").toUpperCase()) + BossBar.Color.valueOf(this.getConfig().getString("bossbar.color").toUpperCase()), + BossBar.Overlay.valueOf(this.getConfig().getString("bossbar.style").toUpperCase()) ); // Attributes diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java index 8e8b33d..a1a6a5d 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/LivingEcoBoss.java @@ -3,7 +3,6 @@ package com.willfp.ecobosses.bosses; import com.willfp.eco.core.EcoPlugin; import com.willfp.eco.core.PluginDependent; import com.willfp.eco.core.scheduling.RunnableTask; -import com.willfp.eco.util.NumberUtils; import com.willfp.eco.util.StringUtils; import com.willfp.ecobosses.bosses.effects.Effect; import com.willfp.ecobosses.bosses.tick.BossTicker; @@ -13,14 +12,12 @@ import com.willfp.ecobosses.bosses.tick.tickers.NamePlaceholderTicker; import com.willfp.ecobosses.bosses.tick.tickers.TargetTicker; import com.willfp.ecobosses.bosses.util.obj.EquipmentPiece; import com.willfp.ecobosses.bosses.util.obj.OptionedSound; -import io.lumine.xikage.mythicmobs.mobs.MythicMob; import lombok.Getter; +import net.kyori.adventure.bossbar.BossBar; import org.bukkit.Bukkit; import org.bukkit.attribute.Attribute; import org.bukkit.attribute.AttributeInstance; import org.bukkit.attribute.AttributeModifier; -import org.bukkit.block.Block; -import org.bukkit.boss.BarFlag; import org.bukkit.entity.Ageable; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; @@ -81,12 +78,11 @@ public class LivingEcoBoss extends PluginDependent { if (boss.isBossbarEnabled()) { this.tickers.add( new BossBarTicker( - Bukkit.getServer().createBossBar( - plugin.getNamespacedKeyFactory().create("boss_" + NumberUtils.randInt(0, 1000000)), - entity.getCustomName(), + BossBar.bossBar( + StringUtils.toComponent(entity.getCustomName()), + 1, boss.getBossbarProperties().color(), - boss.getBossbarProperties().style(), - (BarFlag) null + boss.getBossbarProperties().style() ), this.getPlugin().getConfigYml().getInt("bossbar-radius") ) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/BossBarTicker.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/BossBarTicker.java index 8807783..17f1d83 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/BossBarTicker.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/tick/tickers/BossBarTicker.java @@ -1,11 +1,12 @@ package com.willfp.ecobosses.bosses.tick.tickers; +import com.willfp.eco.util.PlayerUtils; +import com.willfp.eco.util.StringUtils; import com.willfp.ecobosses.bosses.EcoBoss; import com.willfp.ecobosses.bosses.tick.BossTicker; +import net.kyori.adventure.bossbar.BossBar; import org.bukkit.Bukkit; import org.bukkit.attribute.Attribute; -import org.bukkit.boss.BossBar; -import org.bukkit.boss.KeyedBossBar; import org.bukkit.entity.LivingEntity; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; @@ -37,14 +38,16 @@ public class BossBarTicker implements BossTicker { public void tick(@NotNull final EcoBoss boss, @NotNull final LivingEntity entity, final long tick) { - bossBar.setTitle(entity.getCustomName()); - bossBar.setProgress(entity.getHealth() / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); + bossBar.name(StringUtils.toComponent(entity.getCustomName())); + bossBar.progress((float) (entity.getHealth() / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue())); if (tick % 40 == 0) { - bossBar.removeAll(); + for (Player player : Bukkit.getOnlinePlayers()) { + PlayerUtils.getAudience(player).hideBossBar(bossBar); + } entity.getNearbyEntities(radius, radius, radius).forEach(entity1 -> { if (entity1 instanceof Player) { - bossBar.addPlayer((Player) entity1); + PlayerUtils.getAudience((Player) entity1).showBossBar(bossBar); } }); } @@ -54,8 +57,8 @@ public class BossBarTicker implements BossTicker { public void onDeath(@NotNull final EcoBoss boss, @Nullable final LivingEntity entity, final long tick) { - bossBar.removeAll(); - bossBar.setVisible(false); - Bukkit.removeBossBar(((KeyedBossBar) bossBar).getKey()); + for (Player player : Bukkit.getOnlinePlayers()) { + PlayerUtils.getAudience(player).hideBossBar(bossBar); + } } } diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/BossbarProperties.java b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/BossbarProperties.java index 45e4122..b1c85f5 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/BossbarProperties.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecobosses/bosses/util/obj/BossbarProperties.java @@ -1,9 +1,7 @@ package com.willfp.ecobosses.bosses.util.obj; -import lombok.Data; -import org.bukkit.boss.BarColor; -import org.bukkit.boss.BarStyle; +import net.kyori.adventure.bossbar.BossBar; -public record BossbarProperties(BarColor color, BarStyle style) { +public record BossbarProperties(BossBar.Color color, BossBar.Overlay style) { }