不要踩踏作物

不要踩踏作物

防止农田被玩家、生物和弹射物踩踏。适用于Minecraft 26.1.x的Fabric + NeoForge。

No Crop Trample

无作物踩踏

一个小巧的模组,只做一件事:阻止实体降落在耕地上时使其变回泥土。不再因粗心跳跃、游荡的僵尸或流矢而毁坏麦田。

支持 Minecraft 26.1.x 的 Fabric 和 NeoForge 版本。

为何有此模组

Minecraft 26.1 是全新版本,而流行的传统防踩踏模组尚未移植。本模组以轻量、快速加载的实现填补了这一空白——无需新方块、新物品,仅提供修复功能。

功能

  • 默认禁用所有实体的耕地踩踏——包括玩家、生物、弹射物。
  • 提供简单的 JSON 配置文件开关,可随时关闭。
  • 掉落伤害仍会正常计算,仅跳过耕地破坏的判定路径。

工作原理

  • Fabric:通过小型 Mixin 包装 FarmlandBlock.fallOn 中的 turnToDirt(...) 调用,使用 MixinExtras 的 @WrapOperation(已随 Fabric Loader 捆绑,无需额外依赖)。
  • NeoForge:订阅内置的 BlockEvent.FarmlandTrampleEvent 事件并取消。

两种实现均通过相同的配置感知决策路径,未来版本可按实体类型(仅玩家、仅生物、仅弹射物)添加开关,且不会破坏兼容性。

配置

编辑 config/nocroptramplelite.json(首次启动生成):

{
  "preventTrampling": true
}
键 默认值 说明
preventTrampling true 设为 true 时任何实体均无法踩踏耕地。设为 false 恢复原版行为。

编辑后需重启 Minecraft(或专用服务器)以使更改生效。

与模组作物兼容性

自动兼容:

  • 种植在原版耕地上的模组作物——最常见情况(农夫乐事、多数魔法作物模组等)。
  • 继承原版 FarmlandBlock 的模组耕地——继承机制自动携带保护。
  • 重写 fallOn 但调用 super.fallOn(...) 的模组耕地——父类调用会回归受保护的路径。

不影响:

  • 完全用自有踩踏逻辑替换 fallOn 的模组耕地(罕见)。
  • 完全不继承 FarmlandBlock 的自定义"耕地"方块。
  • 盆式种植器(Botany Pots、Garden Cloches 等)——它们原本就不存在踩踏机制。

需求

  • Minecraft 26.1.x
  • Java 25
  • Fabric Loader 0.18.4+ 搭配 Fabric API,或 NeoForge 26.1+

许可证

CC0-1.0 — 公有领域,可随意使用。

源代码

https://github.com/kestalkayden/no-crop-trample-lite