mirror of
https://github.com/Auxilor/EcoMobs.git
synced 2025-12-20 23:49:22 +00:00
Updated boss bar to use Adventure
This commit is contained in:
@@ -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'
|
||||
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
@@ -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<EcoPlugin> {
|
||||
// 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
|
||||
|
||||
@@ -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<EcoPlugin> {
|
||||
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")
|
||||
)
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user