Petting - Tame any mob!

Petting - Tame any mob!

宠物生物,并使之成为忠实的伙伴,跟随你在冒险途中提供支持与帮助。

冒险

Petting 标志

Petting

将任何生物转化为忠诚、护主的伙伴。

CurseForge Modrinth Discord 许可协议

GitHub · Wiki · 错误报告 · Discord


Petting 是一个我的世界模组,允许你驯服游戏中几乎所有生物——无论是敌对还是被动,普通还是Boss。驯服的宠物会听从你的指令、在战斗中保护你、携带你的物品、与你一同骑乘,并在死亡后于指定的床上重生。所有的行为都可以深度配置,使其适用于生存、冒险地图和整合包。


功能概览

  • 可驯服几乎所有生物,包括凋灵、末影龙和监守者
  • 完整支持陆地、飞行和游泳生物的骑乘
  • 每个宠物拥有独立的物品栏,包含盔甲槽、手部槽和 14 个物品存储槽
  • 四种AI模式:跟随、坐下、等待、游荡
  • 战斗模式:攻击、防御、守卫
  • 宠物床方块可实现无限重生——宠物死亡时会传送到它们的床,甚至跨维度有效
  • 每个宠物独立的控制映射系统,支持自定义动作和条件
  • 被动免疫:已驯服宠物免疫摔落伤害、火焰和熔岩伤害
  • 可通过山羊角进行全局口哨,立即召回所有宠物
  • 分类系统用于对宠物分组并强制执行每组数量限制
  • 通过 petting-common.toml 进行完整的服务器和整合包配置

快速开始

安装

  1. CurseForgeModrinth 下载最新版本。
  2. .jar 文件放入你的 mods/ 文件夹。
  3. 启动游戏。将在 config/petting-common.toml 生成默认配置文件。

驯服

驯服是获得宠物的方式。默认情况下,手持金小麦petting:golden_wheat右键点击生物即可尝试驯服。每次尝试都会消耗该物品。成功时会出现爱心粒子;失败时会出现烟雾粒子。驯服物品可通过 tamingItem 完全配置。

驯服成功后,所有三种战斗模式——攻击、防御和守卫——默认启用。宠物也会自动命名为 "[你的名字]的[生物类型]",并隐藏其头顶的名字标签。

在主手或副手持有金小麦时,12 格范围内未驯服的动物会跟随你。

成功因素

