WIP: Converting methods to utilize Optionals.

This commit is contained in:
2026-01-09 05:55:38 +01:00
parent f41bead3d2
commit 39f8544e08

View File

@ -40,9 +40,8 @@ public abstract class TotemItem extends Item {
public abstract boolean isCharge(ItemStack stack); public abstract boolean isCharge(ItemStack stack);
@Nullable public static Optional<Integer> getTargetIndex(ItemStack stack) {
public static Integer getTargetIndex(ItemStack stack) { return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getTargetIndex()));
return getTotemData(stack).map(TotemData::getTargetIndex).orElse(null);
} }
public static void setTargetIndex(ItemStack stack, int targetIndex) { public static void setTargetIndex(ItemStack stack, int targetIndex) {
Optional<TotemData> data = getTotemData(stack); Optional<TotemData> data = getTotemData(stack);
@ -52,9 +51,8 @@ public abstract class TotemItem extends Item {
stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); stack.set(ModDataComponents.TOTEM_DATA.get(), data.get());
} }
@Nullable public static Optional<UUID> getTargetUUID(ItemStack stack) {
public static UUID getTargetUUID(ItemStack stack) { return getTotemData(stack).flatMap(totemData -> Optional.of(UUID.fromString(totemData.getTargetUUID())));
return getTotemData(stack).map(totemData -> UUID.fromString(totemData.getTargetUUID())).orElse(null);
} }
public static void setTargetUUID(ItemStack stack, UUID targetUUID) { public static void setTargetUUID(ItemStack stack, UUID targetUUID) {
Optional<TotemData> data = getTotemData(stack); Optional<TotemData> data = getTotemData(stack);
@ -64,9 +62,8 @@ public abstract class TotemItem extends Item {
stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); stack.set(ModDataComponents.TOTEM_DATA.get(), data.get());
} }
@Nullable public static Optional<String> getTargetName(ItemStack stack) {
public static String getTargetName(ItemStack stack) { return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getTargetName()));
return getTotemData(stack).map(TotemData::getTargetName).orElse(null);
} }
public static void setTargetName(ItemStack stack, String targetName) { public static void setTargetName(ItemStack stack, String targetName) {
Optional<TotemData> data = getTotemData(stack); Optional<TotemData> data = getTotemData(stack);
@ -75,16 +72,9 @@ public abstract class TotemItem extends Item {
data.get().setTargetName(targetName); data.get().setTargetName(targetName);
stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); 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 Optional<Integer> getTargetDeaths(ItemStack stack) {
public static Integer getTargetDeaths(ItemStack stack) { return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getTargetDeaths()));
return getTotemData(stack).map(TotemData::getTargetDeaths).orElse(null);
} }
public static void setTargetDeaths(ItemStack stack, ServerPlayer target) { public static void setTargetDeaths(ItemStack stack, ServerPlayer target) {
Optional<TotemData> data = getTotemData(stack); Optional<TotemData> data = getTotemData(stack);
@ -93,12 +83,29 @@ public abstract class TotemItem extends Item {
data.get().setTargetDeaths(target.getStats().getValue(Stats.CUSTOM.get(Stats.DEATHS))); data.get().setTargetDeaths(target.getStats().getValue(Stats.CUSTOM.get(Stats.DEATHS)));
stack.set(ModDataComponents.TOTEM_DATA.get(), data.get()); stack.set(ModDataComponents.TOTEM_DATA.get(), data.get());
} }
public static Optional<Integer> getCharge(ItemStack stack) {
return getTotemData(stack).flatMap(totemData -> Optional.of(totemData.getCharge()));
}
public static void setCharge(ItemStack stack, int charge) {
Optional<TotemData> 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) { public static boolean isTotemFull(ItemStack stack) {
if (!isTotem(stack)) { return false; } if (!isTotem(stack)) { return false; }
return getCharge(stack) == getMaxCharge(stack); return getCharge(stack) == getMaxCharge(stack);
} }
public static boolean canTotemAffordTarget(ItemStack stack) { public static boolean canTotemAffordTarget(ItemStack stack) {
if (!isTotem(stack)) { return false; } if (!isTotem(stack)) { return false; }
if (getCharge(stack) < getTargetCost(stack)) { if (getCharge(stack) < getTargetCost(stack)) {
@ -109,18 +116,6 @@ public abstract class TotemItem extends Item {
} }
return true; 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<TotemData> 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) { public static int getMaxCharge(ItemStack stack) {
Config.TotemConfig config = getConfig(stack); Config.TotemConfig config = getConfig(stack);