9
0
mirror of https://github.com/Auxilor/EcoMobs.git synced 2025-12-21 07:59:28 +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 {
compileOnly 'com.willfp:eco:6.8.1'
compileOnly 'com.willfp:eco:6.9.0'
compileOnly 'org.jetbrains:annotations:19.0.0'

View File

@@ -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'
}

View File

@@ -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

View File

@@ -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")
)

View File

@@ -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);
}
}
}

View File

@@ -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) {
}