携带小动物

携带小动物

这个项目添加了捡起并携带幼年动物的能力。

怪物

Carry Baby Animals

Carry Baby Animals 是一个 Minecraft 模组,允许玩家捡起、携带、抚摸并安全放下幼年动物。

这是 Tyler 和 Jasmine 的父女合作项目,围绕着一个应该在 Minecraft 中感觉温柔、实用且略带魔幻色彩的小瞬间而构建。

该模组基于一个简单的理念:幼年动物保持为真实的实体,而不是物品栏中的物品。被携带的幼崽在服务器上仍然附着在玩家身上,因此该行为是可见的、多人游戏安全的,并且能够兼容未安装该模组的客户端。

亮点

  • 空手潜行右键点击一只幼年动物,即可一次捡起一只。
  • 在行走、冲刺、跳跃和游泳时携带幼崽。
  • 空手携带时再次潜行右键点击,即可将幼崽放下。
  • 左键点击可抚摸携带中的幼崽,产生爱心粒子与温馨反馈。
  • 育儿模式会拒绝在岩浆、火、伤害性方块、狭窄空间和危险掉落附近的危险放置。
  • 亲子团聚会在安全放下的幼崽被送回匹配的成年动物附近时,添加装饰性爱心和温暖的动作栏消息。
  • 模组客户端可获得改进的携带幼崽视觉效果,包括较大幼崽的收拢摆放和较小幼崽的瞌睡携带姿势。
  • 服务器所有者可以在配置中使用完整实体 ID,选择加入来自其他模组的兼容幼年动物实体类型。
  • 原版客户端仍可通过 Minecraft 的乘客回退机制加入并使用服务器端携带行为。
  • Fabric 客户端可以使用 ModMenu,NeoForge 客户端可以使用 NeoForge 内置的模组界面,在游戏内编辑 Carry Baby Animals 的视觉设置。

服务器与客户端设置

在服务器上安装 Carry Baby Animals 以启用游戏玩法。

对于玩家和服务器管理员,Carry Baby Animals 是服务器必需的,客户端模组强烈推荐。

市场环境元数据可能会将客户端标记为可选,因为原版客户端仍然可以加入并使用服务器端携带行为。

玩家也可以在其客户端上安装该模组,以获得更精美的抱在怀中的渲染、第一人称抚摸反馈、携带幼崽反应、瞌睡视觉效果以及可选的游戏内视觉配置。没有安装该模组的玩家仍然可以加入模组服务器并使用携带行为,但他们将通过 Minecraft 的普通乘客渲染来看到幼年动物。

Carry Baby Animals 本身不会使其他模组的自定义实体与原版客户端兼容。如果另一个动物模组需要匹配的客户端模组,该要求仍然属于该模组和服务器的设置范畴。

需求

所有版本都需要 Java 25 或更高版本。请选择适用于你的 Minecraft 版本和加载器的文件。

Carry Baby Animals Minecraft Fabric Loader 最低版本 Fabric API 基线 NeoForge 最低版本
0.3.3 26.3 0.19.5 0.161.0+26.3 26.3.0.8-beta
0.3.1–0.3.2 26.2 0.19.3 0.152.2+26.2 26.2.0.6-beta
0.3.0 26.1.2 0.19.2 0.149.0+26.1.2 26.1.2.74
0.1.0–0.2.0 26.1.2 0.19.2 0.149.0+26.1.2 不可用

Fabric API 仅适用于 Fabric 构建版本。所示 API 版本是每个版本构建时所针对的版本;请使用这些版本或适用于同一 Minecraft 版本的更新兼容版本。更新的加载器版本也必须支持该行中的 Minecraft 版本。

仅 0.1.0 版本: 还需要 Fabric Permissions API 0.7.0 或更高版本。从 0.1.1 起它变为可选。

可选:

  • 权限提供程序是可选的,不是必需的。在 Fabric 上,提供程序通过 Fabric API 的权限 API 集成。在 NeoForge 上,提供程序通过 NeoForge 内置的权限 API 集成。
  • ModMenu 在 Fabric 客户端上是可选的。仅当你想为 Carry Baby Animals 客户端视觉设置使用游戏内 Fabric 界面时才安装它。

使用方法

  1. 清空双手。
  2. 潜行右键点击一只受支持的幼年动物以将其捡起。
  3. 携带时左键点击以抚摸幼崽。
  4. 再次空手潜行右键点击以将幼崽放下。

