配置说明
主动攻击名称的精确迁移规则、模型主驾驶与换乘、MM 接口和原有配置。
2.3.2 主动攻击名称与旧默认文案迁移
宠物设置按钮、默认说明及开启、关闭和保存失败提示统一为“主动攻击”。原官方默认名称和消息按完整字符串匹配迁移,按钮说明按完整列表匹配;任一行被修改则保留整份自定义说明。缺失项继续补齐,服主自定义文字与颜色不会批量替换。
pet-auto-attack-enabled 旁的旧官方说明注释在忽略空行后仍须逐字匹配,管理员注释文字保留。忽略空行只适用于该注释,不用于按钮 lore 或消息值。
配置键 manage.actions.auto-attack、behavior.auto-attack.enabled、动作、变量与 pet-auto-attack-* 消息键继续沿用,不修改数据库结构或每宠开关选择。详见 2.3.2 迁移与升级说明。
2.3.1 模型主驾驶与换乘
2.3.1 不新增骑乘配置项,保留管理员的等级、速度、模型和权限设置。多模型宠物使用 ModelEngine 指定的主驾驶管理器;完全没有驾驶骨时继续使用原版载体骑乘。有驾驶骨但主驾驶关系缺失、主座位拒绝上马,或旧模型座位未释放时,LiPet 会拒绝此次挂载。
ModelEngine 使用虚拟座位,Bukkit getVehicle() 为空是正常实现方式。MM 直接触发模型上马时同样检查未解除的旧模型关系。配置及升级边界见 2.3.1 更新说明。
2.3.0 MythicMobs 双向集成
MM 技能现在可用 @LipetOwner 选择施法宠物的主人,以 lipetExperience{amount=25} @self 给宠物提交经验奖励,并通过 <lipet.level>、<lipet.damage>、<lipet.max_health>、四维属性与品质 ID 读取 LiPet 档案。未安装 MCPets 时同时提供 @PetOwner 和 petExperience{exp=25} 兼容名称。
现有 mythic-skills 的等级解锁、trigger 和 power 保持原行为;MM 使用 <skill.power> 获取传入值。MM damage 默认还会自动乘一次 power,显式引用它时需设 poweraffectsdamage=false 避免重复。伤害数值不等于 <pet.damagemodifier> 倍率,其他 MCPets 专属机制仍需按包核对。详见 双向集成指南 和 2.3.0 更新说明。
2.2.5 GUI 标题支持 PlaceholderAPI 变量
宠物主菜单、商城、仓库、信息、管理、放生确认及独立背包的标题,统一支持 PlaceholderAPI 的 %变量% 与原有 LiPet <变量>。例如管理菜单标题可写成 <gold><pet_name></gold> · %player_name%;PAPI 按打开菜单的玩家解析,查看他人宠物时也是查看者上下文。
保留原有 MiniMessage 颜色、<font:命名空间:字体> 与 Unicode 字符;未安装 PAPI、变量未知或解析异常时保留原文并继续打开菜单。现有标题配置不被覆盖,修改配置后执行 /lipet reload 并重新打开菜单;升级 Jar 仍需正常重启。
详见 2.2.5 GUI 标题变量说明。
主动攻击开关(2.2.4 起提供)
玩家在宠物管理菜单调整的是每只宠物的存档设置,默认开启,SQLite / MySQL 会分别保存。GUI 按钮外观位于 gui.yml 的管理菜单,状态和操作提示使用 messages.yml;缺失项按原机制补齐,2.3.2 另迁移精确匹配的旧默认文案;现有自定义值与注释保留。
物种的 behavior.auto-attack.enabled 仍由管理员控制。玩家开启主动攻击不能绕过禁用的物种主动索敌,也不能越过主人、友方及区域保护。详见 2.2.4 行为与升级说明。
死亡惩罚(0.27.24)
config.yml 新增 death-penalty.enabled(布尔,默认 true)、levels-lost(整数 0-10000,默认 1)、minimum-level(整数 1-10000,默认 1)。修改后 /lipet reload 生效。实际掉级会清空当前级经验并扣回相应属性点,见 完整配置示例和边界。
本页从 LiPet
0.27.20-SNAPSHOT完整 Wiki 同步整理;需要连续查阅全部功能时,请返回 LiPet 完整 Wiki。
0.27.20 喂食冷却配置
feeding:
# 同一只宠物两次成功喂食之间的冷却秒数,支持小数,取值范围 0-60。
# 设为 0 可关闭;修改后执行 /lipet reload 生效。
cooldown-seconds: 1.0
冷却提示位于 messages.yml -> pet-feed-cooldown,支持 <seconds> 剩余秒数变量。旧配置只补缺失节点和中文注释,不覆盖管理员已有值。
0.27.14 原版专属食物
新安装会按 Paper 26.2 原版食物标签生成专属物品。主要修正为:CAMEL_HUSK -> RABBIT_FOOT、PIGLIN/PIGLIN_BRUTE -> COOKED_PORKCHOP、SULFUR_CUBE -> SLIME_BALL、WOLF -> COOKED_BEEF、ZOMBIE_HORSE -> RED_MUSHROOM、ZOMBIE_NAUTILUS -> PUFFERFISH。狼模板用熟牛肉和熟鸡肉;猫模板用生鳕鱼和生鲑鱼。
旧服的 growth.foods 被视为管理员配置,不会自动改名或删除。请备份对应宠物文件,手动替换节点并执行 /lipet reload。完整表格见 0.27.14 更新日志。
0.27.13 默认喂食经验
官方普通食物、CraftEngine 案例、狼猫模板、原版商城模板和新生成原版宠物的 growth.foods.*.experience 默认统一为 4。默认最弱目标的战斗经验约为 6,20 点生命目标为 15。升级不覆盖旧服已有食物数值;需要采用本次平衡时手动改为 4 并执行 /lipet reload。
0.27.11 原版宠物食物与失败提示
官方原版宠物文件完全缺少 growth.foods 时会按物种补全。例如烈焰人生成启用的 BLAZE_POWDER,并把继承的 COOKED_BEEF 设为 enabled: false。已有 growth.foods 和自定义宠物不修改。
messages.yml 会补入以下根节点,现有自定义文本保留:
# 战斗经验未成功写入数据库时提示在线主人。
pet-combat-experience-save-failed: "<red>宠物战斗经验暂时无法保存,请联系管理员检查数据库。</red>"
0.27.9 商城、飞行骑乘与回收配置
messages.yml 新增三个根节点。旧文件只补缺失项和中文注释,已有文本及空字符串保留:
# 宠物道具商城余额不足;宠物商城继续使用 shop-insufficient-funds。
item-shop-insufficient-funds: "<red>余额不足,无法购买该道具。</red>"
# 回收超过 100 tick 时仅提示一次;设为空字符串可关闭。
pet-store-pending: "<yellow>正在保存并回收宠物,请稍候,无需重复操作。</yellow>"
# 只说明结果提示异常,需重新打开仓库确认实际状态。
pet-store-feedback-failed: "<yellow>宠物回收结果提示异常,请重新打开仓库确认状态,并联系管理员查看后台日志。</yellow>"
pet-types.yml -> defaults.behavior 新增疾跑倍率,单宠物文件可覆盖,范围 1.0-3.0:
behavior:
riding-speed: 0.35
# 按住疾跑键后的速度倍率。
riding-sprint-multiplier: 1.5
0.27.8 召唤等待与异常提示
以下是 plugins/LiPet/messages.yml 的根节点,合并到原文件即可,不要放到 config.yml,也不要复制出一个额外的 messages: 父节点:
# 未完成超过 100 tick(正常 TPS 下约 5 秒)时仅提示一次;设为 "" 可关闭。
# 支持 MiniMessage。此提示不会取消召唤、提前解除状态锁或重复生成宠物。
pet-call-pending: "<yellow>正在召唤宠物,请稍候,无需重复操作。</yellow>"
# 原有召唤业务失败消息;管理员已自定义的内容保留。
pet-call-failed: "<red>宠物召唤失败,请稍后重试。"
# 仅说明结果文本或反馈发送异常,宠物可能已成功生成,应先检查实际状态。
pet-call-feedback-failed: "<yellow>召唤结果提示异常,请先检查宠物状态,并联系管理员查看后台日志。</yellow>"
普通快速召唤不增加等待提示。旧配置只补缺失节点和中文注释,自定义文本与空字符串不会覆盖;完成换用 0.27.8 Jar 并重启后,后续修改文本可执行 /lipet reload。旧版本的重载不会清除已经卡住的玩家操作队列,升级与根因见 召唤无响应修复。
0.27.5 新增配置与行为
新增 model.levels 等级模型、capture.yml -> vanilla-random-attributes 捕捉四属性范围,以及 shop.yml -> item-entries.*.item.capture-ball 捕捉球商品。旧固定模型和普通商品仍兼容;缺失配置会自动补齐。
完整示例见 等级模型、随机属性与捕捉球商店。
3. 配置文件
| 文件 | 用途 |
|---|---|
config.yml |
存储、服务器 ID、群组、依赖下载、喂食冷却、内置货币与三种货币显示名称 |
pet-types.yml |
defaults 公共默认值、宠物目录、原版自动注册、名牌、骑乘和背包全局设置;兼容旧 types 节点 |
宠物/**/*.yml |
每只宠物的身份与差异项;递归读取,目录、子目录和文件名均可用中文,也可直接读取 MCPets 单宠物格式 |
shop.yml |
商城总开关、宠物商城和宠物道具商城 |
gui.yml |
GUI 标题、尺寸、槽位、留白/边框、图标、点击动作与音效 |
capture.yml |
捕捉球、捕捉概率、捕捉仪式、音效、粒子、实体映射 |
skills.yml |
技能书、技能等级、技能效果 |
items.yml |
宠物信号棒等 LiPet 功能物品 |
rewards.yml |
每日、战斗、升级、捕捉宠物币奖励与反馈效果 |
messages.yml |
所有玩家提示文本 |
所有文本建议使用 MiniMessage 格式。插件会自动补全新增配置节点,不会覆盖已有自定义值。
主菜单“我的宠物”入口
gui.yml 的 main.buttons.warehouse.name 默认显示“我的宠物”,main.buttons.warehouse.lore 的最后一行显示“➥ 点击打开宠物列表”:
main:
buttons:
warehouse:
name: "<gradient:#FFB74D:#FFF59D><bold>我的宠物</bold></gradient>"
lore:
- "<gradient:#FFD180:#FFF59D>➥ 点击打开宠物列表</gradient>"
点击后仍进入 nav:warehouse 宠物列表,列表页面标题继续使用“宠物仓库”。升级时插件只精确迁移官方旧按钮名称和完整旧 Lore;服主自定义文本不会被覆盖。
仓库四键操作
仓库宠物图标的四种操作可分别配置,默认值为:
warehouse:
pet-item:
actions:
LEFT: "call:<pet_id>"
RIGHT: "info:<pet_id>"
SHIFT_LEFT: "store"
SHIFT_RIGHT: "delete-request:<pet_id>"
对应含义为左键召唤、右键管理、潜行左键收回当前宠物、潜行右键打开放生确认。升级只迁移官方旧 Lore、注释和旧默认动作;服主自定义值保持不变。
默认 warehouse.pet-item.lore 将两条潜行操作显示为绿色,并在空行后独立显示红色永久删除警告:
- "<green>潜行左键</green><gray> · 召回宠物</gray>"
- "<green>潜行右键</green><gray> · 放生宠物</gray>"
- ""
- "<red>⚠放生会永久删除全部数据</red>"
已有活动宠物时再次召唤使用 messages.yml 的 pet-already-active:
pet-already-active: "<yellow>已达最大召唤数量,请将已召唤的休息后再召唤!</yellow>"
升级时会自动迁移历次官方默认值和 Bukkit 自动折行后的旧文本;服主自己修改过的内容不会被覆盖。
管理二级面板返回按钮
从宠物管理页进入“完整属性”或“成长与加点”时,属性面板使用 gui.yml 的 info.navigation.manage:
info:
navigation:
manage:
enabled: true
slot: 49
slots: []
material: "CHEST"
name: "<aqua>返回管理界面</aqua>"
lore:
- "<dark_gray>◆ 界面导航</dark_gray>"
- "<gray>返回 <white><pet_name></white> 的管理界面</gray>"
- ""
- "<aqua>➥ 点击返回管理界面</aqua>"
action: "manage-return:<entity_id>"
从仓库或指令打开属性面板时继续使用 info.navigation.warehouse。两个按钮均可独立修改材质、位置、名称、Lore 和动作;旧服只会自动补充缺失的管理返回节点,不覆盖已有配置。
货币显示名称(0.27.6)
shop.yml 中的 INTERNAL、VAULT、PLAYERPOINTS 是支付提供器 ID,请继续保留这些英文 ID。宠物商城和道具商城的 <currency> 显示文字统一由 config.yml 配置:
# config.yml:只合并货币显示设置,保留现有其他配置。
# 显示名称只影响文字,不改变支付提供器、余额或商品价格。
currency:
# 对应 shop.yml 的 currency: INTERNAL。
internal:
# 非空单行文本,支持 MiniMessage;默认显示“宠物币”。
display-name: "宠物币"
# 对应 shop.yml 的 currency: VAULT,需安装 Vault 和经济插件。
vault:
# 非空单行文本,支持 MiniMessage;默认显示“金币”。
display-name: "金币"
# 对应 shop.yml 的 currency: PLAYERPOINTS,需安装 PlayerPoints。
playerpoints:
# 非空单行文本,支持 MiniMessage;默认显示“点券”。
display-name: "点券"
例如商品使用 price: 100.0、currency: "PLAYERPOINTS" 时,默认显示 100.00 点券;本次更新只修复名称,价格仍保留两位小数,PlayerPoints 仍要求整数金额。若自定义 Lore 直接写死了 PlayerPoints,请把那段文字改成 <currency>。
名称配置不会替代前置插件:提供器未挂钩、不可用或 ID 未知时,商城继续显示大写 ID 供管理员排查,购买仍会被拒绝。
首次升级需要停服、换入 LiPet-0.27.6-SNAPSHOT.jar 后重启一次。此后修改上述名称,执行 /lipet reload 并等待成功,再关闭并重新执行 /lipet shop 或 /lipet itemshop 即可看到新名称;原来已经打开的菜单不会自动重绘。内置货币名称也会同步到余额指令和奖励提示。
只有候选主配置验证通过、普通配置重载和数据库处理成功后才应用新名称;配置错误、数据库重载失败或并发重载被拒绝时保留旧名称。旧文件只补缺失的名称节点和注释,管理员已有自定义值不覆盖。server.id、服务器群组 server.group 和 currency.internal.initial-balance 仍按启动时读取,名称热更不会改变这些设置,数据库继续遵守原有热切换规则。
capture.yml、skills.yml、items.yml、shop.yml 与 gui.yml 的物品 material 均可填写 CraftEngine 完整 ID。全部入口、失败回退与自检方法见 CraftEngine 完整物品挂钩。
0.27.4 起默认配置直接提供两个安全关闭的 CE 案例:
# capture.yml
balls:
craftengine_example:
enabled: false
material: "yourpack:pet_capture_ball"
# pet-types.yml
defaults:
growth:
foods:
craftengine_example:
enabled: false
item-id: "yourpack:pet_food"
display-name: "灵契宠物粮"
experience: 4
healing: 8.0
把 yourpack:* 改为真实的 CE 完整 ID,再将 enabled 改为 true 并执行 /lipet reload。关闭的节点会在校验占位 ID 前跳过,未安装 CraftEngine 的服务器也能保留案例;升级只补缺失节点,不覆盖管理员已有物品和数值。
8. 宠物类型
pet-types.yml 使用以下全局目录设置:
type-files:
enabled: true
directory: "宠物"
include-subdirectories: true
目录中可放多个 .yml 或 .yaml,默认递归读取子目录。新服会为默认捕捉规则允许的全部原版生物生成 宠物/原版宠物/<中文名>.yml,并生成 宠物/自定义宠物/正义工作室/龙骑/龙骑-普通.yml。已有类型、文件、数值和注释不会覆盖;仅存在旧官方 宠物类型/ 时会安全迁移为 宠物/,新旧目录同时存在时不会擅自合并。
所有宠物相同的配置统一写一次:
defaults:
attributes:
base-health: 20.0
base-damage: 3.0
movement-speed: 0.25
behavior:
follow-distance: 10.0
stop-distance: 3.0
teleport-distance: 30.0
mountable: true
mount-type: "AUTO"
inventory:
size: 54
宠物/原版宠物/狼.yml 只写不同部分:
types:
wolf:
inherit-defaults: true
entity-type: "WOLF"
display-name: "狼"
legacy-ids:
- "wolf"
- "minecraft:wolf"
- "vanilla_wolf"
attributes:
base-health: 30.0
说明:
- 单宠节点深层覆盖
defaults;只改base-health不会丢掉其他公共属性。 inherit-defaults: false可关闭继承;显式空节点如mythic-skills: {}可清空公共段。- 合并只发生在内存中,不会把公共值展开写回每只宠物的文件。
entity-type必须是当前 Paper 版本存在的 Bukkit 实体类型。owner-limit当前固定用于“一种宠物只能拥有一只”的限制。model.provider支持NATIVE、MODEL_ENGINE、CRAFT_ENGINE。model.hide-base-entity仅在外部模型提供器中生效;ModelEngine/MEG 建议保持true,它只隐藏原版载体外观,不会关闭宠物 AI。model.override-hitbox控制 ModelEngine 是否使用模型蓝图碰撞箱;它与隐藏原版外观是两个独立选项。auto-register-vanilla: true时会自动注册可生成的原版实体宠物类型。follow-distance是开始追赶距离,stop-distance是停止追赶距离;后者必须更小,避免宠物在临界点反复启停。- 超过
teleport-distance时只会在主人落地且未飞行、未滑翔时安全回传;回传带有短冷却,避免异步传送失败时连续刷传送。 - 原生寻路连续拒绝路径时,宠物会在主人安全落地后回传,不会停在原地,也不会使用速度强拖穿过障碍。
MCPets 自定义宠物
MCPets 单宠物 YML 可以不改结构,直接复制到中文子目录:
plugins/MCPets/Pets/justice_studios/dragon_mounts/dragon-mounts-normal.yml
→ plugins/LiPet/宠物/自定义宠物/正义工作室/龙骑/龙骑-普通.yml
Id: pet_dragon_mounts
Enabled: true
MythicMob: dragon-mounts-red
EntityType: PHANTOM
Mountable: true
MountType: flying
Distance: 6
ComingBackRange: 15
Icon:
Name: "龙骑"
- 当前主要直接执行
Id、Enabled、MythicMob、EntityType、Name/Icon.Name、Mountable、MountType、Distance和ComingBackRange。 MythicMob通过 MythicMobs 生成;MountType: flying使用飞行骑乘,walking使用地面骑乘。SpawnRange会被读取保留,但本版仍在主人位置生成,不按该半径随机偏移。Permission、Signals、Skins、DismountOnDamaged、DespawnOnDismount、AutoRide暂不执行,但原文件无需删除这些节点。- 适配只在内存中进行,不改写复制进来的 MCPets 文件。
MythicMobs 等级技能
技能放在对应宠物类型节点内,例如 宠物/原版宠物/狼.yml 的 types.wolf:
mythic-skills:
level-10-bite:
enabled: true
skill: "LiPetWolfBite"
trigger: "PET_ATTACK"
unlock-level: 10
chance: 0.35
cooldown-seconds: 8.0
power: 1.0
power-per-level: 0.05
skill必须与 MythicMobs 中的内部技能名完全一致。unlock-level不能超过该宠物的growth.maximum-level。trigger支持PET_ATTACK、PET_DEFEND、OWNER_ATTACK、OWNER_DEFEND、INTERACT、PASSIVE、INTERVAL。- 最终
power = power + max(0, 等级 - unlock-level) × power-per-level。 PASSIVE与INTERVAL至少配置0.5秒冷却;其他触发器允许0,但仍有短暂递归保护。- MythicMobs 未安装时 LiPet 正常运行,
/lipet status会同时显示挂钩状态、含启用规则的宠物类型数和启用规则总数。 - 冷却判断先于概率抽取;
PASSIVE与INTERVAL每轮合并为一次扫描。 - MM 返回
false时保留配置冷却,零冷却失败技能至少退避 1 秒;错误日志按技能名分别限频,避免错误配置刷屏。 - 反射挂钩兼容实例或静态
getAPIHelper(),以及float/double power七参数 API。 - 旧类型文件只补入带中文注释且默认关闭的示例,不覆盖自定义值;修改后执行
/lipet reload。
ModelEngine / MEG 模型
给宠物使用 ModelEngine 模型时,至少填写:
model:
provider: "MODEL_ENGINE"
id: "你的模型ID"
hide-base-entity: true
override-hitbox: true
hide-base-entity: true 会通过 ModelEngine 的载体可见性接口隐藏脚下的原版生物,同时继续使用该实体承载 LiPet 的 AI、寻路、属性与碰撞。不要用隐身药水代替这个选项。重复召唤、区块重新加载和宠物运行状态恢复都会复用已有同 ID 模型,不会再次叠加;修改模型配置后执行 /lipet reload,当前已召唤宠物也会在其实体线程刷新。若将 id 改成另一个模型,插件会先卸载本轮运行期记录的旧模型再挂载新模型。
ModelEngine 的显示版本同为 R4.1.0 时,不同构建支持的 NMS 版本仍可能不同。Paper 26.x 必须安装包含 Java 25 / 26.x NMS 适配层的更新构建;若控制台出现 Unsupported NMS Version: 26.1.2 或类似错误,是当前 ModelEngine 构建不支持服务端版本,应先升级 ModelEngine。LiPet 不会把 ModelEngine 打进自身 Jar。
双行宠物名牌
召唤后的宠物默认使用两行头顶文字:第一行是宠物名称,第二行是主人玩家名。配置位于 pet-types.yml 顶层:
nameplate:
enabled: true
owner-line: "<gradient:#7DD3FC:#C4B5FD>主人:</gradient><white><owner_name></white>"
vertical-offset: 0.55
view-range: 1.0
line-width: 200
text-opacity: 255
shadowed: true
see-through: false
default-background: false
background-color: "#00000000"
# true:骑乘时对所有玩家隐藏;false:骑乘时保留名牌显示。下马后恢复。
hide-while-ridden: true
riding:
hide-boss-bar-while-ridden: true
owner-line支持 MiniMessage、RGB、渐变和<owner_name>占位符。enabled: false使用原版单行名称;单行回退也遵守骑乘隐藏规则。hide-while-ridden: true对骑手和其他玩家统一隐藏双行名牌,同时清空载体原版名称;false保留显示。下马或关闭隐藏并重载后恢复,普通上下马复用同一个 TextDisplay,不反复删除重建。riding.hide-boss-bar-while-ridden独立控制 Boss 血条,下坐骑后恢复;它不能代替名牌隐藏开关。- 修改后执行
/lipet reload,已召唤宠物会在下一轮行为刷新时自动应用新样式。 - 升级保留管理员已有的隐藏开关与注释。完整配置及转向说明见 0.27.7 骑乘名牌与视角转向。
- 名牌使用独立 PDC 关联宠物实体;区块重新载入时会校验并恢复,传送导致挂载脱离时会自动重建,死亡、收回和放生时会同步删除,不写入宠物数据库。
9. 属性与成长
核心属性:
- 力量:增加攻击伤害
- 体质:增加生命与恢复
- 防御:增加伤害减免
- 敏捷:增加移动速度,并影响闪避等衍生属性
衍生属性:
- 最大生命
- 攻击伤害
- 伤害减免
- 暴击率
- 暴击伤害
- 闪避
- 击退抗性
- 吸血
- 生命恢复
成长配置位置:
growth:
maximum-level: 50
base-experience: 100
experience-per-level: 25
attribute-points-per-level: 3
宠物可通过喂食和战斗获得经验。升级后获得自由属性点,玩家可在 GUI 中加点。
属性与宠物状态的中文名称位于 messages.yml:
labels:
unknown-pet: "未知宠物"
attributes:
strength: "力量"
vitality: "体质"
defense: "防御"
agility: "敏捷"
pet-states:
stored: "已收回"
active: "已召唤"
transferring: "转移中"
dead: "复活冷却"
disabled: "已禁用"
属性加点消息可使用完整上下文变量,常用变量包括 <pet_name>、<attribute>、<attribute_key>、<previous_value>、<value>、<previous_points>、<points>、<strength>、<vitality>、<defense> 和 <agility>。<attribute> / <attribute_name> 是中文显示名,<attribute_key> 保留 STRENGTH 等稳定英文键,适合动作和外部插件。
0.27.19 新增 pet-attribute-no-points 与 pet-attribute-invalid-action。属性按钮继续使用 attribute:<pet_id>:STRENGTH,属性键不区分大小写;错误 UUID、缺少参数和未知属性会被安全拒绝。
10. 喂食
食物配置在对应的 宠物类型/*.yml 中;旧 pet-types.yml 写法继续支持:
foods:
# 旧版 Bukkit Material 写法继续支持。
COOKED_BEEF:
display-name: "熟牛肉"
experience: 4
healing: 6.0
attribute-points: 0
minimum-level: 1
maximum-level: 0
# CraftEngine 物品必须填写完整 namespace:item_id。
# 节点名只是管理员自定别名;使用 item-id 后也完整支持含点号的合法 ID。
pet-biscuit:
item-id: 'my.pack:pet.food'
display-name: "灵宠饼干"
experience: 4
healing: 8.0
attribute-points: 0
minimum-level: 1
maximum-level: 0
规则:
- 玩家手持配置的原版或 CraftEngine 食物右键自己的宠物即可喂食。
- 官方默认
experience为4,低于默认战斗经验;自定义食物仍可填写其他非负数。 - CraftEngine 物品按完整自定义 ID 精确识别;即使多个物品都以
PAPER为底材,也只会匹配配置的那一个。 - 简单 CE ID 可直接作为节点名,例如
'default:pet_biscuit':;ID 含.时请使用普通节点别名并填写item-id。 CraftEngine是可选软依赖。未安装时原版食物仍可使用,CE 食物配置会保留但不会匹配。- 修改食物规则后执行
/lipet reload即可生效;CraftEngine 自身重载物品后无需重启 LiPet,因为插件不会缓存物品实例。 - 不符合等级限制时不会消耗食物。
- 没有产生回血、经验或属性点效果时不会消耗食物。
- 数据保存失败时会退还食物。
11. 捕捉系统
管理员发放捕捉球:
/lipet captureball <类型> [数量] [玩家]
玩家手持捕捉球右键野生生物触发捕捉。
捕捉配置在 capture.yml:
ritual:
enabled: true
duration-ticks: 50
pulse-interval-ticks: 10
particle: "ENCHANT"
sounds:
start: "BLOCK_BEACON_ACTIVATE"
pulse: "BLOCK_AMETHYST_BLOCK_CHIME"
success: "ENTITY_PLAYER_LEVELUP"
failure: "ENTITY_ITEM_BREAK"
兼容处理:
- 无效 Sound / Particle 不会禁用插件,会自动回退安全默认值。
- 疣猪兽、猪灵等跨维度僵尸化实体会做宠物保护。
- 怕阳光生物作为宠物时会防止白天自动燃烧。
- 缺少原版攻击 AI 的宠物会使用统一追击与近战攻击兜底。
- 同一种宠物默认只能拥有一只。
12. 宠物商城
商城总开关
shop.yml 顶层节点同时控制两个商城:
# 商城总开关。true=开放宠物商城和宠物道具商店;false=全部关闭。
# 关闭后 /lipet shop、/lipet itemshop、GUI 导航和已打开界面的购买操作都会被拒绝。
# 修改后执行 /lipet reload 即可立即生效,取值只能是 true 或 false。
enabled: true
true:开放宠物商城和宠物道具商城。false:禁用商城指令、帮助入口、GUI 导航动作和已打开界面的购买操作。- 修改后执行
/lipet reload即时生效,不需要重启服务器。 - 旧配置缺少该节点时只补入
enabled: true与中文注释,不覆盖商品、价格或自定义 Lore。 - 非布尔值属于配置错误,插件会拒绝应用本次错误重载。
宠物商城配置在 shop.yml 的 entries。
entries:
wolf:
enabled: true
pet-type: "wolf"
pet-name: "<gradient:#B0BEC5:#FFFFFF>小狼</gradient>"
currency: "INTERNAL"
price: 250.0
permission: ""
支持货币:
INTERNAL:LiPet 内置宠物币VAULT:Vault 经济PLAYERPOINTS:PlayerPoints 点券;价格必须填写整数
排行榜每页数量在主配置中调整:
leaderboard:
page-size: 10
范围为 1-20。使用 /lipet top coin [页码] 查看宠物币榜,使用 /lipet top level [页码] 查看宠物等级榜。
如果玩家已经拥有该类型宠物,购买会被拒绝。
宠物币获取
0.26.6+ 默认提供四条可持续获取路径:
/lipet daily:每个自然日领取一次;主菜单中央默认也有领取按钮。- 宠物战斗:由已召唤宠物完成有效击杀,按“固定值 + 目标最大生命倍率”结算。
- 宠物升级:喂养或战斗升级成功并保存后,按实际提升等级数结算。
- 成功捕捉:捕捉结果保存成功后结算。
所有金额、每日上限、排除实体、重置时区、音效和粒子位于 rewards.yml。示例:
reset-time-zone: "Asia/Shanghai"
daily:
enabled: true
amount: 100.0
combat:
enabled: true
base-amount: 1.0
maximum-health-multiplier: 0.10
minimum-amount: 1.0
maximum-amount: 20.0
daily-limit: 300.0
level-up:
enabled: true
amount-per-level: 25.0
daily-limit: 300.0
capture:
enabled: true
amount: 15.0
daily-limit: 150.0
daily-limit: 0 表示对应玩法不限制每日额度。每日领取防重复与三种玩法额度存入 lipet_currency_reward,奖励记录和余额会在同一数据库事务中更新,因此同时点击、跨服并发、重启或执行数据库热切换都不会重复领取。群组服必须让所有子服使用相同的 reset-time-zone;存储层会拒绝比已记录日期更早的周期,避免服务器时钟或时区不一致被用于反复领奖。热切换只切换数据目标,不会自动迁移旧库记录,迁库前仍需完整导入数据库。
13. 宠物道具商城
道具商城配置在 shop.yml 的 item-entries。
item-entries:
growth_food:
enabled: true
currency: "INTERNAL"
price: 30.0
item:
material: "COOKED_BEEF"
amount: 8
适合出售宠物食物、技能书材料或服务器自定义道具。
14. 宠物背包
命令:
/lipet inventory [宠物名称]
特性:
- 每只宠物独立背包。
- SQLite / MySQL 持久化。
- 关闭 GUI 时自动保存。
- 删除宠物时清理背包数据。
inventory.size: 0表示禁用。- 背包大小必须是 9 的倍数,最大 54。
- 默认背包为 54 格(6 行)。
inventory.minimum-size: 54会让旧版 18 格配置以 54 格运行,同时保留管理员原来的类型配置值。
菜单音效位于 gui.yml 的 sounds 节点,可分别配置打开、有效按钮点击和关闭音效;设置 sounds.enabled: false 可全部关闭。
GUI 完整自定义
gui.yml 中每个界面均可独立设置标题、1-6 行尺寸、动态内容槽位和空槽填充。主菜单、宠物管理和放生确认默认使用 5 行;全部菜单默认使用 BORDER 边框填充,中央不会再被玻璃板铺满。
0.26.7+ 的默认 Lore 使用青蓝紫灵契主色,经济信息使用金色,危险操作使用红色,并按功能定位、详细说明和操作引导分层。商城商品 Lore 同样支持完全自定义,<price>、<currency>、<amount> 等变量均会保留。升级时只有与旧版默认文本逐行完全一致的 Lore 才会自动换成新样式;管理员自定义过任意一行都会原样保留。
填充模式:
ALL:填满全部空槽。BORDER:只填菜单四周边框。NONE:不放置任何填充物。CUSTOM:只填filler.slots指定的槽位。
所有内置按钮和 custom-items 都支持:
enabled:显示或隐藏。slot:按钮槽位。material、amount:材质与数量。custom-model-data、item-model:资源包模型标识。glow、hide-tooltip:附魔光效与提示隐藏。name、lore:MiniMessage 名称与描述。action:任意点击的默认动作。actions.LEFT、RIGHT、SHIFT_LEFT、SHIFT_RIGHT、MIDDLE、DROP:按点击方式覆盖动作。
常用动作:
action: "nav:warehouse" # 打开插件内菜单
action: "command:balance" # 执行 /lipet balance
action: "player-command:spawn" # 玩家执行 /spawn
action: "console-command:give <player> apple 1"
action: "store" # 收回当前宠物
action: "close" # 关闭菜单
以下为 LiPet 内置 <变量>,按界面或元素的实际上下文应用于标题、填充物、名称、Lore 和点击动作;商品及属性按钮专属变量并不是所有标题都能使用:
- 全部界面:
<player>、<player_name>、<player_uuid>。 - 宠物商城:
<entry_id>、<pet_type>、<pet_type_id>、<pet_name>、<price>、<currency>、<permission>。 - 道具商城:
<entry_id>、<item_type>、<item_name>、<amount>、<price>、<currency>、<permission>。 - 宠物界面:
<owner_name>、<owner_id>、<pet_id>、<entity_id>、<pet_name>、<pet_type>、<pet_type_id>、<pet_state>、<pet_state_key>、等级、经验、四维属性和全部衍生属性变量。 - 属性按钮:额外提供
<attribute>、<attribute_name>、<attribute_key>、<value>、<attribute_value>、<points>。显示文本中的<attribute>为中文;旧版动作中的<attribute>仍按英文键替换,推荐新动作明确使用<attribute_key>。
warehouse.pet-item.actions 默认提供四种独立操作:LEFT 召唤所选宠物、RIGHT 查看属性与管理、SHIFT_LEFT 收回当前宠物、SHIFT_RIGHT 打开放生二次确认。四项均可自由更换或留空禁用;放生入口只打开确认页,不会单击直接删除。默认 Lore 带有独立红色“⚠放生会永久删除全部数据”警告,只有官方旧默认 Lore、注释与动作会安全迁移,服主自定义内容不会被覆盖。
旧版紧凑默认布局会在升级时迁移到 5 行宽松布局;只要管理员改动过旧版行数或按钮槽位,就视为自定义布局并保留原值。其他新增节点只补缺项,不覆盖已有配置和值或注释。
19. PlaceholderAPI
可用变量:
%lipet_active_name%
%lipet_active_id%
%lipet_active_owner_id%
%lipet_active_owner_name%
%lipet_active_type%
%lipet_active_type_id%
%lipet_active_state%
%lipet_active_state_key%
%lipet_active_level%
%lipet_active_max_level%
%lipet_active_experience%
%lipet_active_required_experience%
%lipet_active_experience_percent%
%lipet_active_attribute_points%
%lipet_active_critical_chance%
%lipet_active_critical_damage%
%lipet_active_dodge%
%lipet_active_knockback_resistance%
%lipet_active_life_steal%
%lipet_active_strength%
%lipet_active_vitality%
%lipet_active_defense%
%lipet_active_agility%
%lipet_active_health%
%lipet_active_max_health%
%lipet_active_health_percent%
%lipet_active_damage%
%lipet_active_speed%
%lipet_active_riding_speed%
%lipet_active_resistance%
%lipet_active_regeneration%
%lipet_attribute_strength_name%
%lipet_attribute_vitality_name%
%lipet_attribute_defense_name%
%lipet_attribute_agility_name%
%lipet_pet_count%
%lipet_server_id%
active_state 返回 messages.yml 中配置的中文状态;active_state_key 返回 ACTIVE 等原始键。四个 attribute_*_name 变量返回可配置中文属性名称。没有活动宠物时,数值变量稳定返回 0 / 0.0,文本变量返回空文本,不会把未解析变量留在计分板上。
PlaceholderAPI 是软依赖。未安装时 LiPet 会跳过 PAPI Hook,不影响主体功能。
Paper 26.2 建议搭配 PlaceholderAPI 2.12.3+;LiPet 不调用其版本专用内部接口。