Хочу сделать что то по типу руки мидаса но не понимаю как

Версия Minecraft
1.21.0
API
Fabric
Xочу сделать так чтобы все блоки к которым я прикоснусь превращались в мой блок из мода через java.util.Map типо:
Код:
public class Midas extends Item {
private static final Map<Block, Block> MIDAS_MAP =
Map.of(
... , ModBlocks. ...
                );
Возможно ли так сделать так или нет? Лично у меня не получатся как бы я не пытался
 
Последнее редактирование:
ZZZZ:
public class Midas extends Item {
    private static final Map<Block, Block> MIDAS_MAP = new HashMap<>();
    
    static {
        MIDAS_MAP.put(Blocks.STONE, ModBlocks.GOLDEN_STONE);
        MIDAS_MAP.put(Blocks.DIRT, ModBlocks.GOLDEN_DIRT);
        MIDAS_MAP.put(Blocks.GRASS_BLOCK, ModBlocks.GOLDEN_GRASS_BLOCK);
    }
    
    public Midas(Settings settings) {
        super(settings);
    }
    
    @Override
    public ActionResult useOnBlock(ItemUsageContext context) {
        World world = context.getWorld();
        BlockPos pos = context.getBlockPos();
        BlockState state = world.getBlockState(pos);
        Block originalBlock = state.getBlock();
        
        if (MIDAS_MAP.containsKey(originalBlock)) {
            Block goldenBlock = MIDAS_MAP.get(originalBlock);
            
            world.setBlockState(pos, goldenBlock.getDefaultState());
            
            if (context.getStack().isDamageable()) {
                context.getStack().damage(1, context.getPlayer(),
                    (player) -> player.sendToolBreakStatus(context.getHand()));
            }
            
            return ActionResult.SUCCESS;
        }
        
        return ActionResult.PASS;
    }
}
 
Назад
Сверху