aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky
diff options
context:
space:
mode:
authorRime <81419447+Emirlol@users.noreply.github.com>2024-11-16 22:37:22 +0300
committerGitHub <noreply@github.com>2024-11-16 14:37:22 -0500
commitf39f7938d1710004340fa72c1b584a12b051c3ac (patch)
tree1ade249a0d53c04f05faa57c41ede6dfd9444717 /src/main/java/de/hysky
parenteb492044918512df0dec2ac15169a37bd593e8c4 (diff)
downloadSkyblocker-f39f7938d1710004340fa72c1b584a12b051c3ac.tar.gz
Skyblocker-f39f7938d1710004340fa72c1b584a12b051c3ac.tar.bz2
Skyblocker-f39f7938d1710004340fa72c1b584a12b051c3ac.zip
Add colored item dump output (#1048)
Diffstat (limited to 'src/main/java/de/hysky')
-rw-r--r--src/main/java/de/hysky/skyblocker/config/categories/DebugCategory.java10
-rw-r--r--src/main/java/de/hysky/skyblocker/config/configs/DebugConfig.java4
-rw-r--r--src/main/java/de/hysky/skyblocker/debug/Debug.java25
3 files changed, 36 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/config/categories/DebugCategory.java b/src/main/java/de/hysky/skyblocker/config/categories/DebugCategory.java
index b07753a5..9ff08e2f 100644
--- a/src/main/java/de/hysky/skyblocker/config/categories/DebugCategory.java
+++ b/src/main/java/de/hysky/skyblocker/config/categories/DebugCategory.java
@@ -2,9 +2,11 @@ package de.hysky.skyblocker.config.categories;
import de.hysky.skyblocker.config.ConfigUtils;
import de.hysky.skyblocker.config.SkyblockerConfig;
+import de.hysky.skyblocker.debug.Debug;
import dev.isxander.yacl3.api.ConfigCategory;
import dev.isxander.yacl3.api.Option;
import dev.isxander.yacl3.api.OptionDescription;
+import dev.isxander.yacl3.api.controller.EnumControllerBuilder;
import dev.isxander.yacl3.api.controller.IntegerSliderControllerBuilder;
import net.minecraft.text.Text;
@@ -34,6 +36,14 @@ public class DebugCategory {
newValue -> config.debug.webSocketDebug = newValue)
.controller(ConfigUtils::createBooleanController)
.build())
+ .option(Option.<Debug.DumpFormat>createBuilder()
+ .name(Text.translatable("skyblocker.config.debug.dumpFormat"))
+ .description(OptionDescription.of(Text.translatable("skyblocker.config.debug.dumpFormat.@Tooltip")))
+ .binding(defaults.debug.dumpFormat,
+ () -> config.debug.dumpFormat,
+ newValue -> config.debug.dumpFormat = newValue)
+ .controller(opt -> EnumControllerBuilder.create(opt).enumClass(Debug.DumpFormat.class)) // ConfigUtils::createEnumCyclingListController causes a NPE for some reason
+ .build())
.build();
}
}
diff --git a/src/main/java/de/hysky/skyblocker/config/configs/DebugConfig.java b/src/main/java/de/hysky/skyblocker/config/configs/DebugConfig.java
index 16474a49..80023631 100644
--- a/src/main/java/de/hysky/skyblocker/config/configs/DebugConfig.java
+++ b/src/main/java/de/hysky/skyblocker/config/configs/DebugConfig.java
@@ -1,5 +1,6 @@
package de.hysky.skyblocker.config.configs;
+import de.hysky.skyblocker.debug.Debug;
import dev.isxander.yacl3.config.v2.api.SerialEntry;
public class DebugConfig {
@@ -7,6 +8,9 @@ public class DebugConfig {
public int dumpRange = 5;
@SerialEntry
+ public Debug.DumpFormat dumpFormat = Debug.DumpFormat.SNBT;
+
+ @SerialEntry
public boolean showInvisibleArmorStands = false;
@SerialEntry
diff --git a/src/main/java/de/hysky/skyblocker/debug/Debug.java b/src/main/java/de/hysky/skyblocker/debug/Debug.java
index da4ac9c1..8a493334 100644
--- a/src/main/java/de/hysky/skyblocker/debug/Debug.java
+++ b/src/main/java/de/hysky/skyblocker/debug/Debug.java
@@ -19,6 +19,7 @@ import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
import net.fabricmc.fabric.api.client.screen.v1.ScreenKeyboardEvents;
import net.fabricmc.loader.api.FabricLoader;
+import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.client.gui.screen.ingame.HandledScreen;
import net.minecraft.client.option.KeyBinding;
@@ -26,6 +27,7 @@ import net.minecraft.entity.decoration.ArmorStandEntity;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtCompound;
import net.minecraft.nbt.NbtHelper;
+import net.minecraft.nbt.NbtOps;
import net.minecraft.predicate.entity.EntityPredicates;
import net.minecraft.screen.slot.Slot;
import net.minecraft.text.Text;
@@ -83,9 +85,9 @@ public class Debug {
Slot focusedSlot = ((HandledScreenAccessor) handledScreen).getFocusedSlot();
if (dumpHoveredItemKey.matchesKey(key, scancode) && client.player != null && focusedSlot != null && focusedSlot.hasStack()) {
if (!Screen.hasShiftDown()) {
- client.player.sendMessage(Constants.PREFIX.get().append(Text.literal("Hovered Item: " + SkyblockerMod.GSON_COMPACT.toJson(ItemStack.CODEC.encodeStart(ItemStackComponentizationFixer.getRegistryLookup().getOps(JsonOps.INSTANCE), focusedSlot.getStack()).getOrThrow()))), false);
+ client.player.sendMessage(Constants.PREFIX.get().append("Hovered Item: ").append(SkyblockerConfigManager.get().debug.dumpFormat.format(focusedSlot.getStack())), false);
} else {
- client.player.sendMessage(Constants.PREFIX.get().append(Text.literal("Held Item NW Calcs: " + SkyblockerMod.GSON_COMPACT.toJson(Calculation.LIST_CODEC.encodeStart(JsonOps.INSTANCE, NetworthCalculator.getItemNetworth(focusedSlot.getStack()).calculations()).getOrThrow()))), false);
+ client.player.sendMessage(Constants.PREFIX.get().append("Held Item NW Calcs: ").append(Text.literal(SkyblockerMod.GSON_COMPACT.toJson(Calculation.LIST_CODEC.encodeStart(JsonOps.INSTANCE, NetworthCalculator.getItemNetworth(focusedSlot.getStack()).calculations()).getOrThrow()))), false);
}
}
});
@@ -136,4 +138,21 @@ public class Debug {
return Command.SINGLE_SUCCESS;
});
}
-} \ No newline at end of file
+
+ public enum DumpFormat {
+ JSON {
+ @Override
+ public Text format(ItemStack stack) {
+ return Text.literal(SkyblockerMod.GSON_COMPACT.toJson(ItemStack.CODEC.encodeStart(ItemStackComponentizationFixer.getRegistryLookup().getOps(JsonOps.INSTANCE), stack).getOrThrow()));
+ }
+ },
+ SNBT {
+ @Override
+ public Text format(ItemStack stack) {
+ return NbtHelper.toPrettyPrintedText(ItemStack.CODEC.encodeStart(MinecraftClient.getInstance().player.getRegistryManager().getOps(NbtOps.INSTANCE), stack).getOrThrow());
+ }
+ };
+
+ abstract Text format(ItemStack stack);
+ }
+}