更好的我的世界 [ BMC模组 ]

更好的我的世界 [ BMC模组 ]

末影矿、翡翠及更多:一个为Minecraft添加新目标的原版模组。有了这个模组,你永远不会感到无聊,它会提升你的游戏体验。

冒险

Better MC Mod

  • ⭐感谢所有支持我们的人!
  • 🔔如果你想看到更多内容,请前往 SOLEA PIXEL
  • ⚒️在此查看 wiki [建设中]

BMCMOD

BETTER MINECRAFT:顾名思义,“Better”是一个为 Minecraft 提供大量必要新增内容的模组,无需安装 30 个不同的模组即可改善游戏体验。

请注意,这个模组是“原版风格”的;目标不是添加特殊机器或过于强大的能力之类的功能。该模组必须适应 Minecraft 并保持在其宇宙观之内。(在我看来,Better Minecraft 的创作初衷是作为我认为值得加入的若干 Minecraft 更新之一。)

如果你想通过分享想法或概念来参与这个项目,请前往我们的官方 Discord。

💎 附加信息

本模组与多个其他模组兼容,例如

  • Just Enough Items [JEI]
  • Jade

这有助于改善新玩家的体验。

你也很容易将它包含在你的整合包中,因为这个模组能与其他模组很好地融合,并提供一系列可以增强你模组化生存体验的功能。

FEATURES

Minecraft 常常变得重复;最终你会看遍所有能看到的东西。这就是为什么 BETTER MINECRAFT 作为永远不会在 Minecraft 中发布的新的 1.22 更新而脱颖而出。安装我们的模组,即可发现我们的各种新增内容及更多。

🪄 模组新增内容示例

  • 末影矿盔甲与工具
  • 绿宝石盔甲与工具
  • 新的注魔台
  • 新的末地 / 主世界生物群系
  • 兼容性:JEI / JADE
  • 新附魔及更多

随着更新到来,模组中还有更多内容等待发现,你还在等什么?

你想用 BMCMOD 进行创作吗?

⚠️稳定版:版本 26.1 !

