diff options
-rw-r--r-- | .github/workflows/beta.yml | 9 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/utils/ItemUtils.java | 24 | ||||
-rw-r--r-- | src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java | 7 |
3 files changed, 20 insertions, 20 deletions
diff --git a/.github/workflows/beta.yml b/.github/workflows/beta.yml index 7100e2e2..e1d3427c 100644 --- a/.github/workflows/beta.yml +++ b/.github/workflows/beta.yml @@ -59,6 +59,15 @@ jobs: - name: Build with Gradle run: ./gradlew build + - name: Store reports + if: failure() + uses: actions/upload-artifact@v4 + with: + name: reports + path: | + **/build/reports/ + **/build/test-results/ + - uses: actions/github-script@v7 id: fname with: diff --git a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java index 453c8b04..64b3dcaf 100644 --- a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java +++ b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java @@ -8,7 +8,6 @@ import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.serialization.Codec; import com.mojang.serialization.JsonOps; import com.mojang.serialization.codecs.RecordCodecBuilder; - import it.unimi.dsi.fastutil.ints.IntIntPair; import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource; import net.minecraft.component.ComponentChanges; @@ -26,18 +25,16 @@ import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.text.Text; import net.minecraft.util.Formatting; import net.minecraft.util.dynamic.Codecs; - import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import java.text.ParseException; -import java.text.SimpleDateFormat; import java.time.Instant; import java.time.ZoneId; import java.time.format.DateTimeFormatter; -import java.util.*; +import java.time.temporal.TemporalAccessor; +import java.util.List; +import java.util.Locale; +import java.util.Optional; import java.util.function.Predicate; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -45,11 +42,10 @@ import java.util.regex.Pattern; import static net.fabricmc.fabric.api.client.command.v2.ClientCommandManager.literal; public class ItemUtils { - private static final Logger LOGGER = LoggerFactory.getLogger(ItemUtils.class); public static final String ID = "id"; public static final String UUID = "uuid"; private static final DateTimeFormatter OBTAINED_DATE_FORMATTER = DateTimeFormatter.ofPattern("MMMM d, yyyy").withZone(ZoneId.systemDefault()).localizedBy(Locale.ENGLISH); - private static final SimpleDateFormat OLD_OBTAINED_DATE_FORMAT = new SimpleDateFormat("MM/dd/yy"); + private static final DateTimeFormatter OLD_OBTAINED_DATE_FORMAT = DateTimeFormatter.ofPattern("MM/dd/yy h:mm a").withZone(ZoneId.of("UTC")).localizedBy(Locale.ENGLISH); public static final Pattern NOT_DURABILITY = Pattern.compile("[^0-9 /]"); public static final Predicate<String> FUEL_PREDICATE = line -> line.contains("Fuel: "); private static final Gson GSON = new Gson(); //GSON Instance with no config @@ -135,18 +131,12 @@ public class ItemUtils { if (customData != null && customData.contains("timestamp", NbtElement.LONG_TYPE)) { Instant date = Instant.ofEpochMilli(customData.getLong("timestamp")); - return OBTAINED_DATE_FORMATTER.format(date); } if (customData != null && customData.contains("timestamp", NbtElement.STRING_TYPE)) { - try { - Instant date = OLD_OBTAINED_DATE_FORMAT.parse(customData.getString("timestamp")).toInstant(); - - return OBTAINED_DATE_FORMATTER.format(date); - } catch (ParseException e) { - LOGGER.warn("[Skyblocker Item Utils] Encountered an unknown exception while parsing time stamp of item {} with extra attributes {}", stack, customData, e); - } + TemporalAccessor date = OLD_OBTAINED_DATE_FORMAT.parse(customData.getString("timestamp")); + return OBTAINED_DATE_FORMATTER.format(date); } return ""; diff --git a/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java b/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java index cd6ceb74..8f8c6507 100644 --- a/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java +++ b/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java @@ -2,16 +2,16 @@ package de.hysky.skyblocker.utils; import com.google.gson.JsonParser; import com.mojang.serialization.JsonOps; - import it.unimi.dsi.fastutil.ints.IntIntPair; import net.minecraft.Bootstrap; import net.minecraft.SharedConstants; import net.minecraft.item.ItemStack; - import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; +import java.util.TimeZone; + public class ItemUtilsTest { private final ItemStack DARK_CLAYMORE = ItemStack.CODEC.parse(JsonOps.INSTANCE, JsonParser.parseString("{\"id\":\"minecraft:stone_sword\",\"count\":1,\"components\":{\"minecraft:attribute_modifiers\":{\"modifiers\":[],\"show_in_tooltip\":false},\"minecraft:unbreakable\":{\"show_in_tooltip\":false},\"minecraft:lore\":[\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Gear Score: \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"1561 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(5000)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+580 \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+3,339)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Strength: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+517 \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[+5] \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+220) \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+32) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+3,194.1)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Crit Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+133% \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+819%)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Bonus Attack Speed: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+50% \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+77.5%)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Magic Find: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+30 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+46.5)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Ferocity: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+5 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+7.75)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Swing Range: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+2 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+2.1)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[\\\" \\\",{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"❁\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"] \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"❁\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"]\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"\\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"Chimera V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Champion X\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Cleave VI\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Critical VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Cubism VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Divine Gift III\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Dragon Hunter V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Ender Slayer VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Experience V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Fire Aspect III\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"First Strike V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Impaling III\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Lethality VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Looting V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Luck VII\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Prosecute VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Scavenger V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Sharpness VII\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Smoldering V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Syphon V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Tabasco III\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Thunderlord VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Titan Killer VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Vampirism VI\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Venomous VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Vicious V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"gray\\\",\\\"italic\\\":true,\\\"text\\\":\\\"That thing was too big to be called a\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"italic\\\":true,\\\"text\\\":\\\"sword, it was more like a large hunk\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"italic\\\":true,\\\"text\\\":\\\"of stone.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Withered Bonus\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Grants \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+1 \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"❁ Strength \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"per\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"Catacombs \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"level.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"obfuscated\\\":true,\\\"text\\\":\\\"a\\\"},\\\"\\\",{\\\"bold\\\":false,\\\"extra\\\":[\\\" \\\"],\\\"italic\\\":false,\\\"obfuscated\\\":false,\\\"strikethrough\\\":false,\\\"text\\\":\\\"\\\",\\\"underlined\\\":false},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"\\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"MYTHIC DUNGEON LONGSWORD \\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"obfuscated\\\":true,\\\"text\\\":\\\"a\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\"],\"minecraft:enchantment_glint_override\":true,\"minecraft:custom_name\":\"{\\\"extra\\\":[{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"Withered Dark Claymore \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"➎\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"minecraft:custom_data\":{\"rarity_upgrades\":1,\"hot_potato_count\":15,\"gems\":{\"JASPER_0\":{\"uuid\":\"e9881031-1b36-4c41-8d13-739685b700aa\",\"quality\":\"PERFECT\"},\"JASPER_1\":{\"uuid\":\"afb95bac-0269-4978-a3ed-f5a3e4e57338\",\"quality\":\"PERFECT\"},\"unlocked_slots\":[\"JASPER_0\",\"JASPER_1\"]},\"champion_combat_xp\":4.8087379696333125E7,\"modifier\":\"withered\",\"art_of_war_count\":1,\"upgrade_level\":10,\"id\":\"DARK_CLAYMORE\",\"enchantments\":{\"impaling\":3,\"luck\":7,\"critical\":7,\"scavenger\":5,\"ender_slayer\":7,\"fire_aspect\":3,\"experience\":5,\"divine_gift\":3,\"venomous\":6,\"dragon_hunter\":5,\"tabasco\":3,\"thunderlord\":7,\"sharpness\":7,\"cubism\":6,\"titan_killer\":7,\"lethality\":6,\"PROSECUTE\":6,\"vicious\":5,\"cleave\":6,\"smoldering\":5,\"looting\":5,\"syphon\":5,\"ultimate_chimera\":5,\"vampirism\":6,\"first_strike\":5,\"champion\":10},\"uuid\":\"098f4ac1-bf99-4829-a183-70e3a6bc8b2a\",\"timestamp\":1671157200000}}}")).getOrThrow(); private final ItemStack DARK_CLAYMORE_OLD = ItemStack.CODEC.parse(JsonOps.INSTANCE, JsonParser.parseString("{\"id\":\"minecraft:stone_sword\",\"count\":1,\"components\":{\"minecraft:attribute_modifiers\":{\"modifiers\":[],\"show_in_tooltip\":false},\"minecraft:unbreakable\":{\"show_in_tooltip\":false},\"minecraft:lore\":[\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Gear Score: \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"1561 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(5000)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+580 \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+3,339)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Strength: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+517 \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[+5] \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+220) \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+32) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+3,194.1)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Crit Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+133% \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+819%)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Bonus Attack Speed: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+50% \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+77.5%)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Magic Find: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+30 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+46.5)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Ferocity: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+5 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+7.75)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Swing Range: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+2 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+2.1)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[\\\" \\\",{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"❁\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"] \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"❁\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"]\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"\\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"Chimera V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Champion X\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Cleave VI\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Critical VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Cubism VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Divine Gift III\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Dragon Hunter V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Ender Slayer VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Experience V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Fire Aspect III\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"First Strike V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Impaling III\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Lethality VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Looting V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Luck VII\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Prosecute VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Scavenger V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Sharpness VII\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Smoldering V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Syphon V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Tabasco III\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Thunderlord VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Titan Killer VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Vampirism VI\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Venomous VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Vicious V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"gray\\\",\\\"italic\\\":true,\\\"text\\\":\\\"That thing was too big to be called a\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"italic\\\":true,\\\"text\\\":\\\"sword, it was more like a large hunk\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"italic\\\":true,\\\"text\\\":\\\"of stone.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Withered Bonus\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Grants \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+1 \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"❁ Strength \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"per\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"Catacombs \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"level.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"obfuscated\\\":true,\\\"text\\\":\\\"a\\\"},\\\"\\\",{\\\"bold\\\":false,\\\"extra\\\":[\\\" \\\"],\\\"italic\\\":false,\\\"obfuscated\\\":false,\\\"strikethrough\\\":false,\\\"text\\\":\\\"\\\",\\\"underlined\\\":false},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"\\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"MYTHIC DUNGEON LONGSWORD \\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"obfuscated\\\":true,\\\"text\\\":\\\"a\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\"],\"minecraft:enchantment_glint_override\":true,\"minecraft:custom_name\":\"{\\\"extra\\\":[{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"Withered Dark Claymore \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"✪\\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"➎\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"minecraft:custom_data\":{\"rarity_upgrades\":1,\"hot_potato_count\":15,\"gems\":{\"JASPER_0\":{\"uuid\":\"e9881031-1b36-4c41-8d13-739685b700aa\",\"quality\":\"PERFECT\"},\"JASPER_1\":{\"uuid\":\"afb95bac-0269-4978-a3ed-f5a3e4e57338\",\"quality\":\"PERFECT\"},\"unlocked_slots\":[\"JASPER_0\",\"JASPER_1\"]},\"champion_combat_xp\":4.8087379696333125E7,\"modifier\":\"withered\",\"art_of_war_count\":1,\"upgrade_level\":10,\"id\":\"DARK_CLAYMORE\",\"enchantments\":{\"impaling\":3,\"luck\":7,\"critical\":7,\"scavenger\":5,\"ender_slayer\":7,\"fire_aspect\":3,\"experience\":5,\"divine_gift\":3,\"venomous\":6,\"dragon_hunter\":5,\"tabasco\":3,\"thunderlord\":7,\"sharpness\":7,\"cubism\":6,\"titan_killer\":7,\"lethality\":6,\"PROSECUTE\":6,\"vicious\":5,\"cleave\":6,\"smoldering\":5,\"looting\":5,\"syphon\":5,\"ultimate_chimera\":5,\"vampirism\":6,\"first_strike\":5,\"champion\":10},\"uuid\":\"098f4ac1-bf99-4829-a183-70e3a6bc8b2a\",\"timestamp\":\"12/15/22 2:20 AM\"}}}")).getOrThrow(); @@ -20,6 +20,7 @@ public class ItemUtilsTest { @BeforeAll public static void setup() { + TimeZone.setDefault(TimeZone.getTimeZone("UTC")); SharedConstants.createGameVersion(); Bootstrap.initialize(); } @@ -41,7 +42,7 @@ public class ItemUtilsTest { @Test void testGetTimestamp() { Assertions.assertEquals("December 15, 2022", ItemUtils.getTimestamp(DARK_CLAYMORE_OLD)); - Assertions.assertEquals("December 15, 2022", ItemUtils.getTimestamp(DARK_CLAYMORE)); + Assertions.assertEquals("December 16, 2022", ItemUtils.getTimestamp(DARK_CLAYMORE)); // The timestamp is 1671157200000 which is December 16, 2022 in UTC Assertions.assertEquals("April 12, 2024", ItemUtils.getTimestamp(TITANIUM_DRILL_DR_X655)); Assertions.assertEquals("March 1, 2021", ItemUtils.getTimestamp(ASTRAEA)); } |