add ActionBar with health & mana

This commit is contained in:
unurled 2024-03-14 12:14:30 +01:00
parent 75d89e7974
commit 8111b2b8f2
Signed by: unurled
GPG key ID: FDBC9CBE1F82423F
3 changed files with 20 additions and 2 deletions

View file

@ -1,6 +1,7 @@
package me.unurled.sacredrealms.sr.components.combat; package me.unurled.sacredrealms.sr.components.combat;
import static me.unurled.sacredrealms.sr.utils.Component.comp; import static me.unurled.sacredrealms.sr.utils.Component.comp;
import static me.unurled.sacredrealms.sr.utils.SRPlayerUtils.updateActionBar;
import java.util.Random; import java.util.Random;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
@ -156,6 +157,9 @@ public class CombatManager extends Manager {
// apply damage // apply damage
player.damage(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) // TODO: check for status effects (apply status effects depending item of damager)
} }
} }

View file

@ -1,6 +1,7 @@
package me.unurled.sacredrealms.sr.components.player; package me.unurled.sacredrealms.sr.components.player;
import static me.unurled.sacredrealms.sr.utils.Logger.error; 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.destroystokyo.paper.event.player.PlayerArmorChangeEvent;
import com.google.gson.Gson; import com.google.gson.Gson;
@ -100,6 +101,8 @@ public class PlayerManager extends Manager {
e.getPlayer().getInventory().clear(); e.getPlayer().getInventory().clear();
e.getPlayer().getInventory().setContents(srPlayer.getInventory().getContents()); e.getPlayer().getInventory().setContents(srPlayer.getInventory().getContents());
updateActionBar(e.getPlayer(), srPlayer);
e.getPlayer().updateInventory(); e.getPlayer().updateInventory();
} }

View file

@ -1,19 +1,22 @@
package me.unurled.sacredrealms.sr.utils; package me.unurled.sacredrealms.sr.utils;
import static me.unurled.sacredrealms.sr.utils.Component.comp;
import java.util.List; import java.util.List;
import me.unurled.sacredrealms.sr.components.attributes.Attribute; import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.player.SRPlayer; import me.unurled.sacredrealms.sr.components.player.SRPlayer;
import org.bukkit.attribute.AttributeInstance; import org.bukkit.attribute.AttributeInstance;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffect;
import org.jetbrains.annotations.NotNull;
public class SRPlayerUtils { 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.setInventory(p.getInventory());
sr.setPotionEffects((List<PotionEffect>) p.getActivePotionEffects()); sr.setPotionEffects((List<PotionEffect>) 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()); p.getInventory().setContents(sr.getInventory().getContents());
// agility (speed) // agility (speed)
@ -45,4 +48,12 @@ public class SRPlayerUtils {
p.sendHealthUpdate(); p.sendHealthUpdate();
p.updateInventory(); 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("<red>❤ " + health + " <blue>❈ " + mana);
p.sendActionBar(text);
}
} }