aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java12
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/ItemUtils.java2
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tictactoe/BoardIndex.java5
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/tictactoe/TicTacToeUtils.java210
-rw-r--r--src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java4
5 files changed, 127 insertions, 106 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java
index e4c51e69..1683276e 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/puzzle/TicTacToe.java
@@ -4,6 +4,7 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonManager;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.render.RenderHelper;
+import de.hysky.skyblocker.utils.tictactoe.BoardIndex;
import de.hysky.skyblocker.utils.tictactoe.TicTacToeUtils;
import net.fabricmc.fabric.api.client.rendering.v1.WorldRenderContext;
import net.minecraft.client.MinecraftClient;
@@ -49,7 +50,8 @@ public class TicTacToe extends DungeonPuzzle {
try {
//Only attempt to solve if the puzzle wasn't just completed and if its the player's turn
- if (itemFramesThatHoldMaps.size() != 9 && itemFramesThatHoldMaps.size() % 2 == 1) {
+ //The low bit will always be set to 1 on odd numbers
+ if (itemFramesThatHoldMaps.size() != 9 && (itemFramesThatHoldMaps.size() & 1) == 1) {
char[][] board = new char[3][3];
for (ItemFrameEntity itemFrame : itemFramesThatHoldMaps) {
@@ -83,7 +85,7 @@ public class TicTacToe extends DungeonPuzzle {
if (row == -1 || column == -1) continue;
//Get the color of the middle pixel of the map which determines whether its X or O
- int middleColor = mapState.colors[8256] & 255;
+ int middleColor = mapState.colors[8256] & 0xFF;
if (middleColor == 114) {
board[row][column] = 'X';
@@ -92,11 +94,11 @@ public class TicTacToe extends DungeonPuzzle {
}
}
- int bestMove = TicTacToeUtils.getBestMove(board) - 1;
+ BoardIndex bestMove = TicTacToeUtils.getBestMove(board);
double nextX = 8;
- double nextY = 72 - (double) (bestMove / 3);
- double nextZ = 17 - (bestMove % 3);
+ double nextY = 72 - bestMove.row();
+ double nextZ = 17 - bestMove.column();
BlockPos nextPos = DungeonManager.getCurrentRoom().relativeToActual(BlockPos.ofFloored(nextX, nextY, nextZ));
nextBestMoveToMake = new Box(nextPos);
diff --git a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
index 64b3dcaf..32ca36ca 100644
--- a/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/ItemUtils.java
@@ -45,7 +45,7 @@ public class ItemUtils {
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 DateTimeFormatter OLD_OBTAINED_DATE_FORMAT = DateTimeFormatter.ofPattern("MM/dd/yy h:mm a").withZone(ZoneId.of("UTC")).localizedBy(Locale.ENGLISH);
+ private static final DateTimeFormatter OLD_OBTAINED_DATE_FORMAT = DateTimeFormatter.ofPattern("M/d/yy h:m 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
diff --git a/src/main/java/de/hysky/skyblocker/utils/tictactoe/BoardIndex.java b/src/main/java/de/hysky/skyblocker/utils/tictactoe/BoardIndex.java
new file mode 100644
index 00000000..bd9200ad
--- /dev/null
+++ b/src/main/java/de/hysky/skyblocker/utils/tictactoe/BoardIndex.java
@@ -0,0 +1,5 @@
+package de.hysky.skyblocker.utils.tictactoe;
+
+public record BoardIndex(int row, int column) {
+
+}
diff --git a/src/main/java/de/hysky/skyblocker/utils/tictactoe/TicTacToeUtils.java b/src/main/java/de/hysky/skyblocker/utils/tictactoe/TicTacToeUtils.java
index fde18f27..0725b2ce 100644
--- a/src/main/java/de/hysky/skyblocker/utils/tictactoe/TicTacToeUtils.java
+++ b/src/main/java/de/hysky/skyblocker/utils/tictactoe/TicTacToeUtils.java
@@ -1,105 +1,119 @@
package de.hysky.skyblocker.utils.tictactoe;
+import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.Comparator;
+import java.util.stream.Stream;
+
+import it.unimi.dsi.fastutil.objects.Object2IntMap;
+import it.unimi.dsi.fastutil.objects.Object2IntOpenHashMap;
public class TicTacToeUtils {
- public static int getBestMove(char[][] board) {
- HashMap<Integer, Integer> moves = new HashMap<>();
- for (int row = 0; row < board.length; row++) {
- for (int col = 0; col < board[row].length; col++) {
- if (board[row][col] != '\0') continue;
- board[row][col] = 'O';
- int score = alphabeta(board, Integer.MIN_VALUE, Integer.MAX_VALUE, false, 0);
- board[row][col] = '\0';
- moves.put(row * 3 + col + 1, score);
- }
- }
- return Collections.max(moves.entrySet(), Map.Entry.comparingByValue()).getKey();
- }
-
- private static boolean hasMovesLeft(char[][] board) {
- for (char[] rows : board) {
- for (char col : rows) {
- if (col == '\0') return true;
- }
- }
- return false;
- }
-
- private static int getBoardScore(char[][] board) {
- for (int row = 0; row < 3; row++) {
- if (board[row][0] == board[row][1] && board[row][0] == board[row][2]) {
- if (board[row][0] == 'X') {
- return -10;
- } else if (board[row][0] == 'O') {
- return 10;
- }
- }
- }
-
- for (int col = 0; col < 3; col++) {
- if (board[0][col] == board[1][col] && board[0][col] == board[2][col]) {
- if (board[0][col] == 'X') {
- return -10;
- } else if (board[0][col] == 'O') {
- return 10;
- }
- }
- }
-
- if (board[0][0] == board[1][1] && board[0][0] == board[2][2]) {
- if (board[0][0] == 'X') {
- return -10;
- } else if (board[0][0] == 'O') {
- return 10;
- }
- } else if (board[0][2] == board[1][1] && board[0][2] == board[2][0]) {
- if (board[0][2] == 'X') {
- return -10;
- } else if (board[0][2] == 'O') {
- return 10;
- }
- }
-
- return 0;
- }
-
- private static int alphabeta(char[][] board, int alpha, int beta, boolean max, int depth) {
- int score = getBoardScore(board);
- if (score == 10 || score == -10) return score;
- if (!hasMovesLeft(board)) return 0;
-
- if (max) {
- int bestScore = Integer.MIN_VALUE;
- for (int row = 0; row < 3; row++) {
- for (int col = 0; col < 3; col++) {
- if (board[row][col] == '\0') {
- board[row][col] = 'O';
- bestScore = Math.max(bestScore, alphabeta(board, alpha, beta, false, depth + 1));
- board[row][col] = '\0';
- alpha = Math.max(alpha, bestScore);
- if (beta <= alpha) break; // Pruning
- }
- }
- }
- return bestScore - depth;
- } else {
- int bestScore = Integer.MAX_VALUE;
- for (int row = 0; row < 3; row++) {
- for (int col = 0; col < 3; col++) {
- if (board[row][col] == '\0') {
- board[row][col] = 'X';
- bestScore = Math.min(bestScore, alphabeta(board, alpha, beta, true, depth + 1));
- board[row][col] = '\0';
- beta = Math.min(beta, bestScore);
- if (beta <= alpha) break; // Pruning
- }
- }
- }
- return bestScore + depth;
- }
- }
+ public static BoardIndex getBestMove(char[][] board) {
+ Object2IntOpenHashMap<BoardIndex> moves = new Object2IntOpenHashMap<>();
+
+ for (int row = 0; row < board.length; row++) {
+ for (int column = 0; column < board[row].length; column++) {
+ // Simulate the move as O if the square is empty to determine a solution
+ if (board[row][column] != '\0') continue;
+ board[row][column] = 'O';
+ int score = alphabeta(board, Integer.MIN_VALUE, Integer.MAX_VALUE, 0, false);
+ board[row][column] = '\0';
+
+ moves.put(new BoardIndex(row, column), score);
+ }
+ }
+
+ return Collections.max(moves.object2IntEntrySet(), Comparator.comparingInt(Object2IntMap.Entry::getIntValue)).getKey();
+ }
+
+ private static boolean hasMovesAvailable(char[][] board) {
+ return Arrays.stream(board).flatMap(row -> Stream.of(row[0], row[1], row[2])).anyMatch(c -> c == '\0');
+ }
+
+ private static int getScore(char[][] board) {
+ // Check if X or O has won horizontally
+ for (int row = 0; row < 3; row++) {
+ if (board[row][0] == board[row][1] && board[row][0] == board[row][2]) {
+ switch (board[row][0]) {
+ case 'X': return -10;
+ case 'O': return 10;
+ }
+ }
+ }
+
+ // Check if X or O has won vertically
+ for (int column = 0; column < 3; column++) {
+ if (board[0][column] == board[1][column] && board[0][column] == board[2][column]) {
+ switch (board[0][column]) {
+ case 'X': return -10;
+ case 'O': return 10;
+ }
+ }
+ }
+
+ // Check if X or O has won diagonally
+ // Top left to bottom right
+ if (board[0][0] == board[1][1] && board[0][0] == board[2][2]) {
+ switch (board[0][0]) {
+ case 'X': return -10;
+ case 'O': return 10;
+ }
+ }
+
+ // Top right to bottom left
+ if (board[0][2] == board[1][1] && board[0][2] == board[2][0]) {
+ switch (board[0][2]) {
+ case 'X': return -10;
+ case 'O': return 10;
+ }
+ }
+
+ return 0;
+ }
+
+ private static int alphabeta(char[][] board, int alpha, int beta, int depth, boolean maximizePlayer) {
+ int score = getScore(board);
+
+ if (score == 10 || score == -10) return score;
+ if (!hasMovesAvailable(board)) return 0;
+
+ if (maximizePlayer) {
+ int bestScore = Integer.MIN_VALUE;
+
+ for (int row = 0; row < 3; row++) {
+ for (int column = 0; column < 3; column++) {
+ if (board[row][column] == '\0') {
+ board[row][column] = 'O';
+ bestScore = Math.max(bestScore, alphabeta(board, alpha, beta, depth + 1, false));
+ board[row][column] = '\0';
+ alpha = Math.max(alpha, bestScore);
+
+ //Is this correct? Well the algorithm seems to solve it so I will assume it is
+ if (beta <= alpha) break; // Pruning
+ }
+ }
+ }
+
+ return bestScore - depth;
+ } else {
+ int bestScore = Integer.MAX_VALUE;
+
+ for (int row = 0; row < 3; row++) {
+ for (int column = 0; column < 3; column++) {
+ if (board[row][column] == '\0') {
+ board[row][column] = 'X';
+ bestScore = Math.min(bestScore, alphabeta(board, alpha, beta, depth + 1, true));
+ board[row][column] = '\0';
+ beta = Math.min(beta, bestScore);
+
+ if (beta <= alpha) break; // Pruning
+ }
+ }
+ }
+
+ return bestScore + depth;
+ }
+ }
} \ No newline at end of file
diff --git a/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java b/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java
index 8f8c6507..33509228 100644
--- a/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java
+++ b/src/test/java/de/hysky/skyblocker/utils/ItemUtilsTest.java
@@ -14,7 +14,7 @@ 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();
+ 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\":\"2/5/22 2:20 AM\"}}}")).getOrThrow();
private final ItemStack TITANIUM_DRILL_DR_X655 = ItemStack.CODEC.parse(JsonOps.INSTANCE, JsonParser.parseString("{\"id\":\"minecraft:prismarine_shard\",\"count\":1,\"components\":{\"minecraft:attribute_modifiers\":{\"modifiers\":[],\"show_in_tooltip\":false},\"minecraft:enchantments\":{\"levels\":{\"minecraft:efficiency\":5}},\"minecraft:lore\":[\"{\\\"extra\\\":[{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"Breaking Power 10\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+75\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Mining Speed: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+1,810 \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"[+50] \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+60) \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+100)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Mining Fortune: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+273 \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+8) \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+50)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Pristine: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+7 \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+2)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Mining Wisdom: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+4\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[\\\" \\\",{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"⸕\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"] \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"☘\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"] \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"✦\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"]\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Compact IV \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"4,481\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Efficiency V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Experience IV\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Fortune IV\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Pristine V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Smelting Touch I\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"Mithril-Infused Fuel Tank\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Increases the fuel capacity to \\\"},{\\\"color\\\":\\\"dark_green\\\",\\\"text\\\":\\\"10,000\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\".\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Drill Engine: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"Not Installed\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Increases \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"⸕ Mining Speed \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"with part\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"installed.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"Sunny Side Goblin Egg Part\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Grants \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+50 \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"☘ Mining Fortune\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\", but fuel\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"consumption is doubled.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Fuel: \\\"},{\\\"color\\\":\\\"dark_green\\\",\\\"text\\\":\\\"5,395\\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"/10k\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"Ability: Mining Speed Boost \\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"RIGHT CLICK\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Grants \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+\\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"300% \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"⸕ Mining Speed \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"for\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"20s\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\".\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"Cooldown: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"120s\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Auspicious Bonus\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Grants \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+8 \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"☘ Mining Fortune\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\", which\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"increases your chance for multiple\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"drops.\\\"}],\\\"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 DRILL \\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"obfuscated\\\":true,\\\"text\\\":\\\"a\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\"],\"minecraft:custom_name\":\"{\\\"extra\\\":[{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"Auspicious Titanium Drill DR-X655\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"minecraft:custom_data\":{\"rarity_upgrades\":1,\"drill_part_upgrade_module\":\"goblin_omelette_sunny_side\",\"gems\":{\"AMBER_0\":\"PERFECT\",\"JADE_0\":\"PERFECT\",\"MINING_0_gem\":\"TOPAZ\",\"MINING_0\":\"PERFECT\",\"unlocked_slots\":[\"JADE_0\",\"MINING_0\"]},\"polarvoid\":5,\"drill_fuel\":5395,\"modifier\":\"auspicious\",\"compact_blocks\":4481,\"id\":\"TITANIUM_DRILL_4\",\"enchantments\":{\"pristine\":5,\"efficiency\":5,\"fortune\":4,\"smelting_touch\":1,\"compact\":4,\"experience\":4},\"drill_part_fuel_tank\":\"mithril_fuel_tank\",\"uuid\":\"24404cec-7249-4612-b43e-0bc897384dd2\",\"timestamp\":1712894721557},\"minecraft:damage\":4605}}")).getOrThrow();
private final ItemStack ASTRAEA = ItemStack.CODEC.parse(JsonOps.INSTANCE, JsonParser.parseString("{\"id\":\"minecraft:iron_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\\\":\\\"1851 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(5000)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+377 \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+2,205)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Strength: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+250 \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[+5] \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+50) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+1,480.5)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Crit Damage: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+70% \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+441%)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Bonus Attack Speed: \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+7% \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+7%) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+10.85%)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Defense: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+405 \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+2,394)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Intelligence: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+210 \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"(+125) \\\"},{\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"(+30) \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+1,291.5)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"True Defense: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+22 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+31)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Ferocity: \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+33 \\\"},{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"(+46.5)\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[\\\" \\\",{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"dark_purple\\\",\\\"text\\\":\\\"☤\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"] \\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"[\\\"},{\\\"color\\\":\\\"aqua\\\",\\\"text\\\":\\\"⚔\\\"},{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"]\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"\\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"light_purple\\\",\\\"text\\\":\\\"Ultimate Wise V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Champion X\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Cleave VI\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Critical VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Cubism V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Dragon Hunter V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Ender Slayer VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Execute V\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Experience V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Fire Aspect III\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"First Strike IV\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Giant Killer VI\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Impaling III\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Lethality VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Life Steal V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Looting IV\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Luck VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Scavenger V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Smite VII\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Tabasco III\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Thunderlord VII\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"#AA5500\\\",\\\"text\\\":\\\"Vampirism VI\\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\", \\\"},{\\\"color\\\":\\\"blue\\\",\\\"text\\\":\\\"Venomous V\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Deals +\\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"50% \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"damage to Withers.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Grants \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"+1 \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"❁ Damage \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"and \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"+2 \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"❈\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"Defense \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"per \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"Catacombs \\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"level.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"Scroll Abilities:\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gold\\\",\\\"text\\\":\\\"Ability: Wither Impact \\\"},{\\\"bold\\\":true,\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"RIGHT CLICK\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Teleport \\\"},{\\\"color\\\":\\\"green\\\",\\\"text\\\":\\\"10 blocks\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\" ahead of you.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"Then implode dealing \\\"},{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"109,088.2\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"red\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"damage to nearby enemies. Also\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"applies the wither shield scroll\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"ability reducing damage taken and\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"granting an absorption shield for \\\"},{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"5\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"yellow\\\",\\\"text\\\":\\\"\\\"},{\\\"color\\\":\\\"gray\\\",\\\"text\\\":\\\"seconds.\\\"}],\\\"italic\\\":false,\\\"text\\\":\\\"\\\"}\",\"{\\\"extra\\\":[{\\\"color\\\":\\\"dark_gray\\\",\\\"text\\\":\\\"Mana Cost: \\\"},{\\\"color\\\":\\\"dark_aqua\\\",\\\"text\\\":\\\"150\\\"}],\\\"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 SWORD \\\"},{\\\"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\\\":\\\"Heroic Astraea \\\"},{\\\"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,\"modifier\":\"heroic\",\"art_of_war_count\":1,\"dungeon_item_level\":5,\"upgrade_level\":10,\"originTag\":\"ASTRAEA_UPGRADE\",\"enchantments\":{\"impaling\":3,\"luck\":7,\"critical\":6,\"cleave\":6,\"looting\":4,\"smite\":7,\"telekinesis\":1,\"ender_slayer\":6,\"scavenger\":5,\"experience\":5,\"vampirism\":6,\"fire_aspect\":3,\"execute\":5,\"life_steal\":5,\"giant_killer\":6,\"first_strike\":4,\"venomous\":5,\"dragon_hunter\":5,\"tabasco\":3,\"thunderlord\":7,\"ultimate_wise\":5,\"cubism\":5,\"champion\":10,\"lethality\":6},\"uuid\":\"38d58369-401c-4cda-945d-759cb652c718\",\"ability_scroll\":[\"WITHER_SHIELD_SCROLL\",\"SHADOW_WARP_SCROLL\",\"IMPLOSION_SCROLL\"],\"hot_potato_count\":15,\"gems\":{\"DEFENSIVE_0\":{\"uuid\":\"1ed969b4-372e-4692-a994-4026ec480668\",\"quality\":\"PERFECT\"},\"DEFENSIVE_0_gem\":\"AMETHYST\",\"COMBAT_0\":{\"uuid\":\"77d8ef8f-2142-4a01-a6ec-1fa6352d62e4\",\"quality\":\"PERFECT\"},\"COMBAT_0_gem\":\"SAPPHIRE\"},\"champion_combat_xp\":1.381000444237401E8,\"id\":\"ASTRAEA\",\"timestamp\":1614631200000}}}")).getOrThrow();
@@ -41,7 +41,7 @@ public class ItemUtilsTest {
@Test
void testGetTimestamp() {
- Assertions.assertEquals("December 15, 2022", ItemUtils.getTimestamp(DARK_CLAYMORE_OLD));
+ Assertions.assertEquals("February 5, 2022", ItemUtils.getTimestamp(DARK_CLAYMORE_OLD));
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));