From 8111b2b8f2a4ad5e1c38d063739ed309d6bb0da0 Mon Sep 17 00:00:00 2001 From: unurled Date: Thu, 14 Mar 2024 12:14:30 +0100 Subject: [PATCH] add ActionBar with health & mana --- .../sr/components/combat/CombatManager.java | 4 ++++ .../sr/components/player/PlayerManager.java | 3 +++ .../sacredrealms/sr/utils/SRPlayerUtils.java | 15 +++++++++++++-- 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java index e6fdf0a..dc6fcff 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/combat/CombatManager.java @@ -1,6 +1,7 @@ package me.unurled.sacredrealms.sr.components.combat; import static me.unurled.sacredrealms.sr.utils.Component.comp; +import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; import java.util.Random; import me.unurled.sacredrealms.sr.components.attributes.Attribute; @@ -156,6 +157,9 @@ public class CombatManager extends Manager { // apply damage player.damage(damage); + SRPlayer player1 = pm.getPlayer(player.getUniqueId()); + if (player1 != null) updateActionBar(player, player1); + // TODO: check for status effects (apply status effects depending item of damager) } } diff --git a/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java b/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java index fef2ded..37303a8 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java +++ b/src/main/java/me/unurled/sacredrealms/sr/components/player/PlayerManager.java @@ -1,6 +1,7 @@ package me.unurled.sacredrealms.sr.components.player; import static me.unurled.sacredrealms.sr.utils.Logger.error; +import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar; import com.destroystokyo.paper.event.player.PlayerArmorChangeEvent; import com.google.gson.Gson; @@ -100,6 +101,8 @@ public class PlayerManager extends Manager { e.getPlayer().getInventory().clear(); e.getPlayer().getInventory().setContents(srPlayer.getInventory().getContents()); + updateActionBar(e.getPlayer(), srPlayer); + e.getPlayer().updateInventory(); } diff --git a/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java b/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java index 1380e52..3730488 100644 --- a/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java +++ b/src/main/java/me/unurled/sacredrealms/sr/utils/SRPlayerUtils.java @@ -1,19 +1,22 @@ package me.unurled.sacredrealms.sr.utils; +import static me.unurled.sacredrealms.sr.utils.Component.comp; + import java.util.List; import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.player.SRPlayer; import org.bukkit.attribute.AttributeInstance; import org.bukkit.entity.Player; import org.bukkit.potion.PotionEffect; +import org.jetbrains.annotations.NotNull; public class SRPlayerUtils { - public static void syncPlayerToSR(Player p, SRPlayer sr) { + public static void syncPlayerToSR(@NotNull Player p, @NotNull SRPlayer sr) { sr.setInventory(p.getInventory()); sr.setPotionEffects((List) p.getActivePotionEffects()); } - public static void syncSRToPlayer(SRPlayer sr, Player p) { + public static void syncSRToPlayer(@NotNull SRPlayer sr, @NotNull Player p) { p.getInventory().setContents(sr.getInventory().getContents()); // agility (speed) @@ -45,4 +48,12 @@ public class SRPlayerUtils { p.sendHealthUpdate(); p.updateInventory(); } + + public static void updateActionBar(@NotNull Player p, @NotNull SRPlayer sr) { + double health = sr.getAttribute(Attribute.HEALTH); + double mana = sr.getAttribute(Attribute.MANA); + + net.kyori.adventure.text.Component text = comp("❤ " + health + " ❈ " + mana); + p.sendActionBar(text); + } }