捡起和放下的消息会使用动物的自定义名称(如果它有的话),例如 Carrying KittyKat 和 Set down KittyKat。未命名的动物使用幼年动物类型,例如 Carrying baby Pig 和 Set down baby Pig。

携带幼年动物时仍然可以使用门和活板门。

育儿模式

育儿模式由服务器掌控且与原版客户端兼容。它会在幼崽被分离之前验证服务器计划的放置位置。

启用后,育儿模式会拒绝在岩浆、火、伤害性方块、窒息空间和危险掉落附近的不安全放置。如果该位置不安全,幼崽会保持被携带状态,并且当育儿模式消息启用时,玩家会看到一条俏皮的动作栏消息。

服务器管理员可以配置每项安全检查、危险坠落距离,以及是否显示育儿模式消息。当服务器希望仅限工作人员覆盖行为时,还保留了一个用于绕过育儿模式的权限节点。

亲子团聚

亲子团聚由服务器掌控、属于装饰性功能,且与原版客户端兼容。它仅在育儿模式允许有意放置后运行,并且绝不会移动幼崽或成年动物。

启用后,安全放下的幼崽被送回兼容的成年动物附近时,会与成年动物一起产生爱心粒子,玩家会看到一条简短的团聚消息。兼容的成年动物是相同动物类型、成年、存活、附近,并且处于同一已加载的服务器维度中。已驯服的动物只会与拥有相同所有者身份的成年动物团聚。

服务器管理员可以配置团聚半径、冷却时间、消息和粒子。

客户端视觉效果

服务器掌控游戏状态。客户端视觉效果是装饰性的。

安装了该模组的玩家可获得更精美的客户端呈现:普通的乘客渲染被隐藏,幼崽被绘制在携带者的手附近。

模组客户端还可获得可选的携带幼崽生物润色。高大和笨重的幼崽,如马、骆驼、羊驼、熊猫和海龟,会使用更安全的侧边收拢摆放,以便第一人称游玩保持清晰可读。抚摸可以触发一些仅客户端的反应,适用于鸡、兔子、狐狸、熊猫和海龟等动物。

在客户端观察一只小体型携带幼崽一段时间后,瞌睡携带视觉效果会从收拢的昏昏欲睡姿势进展为更清晰的熟睡呈现,动作更平静,并且在渲染器支持的情况下,带有微妙的呼吸式提示。

客户端视觉设置存储在:

config/carrybabyanimals-client.json

Fabric 客户端在安装了 ModMenu 时,可以从 ModMenu 的 Carry Baby Animals 配置界面更改这些相同的客户端视觉设置。NeoForge 客户端可以从 NeoForge 内置的模组界面更改它们。如果没有游戏内配置界面,Carry Baby Animals 仍然使用 config/carrybabyanimals-client.json。

客户端视觉选项包括携带幼崽反应、大型幼崽收拢摆放、第一人称大型幼崽可见性、瞌睡携带视觉效果、反应强度,以及禁用的反应动物 ID。

这些客户端设置不会添加权限,不会影响捡起或放下规则,并且原版客户端从不需要它们。

配置

Carry Baby Animals 在服务器首次启动时创建此文件:

config/carrybabyanimals.json

