From 4c33da512d48a33cbc5a297ecdfe93906b3f037d Mon Sep 17 00:00:00 2001 From: Aaron <51387595+AzureAaron@users.noreply.github.com> Date: Fri, 26 Jul 2024 00:59:29 -0400 Subject: Refactor obtained date methods --- .../item/tooltip/adders/ObtainedDateTooltip.java | 33 +++++++++++++--------- 1 file changed, 19 insertions(+), 14 deletions(-) (limited to 'src/main/java/de') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java index 341ec0fe..1cbff9d8 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/item/tooltip/adders/ObtainedDateTooltip.java @@ -12,7 +12,6 @@ import net.minecraft.util.Formatting; import org.jetbrains.annotations.Nullable; import java.time.Instant; -import java.time.LocalDate; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAccessor; @@ -42,6 +41,20 @@ public class ObtainedDateTooltip extends SimpleTooltipAdder { } } + private static TemporalAccessor getTimestampInternal(ItemStack stack) { + NbtCompound customData = ItemUtils.getCustomData(stack); + + if (customData != null && customData.contains("timestamp", NbtElement.LONG_TYPE)) { + return Instant.ofEpochMilli(customData.getLong("timestamp")); + } + + if (customData != null && customData.contains("timestamp", NbtElement.STRING_TYPE)) { + return OLD_OBTAINED_DATE_FORMAT.parse(customData.getString("timestamp")); + } + + return null; + } + /** * This method converts the "timestamp" variable into the same date format as Hypixel represents it in the museum. * Currently, there are two types of string timestamps the legacy which is built like this @@ -59,25 +72,17 @@ public class ObtainedDateTooltip extends SimpleTooltipAdder { * @return if the item have a "Timestamp" it will be shown formated on the tooltip */ public static String getTimestamp(ItemStack stack) { - NbtCompound customData = ItemUtils.getCustomData(stack); - - if (customData != null && customData.contains("timestamp", NbtElement.LONG_TYPE)) { - Instant date = Instant.ofEpochMilli(customData.getLong("timestamp")); - return OBTAINED_DATE_FORMATTER.format(date); - } + TemporalAccessor accessor = getTimestampInternal(stack); - if (customData != null && customData.contains("timestamp", NbtElement.STRING_TYPE)) { - TemporalAccessor date = OLD_OBTAINED_DATE_FORMAT.parse(customData.getString("timestamp")); - return OBTAINED_DATE_FORMATTER.format(date); - } - - return ""; + return accessor != null ? OBTAINED_DATE_FORMATTER.format(accessor) : ""; } /** * @see #getTimestamp(ItemStack) */ public static long getLongTimestamp(ItemStack stack) { - return LocalDate.parse(getTimestamp(stack), OBTAINED_DATE_FORMATTER).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); + TemporalAccessor accessor = getTimestampInternal(stack); + + return accessor != null ? Instant.from(accessor).toEpochMilli() : 0; } } -- cgit