You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Minecraft Fabric 1.21.3如何注册带经验掉落的自定义方块

解决Minecraft 1.21.3模组注册带经验掉落方块的问题

核心思路

你不用死磕Block::new,factory参数本质就是个接收AbstractBlock.Settings、返回Block实例的函数——直接自定义这个函数,就能把ExperienceDroppingBlock的经验设置逻辑嵌进去。

直接可用的修改方案

修改方块注册调用

把原来的Block::new替换成自定义lambda表达式,在里面创建ExperienceDroppingBlock并传入经验范围和方块设置:

public static final Block BLOCK_NAME = registerBlock("block_name",
        // 自定义factory:用传入的settings创建带经验掉落的方块
        settings -> new ExperienceDroppingBlock(UniformIntProvider.create(2, 5), settings),
        Block.Settings.create().strength(3f).requiresTool());

确认注册逻辑兼容性

你的1.21.3注册方法本身完全适配这个修改——因为ExperienceDroppingBlock是Block的子类,返回的实例符合类型要求,Blocks.register和Items.register都能正常处理。

可选优化:封装复用逻辑

如果要注册多个带经验掉落的方块,可以单独封装一个注册方法减少重复代码:

private static Block registerExperienceBlock(String name, UniformIntProvider xpRange, AbstractBlock.Settings settings) {
    return registerBlock(name,
            settings -> new ExperienceDroppingBlock(xpRange, settings),
            settings);
}

调用时会更简洁:

public static final Block BLOCK_NAME = registerExperienceBlock("block_name", UniformIntProvider.create(2,5), Block.Settings.create().strength(3f).requiresTool());

内容的提问来源于stack exchange,提问作者user28175778

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 12:27:37