9
0
mirror of https://github.com/Auxilor/EcoMobs.git synced 2025-12-21 16:09:24 +00:00

Updated boss bar to use Adventure

This commit is contained in:
Auxilor
2021-10-01 18:21:17 +01:00
parent 955a378b98
commit c1fc918757
6 changed files with 25 additions and 27 deletions

View File

@@ -47,7 +47,7 @@ allprojects {
} }
dependencies { dependencies {
compileOnly 'com.willfp:eco:6.8.1' compileOnly 'com.willfp:eco:6.9.0'
compileOnly 'org.jetbrains:annotations:19.0.0' compileOnly 'org.jetbrains:annotations:19.0.0'

View File

@@ -2,9 +2,9 @@ group 'com.willfp'
version rootProject.version version rootProject.version
dependencies { 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 '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 'com.github.lokka30:LevelledMobs:3.1.4'
compileOnly 'io.lumine.xikage:MythicMobs:4.9.1' compileOnly 'io.lumine.xikage:MythicMobs:4.9.1'
compileOnly 'net.kyori:adventure-api:4.9.1'
} }

View File

@@ -29,6 +29,7 @@ import com.willfp.ecobosses.bosses.util.obj.TargetMode;
import lombok.AccessLevel; import lombok.AccessLevel;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import net.kyori.adventure.bossbar.BossBar;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Location; import org.bukkit.Location;
import org.bukkit.Material; import org.bukkit.Material;
@@ -340,8 +341,8 @@ public class EcoBoss extends PluginDependent<EcoPlugin> {
// Boss Bar // Boss Bar
this.bossbarEnabled = this.getConfig().getBool("bossbar.enabled"); this.bossbarEnabled = this.getConfig().getBool("bossbar.enabled");
this.bossbarProperties = new BossbarProperties( this.bossbarProperties = new BossbarProperties(
BarColor.valueOf(this.getConfig().getString("bossbar.color").toUpperCase()), BossBar.Color.valueOf(this.getConfig().getString("bossbar.color").toUpperCase()),
BarStyle.valueOf(this.getConfig().getString("bossbar.style").toUpperCase()) BossBar.Overlay.valueOf(this.getConfig().getString("bossbar.style").toUpperCase())
); );
// Attributes // Attributes

View File

@@ -3,7 +3,6 @@ package com.willfp.ecobosses.bosses;
import com.willfp.eco.core.EcoPlugin; import com.willfp.eco.core.EcoPlugin;
import com.willfp.eco.core.PluginDependent; import com.willfp.eco.core.PluginDependent;
import com.willfp.eco.core.scheduling.RunnableTask; import com.willfp.eco.core.scheduling.RunnableTask;
import com.willfp.eco.util.NumberUtils;
import com.willfp.eco.util.StringUtils; import com.willfp.eco.util.StringUtils;
import com.willfp.ecobosses.bosses.effects.Effect; import com.willfp.ecobosses.bosses.effects.Effect;
import com.willfp.ecobosses.bosses.tick.BossTicker; 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.tick.tickers.TargetTicker;
import com.willfp.ecobosses.bosses.util.obj.EquipmentPiece; import com.willfp.ecobosses.bosses.util.obj.EquipmentPiece;
import com.willfp.ecobosses.bosses.util.obj.OptionedSound; import com.willfp.ecobosses.bosses.util.obj.OptionedSound;
import io.lumine.xikage.mythicmobs.mobs.MythicMob;
import lombok.Getter; import lombok.Getter;
import net.kyori.adventure.bossbar.BossBar;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute; import org.bukkit.attribute.Attribute;
import org.bukkit.attribute.AttributeInstance; import org.bukkit.attribute.AttributeInstance;
import org.bukkit.attribute.AttributeModifier; import org.bukkit.attribute.AttributeModifier;
import org.bukkit.block.Block;
import org.bukkit.boss.BarFlag;
import org.bukkit.entity.Ageable; import org.bukkit.entity.Ageable;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -81,12 +78,11 @@ public class LivingEcoBoss extends PluginDependent<EcoPlugin> {
if (boss.isBossbarEnabled()) { if (boss.isBossbarEnabled()) {
this.tickers.add( this.tickers.add(
new BossBarTicker( new BossBarTicker(
Bukkit.getServer().createBossBar( BossBar.bossBar(
plugin.getNamespacedKeyFactory().create("boss_" + NumberUtils.randInt(0, 1000000)), StringUtils.toComponent(entity.getCustomName()),
entity.getCustomName(), 1,
boss.getBossbarProperties().color(), boss.getBossbarProperties().color(),
boss.getBossbarProperties().style(), boss.getBossbarProperties().style()
(BarFlag) null
), ),
this.getPlugin().getConfigYml().getInt("bossbar-radius") this.getPlugin().getConfigYml().getInt("bossbar-radius")
) )

View File

@@ -1,11 +1,12 @@
package com.willfp.ecobosses.bosses.tick.tickers; 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.EcoBoss;
import com.willfp.ecobosses.bosses.tick.BossTicker; import com.willfp.ecobosses.bosses.tick.BossTicker;
import net.kyori.adventure.bossbar.BossBar;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.attribute.Attribute; import org.bukkit.attribute.Attribute;
import org.bukkit.boss.BossBar;
import org.bukkit.boss.KeyedBossBar;
import org.bukkit.entity.LivingEntity; import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
@@ -37,14 +38,16 @@ public class BossBarTicker implements BossTicker {
public void tick(@NotNull final EcoBoss boss, public void tick(@NotNull final EcoBoss boss,
@NotNull final LivingEntity entity, @NotNull final LivingEntity entity,
final long tick) { final long tick) {
bossBar.setTitle(entity.getCustomName()); bossBar.name(StringUtils.toComponent(entity.getCustomName()));
bossBar.setProgress(entity.getHealth() / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()); bossBar.progress((float) (entity.getHealth() / entity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()));
if (tick % 40 == 0) { if (tick % 40 == 0) {
bossBar.removeAll(); for (Player player : Bukkit.getOnlinePlayers()) {
PlayerUtils.getAudience(player).hideBossBar(bossBar);
}
entity.getNearbyEntities(radius, radius, radius).forEach(entity1 -> { entity.getNearbyEntities(radius, radius, radius).forEach(entity1 -> {
if (entity1 instanceof Player) { 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, public void onDeath(@NotNull final EcoBoss boss,
@Nullable final LivingEntity entity, @Nullable final LivingEntity entity,
final long tick) { final long tick) {
bossBar.removeAll(); for (Player player : Bukkit.getOnlinePlayers()) {
bossBar.setVisible(false); PlayerUtils.getAudience(player).hideBossBar(bossBar);
Bukkit.removeBossBar(((KeyedBossBar) bossBar).getKey()); }
} }
} }

View File

@@ -1,9 +1,7 @@
package com.willfp.ecobosses.bosses.util.obj; package com.willfp.ecobosses.bosses.util.obj;
import lombok.Data; import net.kyori.adventure.bossbar.BossBar;
import org.bukkit.boss.BarColor;
import org.bukkit.boss.BarStyle;
public record BossbarProperties(BarColor color, BarStyle style) { public record BossbarProperties(BossBar.Color color, BossBar.Overlay style) {
} }