稳定标识符(com.soleapixel.bmcmod.api.BmcModIds

在附加组件中使用这些 ResourceLocation 常量,以避免硬编码字符串。它们与当前版本的注册表路径一致。

常量 路径
BmcModIds.MAYOR_BELL_BLOCK bmcmod:mayor_bell(方块)
BmcModIds.MAYOR_BELL_ITEM bmcmod:mayor_bell(物品)
BmcModIds.VILLAGE_MAYOR_SPAWN_EGG bmcmod:village_mayor_spawn_egg
BmcModIds.CONSTRUCTION_GUIDE bmcmod:construction_guide
BmcModIds.PROFESSION_MAYOR bmcmod:mayorVillagerProfession
BmcModIds.PROFESSION_CURED_WITCH bmcmod:cured_witch

注意: 游戏玩法仍通过主模组中的 ModBlocks / ModItems 解析方块/物品;BmcModIds 用于你自己代码或数据包中的跨模组引用、配方和条件


标签约定(数据包与跨模组)

标签位于 data/bmcmod/tags/… 下。在 Minecraft 期望标签的 JSON 中使用 #bmcmod:…

市长 / 村庄集成(在你的附加组件中扩展)

标签 ID 类型 用途
#bmcmod:mayor_bells block 所有在你的模组中充当“市长钟”的方块,用于过滤、任务或兼容性。基础模组仍在代码中注册自己的方块;将你的方块 id 添加到这里以保持生态一致性。
#bmcmod:mayor_bells item 物品形式(方块物品)同理。

示例(你的附加组件的数据包):

{
  "replace": false,
  "values": ["yourmod:golden_mayor_bell"]
}

如果你添加一个必须响铃并使用 BellBlockEntity 的自定义钟方块:

  1. 你的方块应像钟一样行为(例如继承 BellBlock 或镜像其行为)。
  2. 通过 NeoForgeBlockEntityTypeAddBlocksEvent 将其注册到 BlockEntityType.BELL 上(与此模组对 MAYOR_BELL 的模式相同)。
  3. 将你的方块/物品添加到 #bmcmod:mayor_bells,以便其他模组和数据包可以一次性定位所有市长钟。

本模组中其他有用的命名空间

  • #c:…(common / convention)——例如 c:tags/item/tools/scythe 用于兼容性。将你的物品添加到你的生态系统所期望的 c / forge / neoforge 标签中。
  • data/bmcmod/tags/item/ 下的物品标签(例如 scythesfoundry_shardsboreal_ingots、可附魔列表)是数据包驱动的;附加组件物品可以通过 "replace": false 合并进去。

注册表(代码入口点)

注册表 类(指示性)
方块 / 物品 com.soleapixel.bmcmod.registry.ModBlocksModItems
村民职业 com.soleapixel.bmcmod.villager.ModProfessions
方块实体类型 com.soleapixel.bmcmod.registry.ModBlockEntityTypes
实体、声音、粒子…… ModEntitiesModSoundsModParticles
全局战利品 / GLM com.soleapixel.bmcmod.registry.ModGlobalLoot

村庄保存数据(按维度):BmcVillageSavedData — 键 = 村庄锚点(来自 BlockPos 的 long)。


事件(NeoForge)——挂接位置

除非另有说明,这些在游戏总线上使用 @EventBusSubscriber(modid = "bmcmod", …)。附加模组应适当地订阅 EventPriority,并且不要假设加载顺序,除非你在 mods.toml 中声明了显式依赖。

区域 示例类 / 挂接点
村民交易 VillagerTradesEventTradeWithVillagerEvent — 参见 village.mayor.VillageEconomyEvents
市长死亡 LivingDeathEventVillageMayorDeathEvents
服务器 tick(选举 / 生命周期) ServerTickEvent.PostMayorElectionSchedulerVillageLifecycleEvents
POI 扩展 模组总线:ExtendPoiTypesEvent — 为市长钟扩展的原版钟 POI(BmcMod 设置)
方块实体类型 模组总线:BlockEntityTypeAddBlocksEventSunwoodRegistryEvents(钟/告示牌同理)

兼容性提示: 优先监听 NeoForge 事件或数据包(标签、战利品表),而不是 com.soleapixel.bmcmod.mixin 内的 mixin 目标,因为它们在 BMC 各版本之间可能会变化。


Mixins

  • 配置:resources/bmcmod.mixins.json
  • 将 mixin 目标视为脆弱的 API:它们可能在 Minecraft 或 NeoForge 更新时损坏。
  • 对于附加组件:避免遮蔽 BMC mixin;尽可能使用 NeoForge 事件标签无 ASM 的注册表挂接点。

数据包与资源路径

  • 配方:data/bmcmod/recipe/
  • 战利品表:data/bmcmod/loot_table/
  • 战利品修饰器:data/bmcmod/loot_modifiers/
  • 结构 / 世界生成:data/bmcmod/worldgen/ 以及随附时位于 data/minecraft/ 下的已修补原版池
  • 标签:data/bmcmod/tags/<type>/<path>.json

mods.toml 依赖片段(附加模组)

[[dependencies.yourmod]]
modId = "bmcmod"
type = "required" # 或 "optional"(如果仅为软兼容)
versionRange = "[26.0.3,)" # 与你测试过的 BMC 主版本对齐
ordering = "NONE"
side = "BOTH"

调整版本范围以匹配你测试的 BMC 构建的 gradle.propertiesmod_version


API 与文档更新日志

日期 变更
2026-05-09 首次发布 release/dev.md#bmcmod:mayor_bells(方块 + 物品)、com.soleapixel.bmcmod.api.BmcModIds、Modrinth 简介的维护者检查清单。

(每当集成界面发生变化时追加新行。)


许可证 / 再分发

遵循 BMC jar / 仓库中声明的许可证(如用户 mods.toml 中所示,为 SOLEA PIXEL)。再分发本开发指南时,请确保更新日志部分与你的分支保持一致。