因素 配置键 描述
基础概率 tameChance 每次尝试默认 33%
血量影响 healthScalesTamingChance 血量越低,成功概率越高
血量阈值 tameHealthThreshold 生物必须损失一定百分比的生命值才能被驯服
击杀要求 requireKillToTame 必须先击杀过至少一只该类型的生物
自定义物品 customTamingItems 为特定生物指定驯服物品(格式:实体ID|物品ID
白名单 whitelistOnly, tamingWhitelist 只有列表中的生物可以被驯服
黑名单 blacklistEnabled, tamingBlacklist 列表中的生物不能被驯服(支持 modid:* 通配符)
冷却时间 interactionCooldown 同一生物两次驯服尝试之间允许的间隔刻数(默认:20)

控制与宠物管理

空手(默认映射)

默认情况下,控制系统使用每个宠物独立的映射。新驯服的宠物具有以下默认设置:

输入 默认动作
右键点击 切换坐下状态
Shift + 右键点击 循环切换跟随/传送距离预设(5/10 → 10/20 → 20/50 格)

这些都可以在宠物设置界面中按每个宠物或全局重新映射(在看着宠物时按 P 键,或在控制选项中绑定 controls.petting.open_settings)。

宠物设置界面(P 键)

在目标宠物上按 P 键打开设置 GUI。在这里你可以:

  • 切换AI模式:坐下、等待、攻击、守卫、自卫、忽略口哨
  • 设置精确的跟随和传送距离
  • 打开控制映射子界面以自定义右键和Shift+右键动作

控制映射系统

每个宠物(以及玩家默认)支持一系列针对右键和Shift+右键的有序规则。规则遵循 动作\|条件 格式,从上到下进行评估;执行第一个匹配的规则。

可用动作

动作 描述
SIT 切换坐下状态
TOGGLE_WAIT 切换等待状态
RIDE 骑乘宠物
OPEN_INV 打开宠物物品栏
CYCLE 循环切换距离预设(5/10 → 10/20 → 20/50)
TOGGLE_FOLLOW_TELEPORT 交换跟随和传送距离的值
OPEN_SETTINGS 打开宠物设置界面
RUN_COMMAND 执行服务器命令(需要主人拥有相应权限)
NONE 什么都不做

可用条件

条件 通过时机
NONE 始终
SADDLE 宠物装备了鞍
SNEAK 主人正在潜行
HEALTH_LT_50 宠物生命值低于 50%
HOLD_ITEM 主人手中持有任何物品

可以使用 ; 链式连接多条规则,例如 RIDE\|SADDLE;SIT\|NONE(如果装备了鞍则骑乘,否则切换坐下)。

互动工具

所有工具物品ID都可以在 petting-common.toml[Tool Settings] 部分进行配置。

工具 默认物品 功能
状态棍 minecraft:stick 右键点击:循环切换AI模式(跟随 → 坐下 → 等待 → 游荡)。Shift+右键点击:在聊天栏中显示详细状态报告
哨子 petting:follow_whistle 循环切换跟随距离预设:5 → 10 → 20 → 50 格
宝珠 petting:teleport_orb 循环切换传送触发距离预设:10 → 20 → 50 → 100 格
时钟 minecraft:clock 切换此宠物是否响应全局山羊角口哨
任意剑 切换攻击模式——攻击主人攻击的目标
盾牌 minecraft:shield 切换防御模式——受到攻击时进行反击
曲奇 minecraft:cookie 切换守卫模式——攻击任何击中主人的东西
拴绳 petting:pet_tether 将宠物绑定在其当前位置周围可配置的漫游半径内
剪刀 minecraft:shears 潜行 + 右键点击可将宠物释放回野外
山羊角 minecraft:goat_horn 右键点击将所有已拥有的宠物立即传送到你的位置

骑乘

骑乘适用于所有移动类型——陆地、飞行和游泳。

输入 动作
空格 跳跃(陆地上)/ 向上飞 / 向上游
S 后退 / 向下飞 / 向下游
疾跑(Ctrl) 1.3 倍速度加成

飞行和游泳生物在你停止移动时会保持当前的高度或深度。宠物的旋转始终与你的视角同步。使用 RIDE\|SADDLE 控制映射可在骑乘前要求装备鞍。


AI 模式

宠物有四种移动状态:

状态 行为
跟随 走向主人,距离过远时传送
坐下 停留在原地;如果 sitHealEnabled 开启,会随时间恢复生命值
等待 停留在原地,不恢复生命值
游荡 在区域内自由漫步

战斗模式独立于移动状态:

模式 切换工具 行为
攻击 任意剑 攻击主人攻击的目标
防御 盾牌 宠物自身受到攻击时进行反击
守卫 曲奇 攻击任何击中主人的东西

宠物物品栏与装备

通过 OPEN_INV 控制映射动作或宠物设置界面打开宠物物品栏。

  • 盔甲槽 — 可装备头盔、胸甲、护腿和靴子
  • 手部槽 — 可装备剑或盾牌;宠物会实际持有并使用它们
  • 存储 — 14 个物品槽,用于携带战利品
  • 装备槽会根据生物类型自动检测;可通过 extraEquippableMobs 强制添加额外槽位
  • 通过 petBaseArmorpetBaseArmorToughness 对所有宠物应用全局属性加成

宠物安全

被动免疫

所有已驯服宠物永久免疫:

  • 摔落伤害
  • 火焰和熔岩伤害

相互和平

宠物永远不会攻击其他已驯服的宠物,即使是通过溅射投射物。

坐下恢复

宠物在坐下状态下会恢复生命值。可通过 sitHealAmountsitHealInterval 配置。


宠物床

宠物床方块允许宠物在固定位置无限次重生。

  1. 右键点击放置好的宠物床进入绑定模式
  2. 右键点击你的宠物将其与床绑定。
  3. 如果宠物死亡,死亡将被取消——宠物会传送到它的床,完全恢复生命值,并坐下。

床可以跨维度工作。维度信息在绑定时存储,因此即使宠物在地狱或末地死亡也能重生。在绑定模式下右键点击空气可取消。


Boss 宠物

Boss 特殊行为
凋灵 永久抑制侧头;空闲(无目标)时取消中心头颅的骷髅攻击
末影龙 支持骑乘战斗;驯服后隐藏血条
监守者 持续清除对主人和其他宠物的愤怒等级

hideTamedBossBars 配置选项可以隐藏任何已驯服 Boss 的血条。


实体转化

当驯服的生物转化为新实体类型时(例如僵尸转化为溺尸),所有宠物数据会自动继承:

  • 主人 UUID
  • 自定义名称
  • AI 模式和跟随/传送距离
  • 鞍和已装备物品
  • 宠物床绑定(包括存储的维度)

进阶系统

宠物分类

将生物分组到具有共享每玩家数量限制的命名类别中。适用于整合包和服务器。

格式: 槽位ID|显示名称|生物列表|默认限制

示例: 1|Undead|minecraft:zombie,minecraft:skeleton|5

槽位 ID 1–20 对应于 petting:max_pets_category_X 玩家属性。

自定义属性

装备和 perk 模组可以使用以下玩家属性为玩家提供额外的宠物容量:

  • petting:max_pets — 增加全局宠物上限
  • petting:max_pets_category_1petting:max_pets_category_20 — 增加每个类别的上限

管理员与地图制作者工具

命令

/pet <目标生物> <目标玩家>

立即驯服一个生物并将其分配给一名玩家。需要管理员权限。

通过 NBT 生成已驯服生物

使用 /summon 命令生成已经是驯服状态的生物:

/summon minecraft:zombie ~ ~ ~ {ForgeData: {pettingtamed: 1b, ownerUUID: "你的-UUID-在这里"}}

以这种方式生成的生物将禁用其敌对 AI,并绑定到指定的主人。RUN_COMMAND 映射动作也允许通过宠物互动执行受主人权限限制的命令。


配置参考

所有设置都在 config/petting-common.toml 中。

通用

默认值 描述
disableRespawnOnTame true 驯服时保留原始生物装备和NBT,而不是重生
interactionCooldown 20 同一生物再次进行驯服互动前的间隔刻数
enableParticles true 驯服成功时显示爱心粒子
maxPetsPerPlayer -1 每名玩家的基础宠物上限(-1 = 无限制;同时也是一个玩家属性)
enableGoatHornWhistle true 允许右键山羊角召回所有宠物
whistleTeleportsTethered false 将已被拴绳的宠物包含在山羊角召回中
hideTamedBossBars true 隐藏已驯服 Boss 的血条
commandFeedbackStyle ACTION_BAR 状态更改的显示方式:ACTION_BARCHATNONE

驯服

默认值 描述
tameChance 0.33 每次驯服尝试的基础成功率
healthScalesTamingChance false 生物血量越低,成功概率越高
tameHealthThreshold 0.0 允许驯服前所需损失的生命值百分比(0.0–1.0)
requireKillToTame false 必须先击杀过一只此类型的生物
allowGoldenWheat true 启用通用的金小麦驯服物品
whitelistOnly false 只有 tamingWhitelist 中的生物可以被驯服
tamingWhitelist [] 允许的生物ID
blacklistEnabled true 启用驯服黑名单(默认列表为空)
tamingBlacklist [] 需屏蔽的生物ID(支持 modidmodid:*modid:prefix*
customTamingItems [] 针对特定生物的自定义驯服物品(entity_id|item_id 格式)

AI 与生存

默认值 描述
followDistance 10.0 开始跟随行为的距离 (1–100)
teleportDistance 20.0 宠物传送至主人的距离 (5–200)
boundRoamRadius 10.0 被拴绳宠物的漫游半径(1–100 格)
allowOwnerToHurtPets false 允许友军伤害
preventPetToOwnerDamage true 防止宠物伤害其主人
sitHealEnabled true 坐下时恢复生命值
sitHealAmount 1.0 每次恢复的生命值(以半颗心为单位)
sitHealInterval 40 两次恢复之间的间隔刻数(20 = 1 秒)

骑乘与移动

默认值 描述
allowPetRiding true 所有骑乘功能的总开关
mountRequireSaddle false 骑乘需要鞍
landRidingSpeedMultiplier 1.0 陆地骑乘速度倍率
flyingRidingSpeedMultiplier 1.0 飞行骑乘速度倍率
swimmingRidingSpeedMultiplier 1.0 游泳骑乘速度倍率
ridingWhitelistOnly false 只有白名单中的生物可以被骑乘
ridingWhitelist [] 允许骑乘的生物ID
ridingBlacklistEnabled false 启用骑乘黑名单
ridingBlacklist [] 不能被骑乘的生物ID
manualFlyingMobs [] 为特定生物ID强制启用 3D 飞行
manualSwimmingMobs [] 为特定生物ID强制启用 3D 游泳
allowPetAttackWhileRiding true 骑乘凋灵/末影龙时允许进行投射物攻击

物品栏与属性

默认值 描述
petBaseArmor 0.0 所有已驯服宠物的全局护甲加成
petBaseArmorToughness 0.0 全局护甲韧性加成
extraEquippableMobs [] 为特定生物ID强制添加装备槽
alwaysShowEquipmentSlots false 为所有生物强制显示盔甲和手部槽
inventoryWhitelistOnly false 只有白名单中的生物会获得物品栏
inventoryWhitelist [] 允许拥有物品栏的生物ID
inventoryBlacklistEnabled false 禁用黑名单中生物的物品栏
inventoryBlacklist [] 禁止拥有宠物物品栏的生物ID
petPortraitRenderScale 45.0 宠物物品栏界面中肖像的缩放比例

工具与物品设置

所有工具物品均可配置。配置键对应一个注册ID(命名空间:物品名)。

默认值 功能
tamingItem petting:golden_wheat 主要驯服物品
statusTool minecraft:stick 模式切换和状态报告
aggressionTool minecraft:iron_sword 攻击模式切换(默认任何剑都可以)
defenseTool minecraft:shield 防御模式切换(默认任何盾牌都可以)
guardTool minecraft:cookie 守卫模式切换
followDistTool petting:follow_whistle 切换跟随距离
teleportDistTool petting:teleport_orb 切换传送距离
whistleTool minecraft:clock 切换口哨响应
tetherTool petting:pet_tether 区域绑定
releaseTool minecraft:shears 释放回野外
globalWhistleTool minecraft:goat_horn 全局宠物召回

互动开关

默认值 描述
allowPerPetStatus true 启用木棍(模式切换)
allowPerPetAggression true 启用剑(攻击模式)
allowPerPetSelfDefense true 启用盾牌(防御模式)
allowPerPetGuard true 启用曲奇(守卫模式)
allowPerPetFollowDist true 启用哨子(跟随距离)
allowPerPetTeleportDist true 启用宝珠(传送距离)
allowPerPetWhistleToggle true 启用时钟(口哨响应切换)
allowPetTethering true 启用拴绳(区域绑定)
allowPetReleasing true 启用剪刀(释放回野外)

许可协议

Petting 使用 GNU 宽通用公共许可证 v3.0 授权。详情请参阅 LICENSE


Yigit Guven 制作 · 加入 Discord