9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2026-01-04 15:41:38 +00:00

改进3个调试命令

This commit is contained in:
jhqwqmc
2025-10-03 03:01:05 +08:00
parent c99df911c6
commit f662820f5e
3 changed files with 26 additions and 8 deletions

View File

@@ -1,5 +1,8 @@
package net.momirealms.craftengine.bukkit.plugin.command.feature;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature;
import net.momirealms.craftengine.bukkit.util.BlockStateUtils;
import net.momirealms.craftengine.core.block.ImmutableBlockState;
@@ -7,6 +10,7 @@ import net.momirealms.craftengine.core.block.parser.BlockStateParser;
import net.momirealms.craftengine.core.plugin.CraftEngine;
import net.momirealms.craftengine.core.plugin.command.CraftEngineCommandManager;
import net.momirealms.craftengine.core.plugin.command.FlagKeys;
import net.momirealms.craftengine.core.plugin.command.sender.Sender;
import org.bukkit.command.CommandSender;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.incendo.cloud.Command;
@@ -38,7 +42,11 @@ public class DebugGetBlockInternalIdCommand extends BukkitCommandFeature<Command
String data = context.get("id");
ImmutableBlockState state = BlockStateParser.deserialize(data);
if (state == null) return;
context.sender().sendMessage(BlockStateUtils.getBlockOwnerIdFromState(state.customBlockState().literalObject()).toString());
String id = BlockStateUtils.getBlockOwnerIdFromState(state.customBlockState().literalObject()).toString();
Sender sender = plugin().senderFactory().wrap(context.sender());
sender.sendMessage(Component.text(id)
.hoverEvent(Component.text("Copy", NamedTextColor.YELLOW))
.clickEvent(ClickEvent.suggestCommand(id)));
});
}

View File

@@ -1,13 +1,16 @@
package net.momirealms.craftengine.bukkit.plugin.command.feature;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature;
import net.momirealms.craftengine.bukkit.util.BlockStateUtils;
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 org.bukkit.Bukkit;
import org.bukkit.block.data.BlockData;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.incendo.cloud.Command;
import org.incendo.cloud.parser.standard.StringParser;
@@ -20,13 +23,15 @@ public class DebugGetBlockStateRegistryIdCommand extends BukkitCommandFeature<Co
@Override
public Command.Builder<? extends CommandSender> assembleCommand(org.incendo.cloud.CommandManager<CommandSender> manager, Command.Builder<CommandSender> builder) {
return builder
.senderType(Player.class)
.required("state", StringParser.greedyStringParser())
.handler(context -> {
String state = context.get("state");
BlockData blockData = Bukkit.createBlockData(state);
int id = BlockStateUtils.blockDataToId(blockData);
context.sender().sendMessage(String.valueOf(id));
Sender sender = plugin().senderFactory().wrap(context.sender());
sender.sendMessage(Component.text(id)
.hoverEvent(Component.text("Copy", NamedTextColor.YELLOW))
.clickEvent(ClickEvent.suggestCommand(String.valueOf(id))));
});
}

View File

@@ -1,8 +1,9 @@
package net.momirealms.craftengine.bukkit.plugin.command.feature;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.format.NamedTextColor;
import net.momirealms.craftengine.bukkit.block.BukkitBlockManager;
import net.momirealms.craftengine.bukkit.nms.FastNMS;
import net.momirealms.craftengine.bukkit.plugin.command.BukkitCommandFeature;
import net.momirealms.craftengine.bukkit.plugin.reflection.minecraft.CoreReflections;
import net.momirealms.craftengine.bukkit.util.BlockStateUtils;
@@ -11,7 +12,6 @@ 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.plugin.config.Config;
import org.bukkit.Location;
import org.bukkit.block.Block;
import org.bukkit.command.CommandSender;
@@ -44,13 +44,18 @@ public class DebugTargetBlockCommand extends BukkitCommandFeature<CommandSender>
String bData = block.getBlockData().getAsString();
Object blockState = BlockStateUtils.blockDataToBlockState(block.getBlockData());
Sender sender = plugin().senderFactory().wrap(context.sender());
sender.sendMessage(Component.text(bData));
sender.sendMessage(Component.text(bData)
.hoverEvent(Component.text("Copy", NamedTextColor.YELLOW))
.clickEvent(ClickEvent.suggestCommand(bData)));
int id = BlockStateUtils.blockStateToId(blockState);
if (!BlockStateUtils.isVanillaBlock(id)) {
Object holder = BukkitBlockManager.instance().getMinecraftBlockHolder(id);
ImmutableBlockState immutableBlockState = BukkitBlockManager.instance().getImmutableBlockState(id);
if (immutableBlockState != null) {
sender.sendMessage(Component.text(immutableBlockState.toString()));
String bState = immutableBlockState.toString();
sender.sendMessage(Component.text(bState)
.hoverEvent(Component.text("Copy", NamedTextColor.YELLOW))
.clickEvent(ClickEvent.suggestCommand(bState)));
}
ImmutableBlockState dataInCache = plugin().worldManager().getWorld(block.getWorld().getUID()).getBlockStateAtIfLoaded(LocationUtils.toBlockPos(block.getLocation()));
sender.sendMessage(Component.text("cache-state: " + (dataInCache != null && !dataInCache.isEmpty())));