始终掉落战利品(更新)

始终掉落战利品(更新)

让生物无论因何死亡,总是掉落经验和战利品。

总是掉落战利品

这是 Always Drop Loot 的一个非官方 Fabric 更新版本,适用于完整的 Minecraft 1.21.x 系列,包括从 1.21 到 1.21.11 的版本。

在原版 Minecraft 中,许多生物只有在被玩家击杀时才会掉落经验和部分战利品表结果。这意味着摔落、熔岩、窒息、营火、溺水、实体挤压以及其他环境造成的死亡通常会减少或移除掉落物。

这个模组改变了这一行为,让被动农场和自动化装置仍然可以获得你通常期望从玩家击杀中获得的掉落物。

模组功能

  • 使生物在未被玩家直接击杀的情况下死亡时也能掉落经验。
  • 允许你控制非玩家击杀应给予多少经验。
  • 允许你控制 killed_by_player 战利品条件的行为方式。
  • 支持单人游戏和 Fabric 服务器。
  • 通过游戏规则而非配置界面,实现每个世界独立存储配置。

实际上,这意味着基于摔落伤害、熔岩刀片、环境陷阱或其他自动击杀方法的农场,仍然可以根据你选择的规则掉落经验和战利品。

需求

  • Minecraft Java 版 1.21 至 1.21.11
  • Fabric Loader
  • Fabric API
  • Java 21

安装

  1. 为你的 Minecraft 版本安装 Fabric Loader。
  2. 安装相同版本的 Fabric API。
  3. 将模组 jar 文件放入你的 mods 文件夹。
  4. 启动游戏或服务器。

该模组实际上仅需安装在服务端,因此它在单人游戏和专用服务器上都非常有用。

配置

该模组通过游戏规则进行配置。由于游戏规则是与世界绑定的,因此每个存档或服务器都可以有不同的行为。

如果在单人游戏世界中禁用了作弊,你可以通过开启局域网并启用作弊来临时获得游戏规则的访问权限。

always-drop-loot:always_drop_xp

控制生物在未被玩家击杀而死亡时是否可以掉落经验。

默认值:

/gamerule always-drop-loot:always_drop_xp true

行为:

  • true:生物在因环境或自动化原因死亡时仍然可以掉落经验。
  • false:原版经验行为。

always-drop-loot:passive_xp_modifier

控制未被玩家击杀的生物的经验倍率。

默认值:

/gamerule always-drop-loot:passive_xp_modifier 1.0

行为:

  • 1.0:非玩家击杀掉落生物正常经验值。
  • 0.5:非玩家击杀掉落一半经验。
  • 0.0:非玩家击杀不掉落经验。
  • 2.0:非玩家击杀掉落双倍经验。

该值只影响不计入玩家击杀的死亡。它不会改变正常的玩家击杀经验。

always-drop-loot:loot_drop_mode

控制战利品表如何解读 killed_by_player 条件。

默认值:

/gamerule always-drop-loot:loot_drop_mode ALWAYS_AS_PLAYER

可用值:

  • ALWAYS_AS_PLAYER:始终将生物视为被玩家击杀。
  • NEVER_AS_PLAYER:从不将生物视为被玩家击杀。
  • VANILLA:使用正常的原版行为。
  • VANILLA_INVERSE:反转原版行为。

该规则会影响依赖于 killed_by_player 的战利品表掉落。

示例配置

从自动化农场始终掉落正常经验和战利品:

/gamerule always-drop-loot:always_drop_xp true
/gamerule always-drop-loot:passive_xp_modifier 1.0
/gamerule always-drop-loot:loot_drop_mode ALWAYS_AS_PLAYER

允许农场掉落战利品,但减少自动化击杀的经验:

/gamerule always-drop-loot:always_drop_xp true
/gamerule always-drop-loot:passive_xp_modifier 0.5
/gamerule always-drop-loot:loot_drop_mode ALWAYS_AS_PLAYER

保持原版战利品逻辑,但仍允许被动农场掉落一些经验:

/gamerule always-drop-loot:always_drop_xp true
/gamerule always-drop-loot:passive_xp_modifier 0.5
/gamerule always-drop-loot:loot_drop_mode VANILLA

兼容性

该分支专门为 Minecraft 1.21.x 系列更新,并已针对从 1.21 到 1.21.11 的兼容范围进行了测试。

由于 Mojang 和 Fabric 在该版本线中多次更改了内部 API,此分支包含了兼容性工作,以确保同一个模组 jar 文件可以在整个范围内运行。

致谢

原版模组的概念、实现和开源发布的全部功劳归于 sargunv。

此更新分支的存在是为了让该模组能够在较新的 Fabric 1.21.x 版本上继续使用,同时尽可能保留原有的设计理念和行为。

许可证

此分支继续遵守原项目的 Apache-2.0 许可证。