Sacred realms

This commit is contained in:
unurled 2024-02-26 21:04:42 +01:00
commit aa1c13c74c
Signed by: unurled
GPG key ID: FDBC9CBE1F82423F
28 changed files with 1651 additions and 0 deletions

View file

@ -0,0 +1,11 @@
package me.unurled.sacredrealms.sr.utils;
import net.kyori.adventure.text.minimessage.MiniMessage;
public class Component {
public static net.kyori.adventure.text.Component comp(String msg) {
MiniMessage mm = MiniMessage.miniMessage();
return mm.deserialize(msg);
}
}

View file

@ -0,0 +1,56 @@
package me.unurled.sacredrealms.sr.utils;
import java.util.Arrays;
import java.util.concurrent.atomic.AtomicReference;
import me.unurled.sacredrealms.sr.components.attributes.Attribute;
import me.unurled.sacredrealms.sr.components.item.Item;
import me.unurled.sacredrealms.sr.components.item.ItemManager;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.EntityEquipment;
import org.bukkit.inventory.ItemStack;
import org.bukkit.persistence.PersistentDataContainer;
import org.bukkit.persistence.PersistentDataType;
import org.jetbrains.annotations.NotNull;
public class Items {
public static @NotNull Double getTotalAttribute(Player player, Attribute attribute) {
return getTotalAttribute(player.getEquipment(), attribute);
}
public static @NotNull Double getTotalAttribute(EntityEquipment inv, Attribute attribute) {
ItemManager im = (ItemManager) ItemManager.getInstance(ItemManager.class);
if (im == null) return 0.0;
AtomicReference<Double> total = new AtomicReference<>(0.0);
Arrays.stream(inv.getArmorContents()).toList().forEach(item ->
total.updateAndGet(
v -> (v + getAttribute(item,
attribute))));
total.updateAndGet(
v -> (v + getAttribute(inv.getItemInMainHand(),
attribute)));
total.updateAndGet(
v -> (v + getAttribute(inv.getItemInOffHand(),
attribute)));
return total.get();
}
public static Double getAttribute(ItemStack item, Attribute attribute) {
ItemManager im = (ItemManager) ItemManager.getInstance(ItemManager.class);
if (im == null) return 0.0;
if (item == null) return 0.0;
if (item.getType().equals(Material.AIR)) return 0.0;
PersistentDataContainer p = item.getItemMeta().getPersistentDataContainer();
if (p.has(ItemManager.ID, PersistentDataType.STRING)) {
Item i = im.getItem(p.get(ItemManager.ID, PersistentDataType.STRING));
if (i != null) {
return i.getAttribute(attribute);
}
}
return 0.0;
}
}

View file

@ -0,0 +1,31 @@
package me.unurled.sacredrealms.sr.utils;
import me.unurled.sacredrealms.sr.SR;
import net.kyori.adventure.text.Component;
public class Logger {
public static void log(String message) {
SR.getInstance().getLogger().info(message);
}
public static void warn(String message) {
SR.getInstance().getLogger().warning(message);
}
public static void error(String message) {
SR.getInstance().getLogger().severe(message);
}
public static void log(Component message) {
SR.getInstance().getComponentLogger().info(message);
}
public static void warn(Component message) {
SR.getInstance().getComponentLogger().warn(message);
}
public static void error(Component message) {
SR.getInstance().getComponentLogger().error(message);
}
}