From 39f8544e088dc7a4c9d04812ac487d11f5d13d8d Mon Sep 17 00:00:00 2001 From: micle Date: Fri, 9 Jan 2026 05:55:38 +0100 Subject: [PATCH] WIP: Converting methods to utilize Optionals. --- .../totemofreviving/item/totem/TotemItem.java | 59 +++++++++---------- 1 file changed, 27 insertions(+), 32 deletions(-) diff --git a/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java b/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java index 36b3bc8..eb13ccd 100644 --- a/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java +++ b/src/main/java/dev/micle/totemofreviving/item/totem/TotemItem.java @@ -40,9 +40,8 @@ public abstract class TotemItem extends Item { public abstract boolean isCharge(ItemStack stack); - @Nullable - public static Integer getTargetIndex(ItemStack stack) { - return getTotemData(stack).map(TotemData::getTargetIndex).orElse(null); + public static Optional getTargetIndex(ItemStack stack) { + return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getTargetIndex())); } public static void setTargetIndex(ItemStack stack, int targetIndex) { Optional data = getTotemData(stack); @@ -52,9 +51,8 @@ public abstract class TotemItem extends Item { stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); } - @Nullable - public static UUID getTargetUUID(ItemStack stack) { - return getTotemData(stack).map(totemData -> UUID.fromString(totemData.getTargetUUID())).orElse(null); + public static Optional getTargetUUID(ItemStack stack) { + return getTotemData(stack).flatMap(totemData -> Optional.of(UUID.fromString(totemData.getTargetUUID()))); } public static void setTargetUUID(ItemStack stack, UUID targetUUID) { Optional data = getTotemData(stack); @@ -64,9 +62,8 @@ public abstract class TotemItem extends Item { stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); } - @Nullable - public static String getTargetName(ItemStack stack) { - return getTotemData(stack).map(TotemData::getTargetName).orElse(null); + public static Optional getTargetName(ItemStack stack) { + return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getTargetName())); } public static void setTargetName(ItemStack stack, String targetName) { Optional data = getTotemData(stack); @@ -75,16 +72,9 @@ public abstract class TotemItem extends Item { data.get().setTargetName(targetName); stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); } - - public static int getTargetCost(ItemStack stack) { - if (!isTotem(stack)) { return -1; } - return !isCostDynamic(stack) ? getConfig(stack).getChargeCost() : - (int)(getTargetDeaths(stack) * getConfig(stack).getChargeCostMultiplier()); - } - @Nullable - public static Integer getTargetDeaths(ItemStack stack) { - return getTotemData(stack).map(TotemData::getTargetDeaths).orElse(null); + public static Optional getTargetDeaths(ItemStack stack) { + return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getTargetDeaths())); } public static void setTargetDeaths(ItemStack stack, ServerPlayer target) { Optional data = getTotemData(stack); @@ -93,12 +83,29 @@ public abstract class TotemItem extends Item { data.get().setTargetDeaths(target.getStats().getValue(Stats.CUSTOM.get(Stats.DEATHS))); stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); } - + + public static Optional getCharge(ItemStack stack) { + return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getCharge())); + } + public static void setCharge(ItemStack stack, int charge) { + Optional data = getTotemData(stack); + if (data.isEmpty()) { return; } + + data.get().setCharge(charge); + stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); + } + + public static int getTargetCost(ItemStack stack) { + if (!isTotem(stack)) { return -1; } + return !isCostDynamic(stack) ? getConfig(stack).getChargeCost() : + (int)(getTargetDeaths(stack) * getConfig(stack).getChargeCostMultiplier()); + } + public static boolean isTotemFull(ItemStack stack) { if (!isTotem(stack)) { return false; } return getCharge(stack) == getMaxCharge(stack); } - + public static boolean canTotemAffordTarget(ItemStack stack) { if (!isTotem(stack)) { return false; } if (getCharge(stack) < getTargetCost(stack)) { @@ -109,18 +116,6 @@ public abstract class TotemItem extends Item { } return true; } - - @Nullable - public static Integer getCharge(ItemStack stack) { - return getTotemData(stack).map(TotemData::getCharge).orElse(null); - } - public static void setCharge(ItemStack stack, int charge) { - Optional data = getTotemData(stack); - if (data.isEmpty()) { return; } - - data.get().setCharge(charge); - stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); - } public static int getMaxCharge(ItemStack stack) { Config.TotemConfig config = getConfig(stack);