diff options
| author | Rime <81419447+Emirlol@users.noreply.github.com> | 2024-11-16 22:37:22 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-11-16 14:37:22 -0500 |
| commit | f39f7938d1710004340fa72c1b584a12b051c3ac (patch) | |
| tree | 1ade249a0d53c04f05faa57c41ede6dfd9444717 /src/main/java/de/hysky | |
| parent | eb492044918512df0dec2ac15169a37bd593e8c4 (diff) | |
| download | Skyblocker-f39f7938d1710004340fa72c1b584a12b051c3ac.tar.gz Skyblocker-f39f7938d1710004340fa72c1b584a12b051c3ac.tar.bz2 Skyblocker-f39f7938d1710004340fa72c1b584a12b051c3ac.zip | |
Add colored item dump output (#1048)
Diffstat (limited to 'src/main/java/de/hysky')
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); + } +} |