主要服务器选项包括:

  • allowedAnimals:允许被携带的动物名称或完整实体 ID 列表。留空以允许完整的默认支持集合。
  • blockedAnimals:要阻止的动物名称或完整实体 ID 列表。
  • allowCarryingOtherPlayersTamedAnimals:在权限节点也允许的情况下,允许玩家携带其他玩家的已驯服幼年动物。
  • pettingCooldownTicks:成功抚摸效果之间的冷却时间,以服务器刻为单位。
  • cozyFeedbackEnabled:装饰性携带幼崽反馈的总开关。
  • carriedIdleSoundsEnabled:允许偶尔的携带幼崽环境音效。
  • pettingMessagesEnabled:启用多样的抚摸和瞌睡动作栏消息。
  • nameAwareMessagesEnabled:在幼崽有自定义名称时,在温馨反馈消息中使用该名称。
  • cozyParticlesEnabled:启用柔和的装饰性携带幼崽反馈粒子。
  • sleepyBabiesEnabled:在幼崽被抱了一段时间后启用瞌睡携带幼崽时刻。
  • nurseryModeEnabled:拒绝不安全玩家放置的总开关。
  • nurseryBlockLava:拒绝在岩浆中或岩浆旁的放置。
  • nurseryBlockFire:拒绝在火、营火、灵魂营火、岩浆块和类似燃烧危险物上的放置。
  • nurseryBlockCactusAndDamage:拒绝在仙人掌和其他明显伤害性方块上的放置。
  • nurseryBlockSuffocation:拒绝幼崽会碰撞或窒息的狭窄放置。
  • nurseryBlockDangerousFalls:拒绝在不安全掉落上方的放置。
  • nurseryDangerousFallDistanceBlocks:被育儿模式视为不安全的掉落距离。
  • nurseryMessagesEnabled:启用俏皮的育儿模式拒绝动作栏消息。
  • parentReunionEnabled:安全玩家放置后装饰性亲子团聚反馈的总开关。
  • parentReunionRadiusBlocks:在放下的幼崽附近搜索兼容成年动物的半径。
  • parentReunionCooldownTicks:同一幼崽或携带者的团聚反馈之间的最小间隔。
  • parentReunionMessagesEnabled:启用温暖的亲子团聚动作栏消息。
  • parentReunionParticlesEnabled:启用幼崽和成年动物周围的爱心粒子。

温馨反馈是装饰性的且由服务器掌控。它使用普通的 Minecraft 音效、粒子和动作栏消息,因此原版客户端无需安装该模组即可看到或听到反馈。

支持的动物

默认情况下,Carry Baby Animals 支持合理可携带的普通被动幼年动物,包括牛、猪、羊、鸡、山羊、兔子、猫、狐狸、马、驴、羊驼、骆驼、熊猫、海龟和狼等动物。

支持的动物名称:

cow, pig, sheep, chicken, goat, rabbit, cat, fox, horse, donkey, mule, llama, trader_llama, camel, panda, turtle, wolf, dog

动物名称说明:

  • dog 仅指已驯服的狼。
  • wolf 泛指狼,仍然应用正常的已驯服所有权规则。
  • 完整实体 ID,如 examplemod:duck,可在 allowedAnimals 和 blockedAnimals 中被接受。
  • 未知名称、格式错误的 ID 以及服务器上不存在的实体类型 ID 会被记录并忽略。
  • 模组实体默认永不被允许。它们必须被明确列在 allowedAnimals 中,并且现有的携带权限节点仍然适用。
  • 携带占用玩家双手是该模组设计的一部分,不可配置。

已驯服的动物遵循所有权规则。默认情况下,玩家可以携带自己的已驯服幼年动物。除非服务器明确允许,否则禁止携带其他玩家的已驯服幼年动物。

权限

Carry Baby Animals 可以与加载器权限提供程序集成,但不要求权限提供程序。Fabric 服务器使用 Fabric API 的权限 API。NeoForge 服务器使用 NeoForge 内置的权限 API。

如果加载器权限提供程序处于活动状态:

  • carrybabyanimals.nursery.bypass 默认禁用,除非权限提供程序明确授予。
  • 所有其他 Carry Baby Animals 权限委托给你的权限提供程序,并在提供程序没有明确规则时使用下面列出的默认值。

如果没有加载器权限提供程序处于活动状态:

  • 所有玩家都可以携带未驯服的幼年动物。
  • 玩家可以携带自己的已驯服幼年动物。
  • 玩家不能携带其他玩家的已驯服幼年动物。
  • 保留的重新加载权限在暴露时回退到原版游戏管理员命令权限。
  • 育儿模式绕过权限在 Fabric 上回退到原版游戏管理员命令权限。在 NeoForge 上,它仅通过加载器权限提供程序授予。

权限节点:

carrybabyanimals.carry
carrybabyanimals.carry.tamed
carrybabyanimals.carry.others_tamed
carrybabyanimals.nursery.bypass
carrybabyanimals.reload

默认行为:

  • carrybabyanimals.carry:默认允许。
  • carrybabyanimals.carry.tamed:默认允许玩家携带自己的已驯服幼年动物。
  • carrybabyanimals.carry.others_tamed:默认拒绝。
  • carrybabyanimals.nursery.bypass:在加载器权限提供程序处于活动状态时默认禁用。没有提供程序时,Fabric 回退到原版游戏管理员命令权限,而 NeoForge 需要明确的提供程序授予。
  • carrybabyanimals.reload:保留用于重新加载支持,在暴露时默认为原版游戏管理员命令权限。