背包、信号棒与技能书
54 格宠物背包、信号棒回收反馈、技能书持久预扣与失败退款,以及聊天改名。
当前风险:同一宠物背包尚无独占编辑会话。主人与管理员同时打开、关闭保存未完成又重新打开,可能造成覆盖或物品重复。暂勿多人同时编辑同一宠物背包;这与只读菜单的点击保护是两个问题,见 逐项排查清单。
本页从 LiPet
0.27.10-SNAPSHOT完整 Wiki 同步整理;需要连续查阅全部功能时,请返回 LiPet 完整 Wiki。
0.27.10 技能书稳定升级
技能书会先写入插件维护的持久预扣台账,再扣除一本并进入玩家串行队列。连续右键会逐本结算;失败、满级、宠物不存在、玩家掉线或服务器中途重启时会退还对应技能书。pending-skillbook-refunds.yml 是内部退款台账,请勿手动编辑。MySQL 还会在事务内锁定宠物与技能记录,避免群组服并发升级丢失等级。
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:按钮槽位。slots:多槽位列表;非空时覆盖slot,同一按钮可复制到多个位置。material、amount:材质与数量。custom-model-data、item-model:资源包模型标识。glow、hide-tooltip:附魔光效与提示隐藏。name、lore:MiniMessage 名称与描述。
全部 GUI material、技能书和 items.yml 中的信号棒基础物品都支持 CraftEngine 完整 ID,并会保留 CE 模型与组件数据。详情见 CraftEngine 完整物品挂钩。
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" # 关闭菜单
变量会同时应用于 GUI 标题、填充物、名称、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 默认分别为召唤和查看属性,可自由互换或留空禁用。
旧版紧凑默认布局会在升级时迁移到 5 行宽松布局;只要管理员改动过旧版行数或按钮槽位,就视为自定义布局并保留原值。其他新增节点只补缺项,不覆盖已有配置和值或注释。
15. 改名
命令:
/lipet rename [宠物名称]
流程:
- 执行命令或在管理 GUI 点击改名。
- 插件提示进入聊天框输入模式。
- 玩家直接在聊天框输入新名称。
- 输入
取消或cancel可退出。 - 60 秒未输入会自动超时。
16. 信号棒
发放:
/lipet signalstick [数量] [玩家]
使用方式:
- 右键:执行当前模式。
- 潜行 + 右键:切换模式。
- 支持右键空气、方块和宠物实体。
当前模式:
- 坐下 / 跟随
- 收回宠物
- 骑乘宠物
- 打开宠物背包
信号棒使用 PDC 标记识别,不依赖物品显示名。
0.27.9 起,信号棒回收、/lipet store 和管理 GUI 共用同一结果反馈。回收超过 100 tick 时只提示一次正在保存;数据库必须先确认 STORED,随后才移除实体和活动会话。保存失败会保留召唤状态,反馈发送异常会使用独立的 pet-store-feedback-failed,不会把已经成功的回收误报为保存失败。
17. 技能书
发放:
/lipet skillbook <技能> [数量] [玩家]
默认技能:
power:攻击强化vitality:生命强化agility:速度强化
玩家右键自己的已召唤宠物学习技能。技能达到最高等级后不会继续消耗技能书。