From 8b4a0467f09c3c5ca5440bd923725a49a9744151 Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Sat, 22 Mar 2025 05:11:03 +0800 Subject: [PATCH] improve debug commands --- .../DebugAppearanceStateUsageCommand.java | 20 ++++++++++++----- .../feature/DebugRealStateUsageCommand.java | 22 ++++++++++++++----- .../feature/DebugTargetBlockCommand.java | 4 ++++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugAppearanceStateUsageCommand.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugAppearanceStateUsageCommand.java index 78ba75961..2aad44aad 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugAppearanceStateUsageCommand.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugAppearanceStateUsageCommand.java @@ -44,8 +44,10 @@ public class DebugAppearanceStateUsageCommand extends BukkitCommandFeature appearances = blockManager.blockAppearanceArranger().get(baseBlockId); if (appearances == null) return; int i = 0; - Component component = Component.text(baseBlockId + ": "); - List children = new ArrayList<>(); + Component block = Component.text(baseBlockId + ": "); + plugin().senderFactory().wrap(context.sender()).sendMessage(block); + + List batch = new ArrayList<>(); for (int appearance : appearances) { Component text = Component.text("|"); List reals = blockManager.appearanceToRealStates(appearance); @@ -64,11 +66,19 @@ public class DebugAppearanceStateUsageCommand extends BukkitCommandFeature reals = blockManager.realBlockArranger().get(baseBlockId); if (reals == null) return; int i = 0; - Component component = Component.text(baseBlockId + ": "); - List children = new ArrayList<>(); + Component block = Component.text(baseBlockId + ": "); + plugin().senderFactory().wrap(context.sender()).sendMessage(block); + + List batch = new ArrayList<>(100); for (int real : reals) { ImmutableBlockState state = blockManager.getImmutableBlockStateUnsafe(real); if (state.isEmpty()) { Component hover = Component.text("craftengine:" + baseBlockId.value() + "_" + i).color(NamedTextColor.GREEN); - children.add(Component.text("|").color(NamedTextColor.GREEN).hoverEvent(HoverEvent.showText(hover))); + batch.add(Component.text("|").color(NamedTextColor.GREEN).hoverEvent(HoverEvent.showText(hover))); } else { Component hover = Component.text("craftengine:" + baseBlockId.value() + "_" + i).color(NamedTextColor.RED); hover = hover.append(Component.newline()).append(Component.text(state.toString()).color(NamedTextColor.GRAY)); - children.add(Component.text("|").color(NamedTextColor.RED).hoverEvent(HoverEvent.showText(hover))); + batch.add(Component.text("|").color(NamedTextColor.RED).hoverEvent(HoverEvent.showText(hover))); } i++; + if (batch.size() == 100) { + plugin().senderFactory().wrap(context.sender()) + .sendMessage(Component.text("").children(batch)); + batch.clear(); + } + } + if (!batch.isEmpty()) { + plugin().senderFactory().wrap(context.sender()) + .sendMessage(Component.text("").children(batch)); + batch.clear(); } - plugin().senderFactory().wrap(context.sender()) - .sendMessage(component.children(children)); }); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugTargetBlockCommand.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugTargetBlockCommand.java index ff3722abd..e86731a62 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugTargetBlockCommand.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/command/feature/DebugTargetBlockCommand.java @@ -4,11 +4,13 @@ import net.kyori.adventure.text.Component; import net.momirealms.craftengine.bukkit.block.BukkitBlockManager; import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature; import net.momirealms.craftengine.bukkit.util.BlockStateUtils; +import net.momirealms.craftengine.bukkit.util.LocationUtils; import net.momirealms.craftengine.bukkit.util.Reflections; import net.momirealms.craftengine.core.block.ImmutableBlockState; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.command.CraftEngineCommandManager; import net.momirealms.craftengine.core.plugin.command.sender.Sender; +import net.momirealms.craftengine.core.world.BlockPos; import org.bukkit.Location; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; @@ -50,6 +52,8 @@ public class DebugTargetBlockCommand extends BukkitCommandFeature if (immutableBlockState != null) { sender.sendMessage(Component.text(immutableBlockState.toString())); } + ImmutableBlockState dataInCache = plugin().worldManager().getWorld(block.getWorld().getUID()).getBlockStateAtIfLoaded(LocationUtils.toBlockPos(block.getLocation())); + sender.sendMessage(Component.text("cache-state: " + !dataInCache.isEmpty())); try { @SuppressWarnings("unchecked") Set tags = (Set) Reflections.field$Holder$Reference$tags.get(holder);