From 5adc5da6cd02e5ee9a60d7a77b80019ffbbb6e92 Mon Sep 17 00:00:00 2001 From: alemi Date: Wed, 14 Feb 2024 20:30:53 +0100 Subject: feat: block and item id search --- src/main/java/ftbsc/bscv/commands/BlockSearch.java | 15 +++++++++++++++ src/main/java/ftbsc/bscv/commands/ItemCommand.java | 14 ++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/src/main/java/ftbsc/bscv/commands/BlockSearch.java b/src/main/java/ftbsc/bscv/commands/BlockSearch.java index dd5f663..17d1fb0 100644 --- a/src/main/java/ftbsc/bscv/commands/BlockSearch.java +++ b/src/main/java/ftbsc/bscv/commands/BlockSearch.java @@ -9,6 +9,8 @@ import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.command.CommandSource; import net.minecraft.command.Commands; +import net.minecraft.command.arguments.BlockStateArgument; +import net.minecraft.command.arguments.BlockStateInput; import static ftbsc.bscv.Boscovicino.log; @@ -48,6 +50,19 @@ public class BlockSearch extends AbstractCommand { ) ) ) + .then( + Commands.literal("id") + .then( + Commands.argument("name", BlockStateArgument.block()) + .executes( ctx -> { + BlockStateInput arg = ctx.getArgument("name", BlockStateInput.class); + BlockState state = arg.getState(); + int block_id = Block.getId(state); + log("block #[%d:%d] >> %s", block_id >> 4, block_id & 0xF, state.toString()); + return 1; + }) + ) + ) .executes(ctx -> { log("no block specified"); return 0; diff --git a/src/main/java/ftbsc/bscv/commands/ItemCommand.java b/src/main/java/ftbsc/bscv/commands/ItemCommand.java index e1e1b80..c380609 100644 --- a/src/main/java/ftbsc/bscv/commands/ItemCommand.java +++ b/src/main/java/ftbsc/bscv/commands/ItemCommand.java @@ -8,6 +8,8 @@ import ftbsc.bscv.api.ILoadable; import ftbsc.bscv.tools.Inventory; import net.minecraft.command.CommandSource; import net.minecraft.command.Commands; +import net.minecraft.command.arguments.ItemArgument; +import net.minecraft.command.arguments.ItemInput; import net.minecraft.inventory.container.Slot; import net.minecraft.item.Item; @@ -48,6 +50,18 @@ public class ItemCommand extends AbstractCommand { }) ) ) + .then( + Commands.literal("id") + .then( + Commands.argument("name", ItemArgument.item()) + .executes( ctx -> { + ItemInput arg = ctx.getArgument("name", ItemInput.class); + Item item = arg.getItem(); + log("item #[%d] >> %s", Item.getId(item), item.toString()); + return 1; + }) + ) + ) .executes(ctx -> { Slot slot = Inventory.hotbar(MC.player).get(MC.player.inventory.selected); if (!slot.hasItem()) return 0; -- cgit v1.2.3-56-ga3b1