搜索

背包、信号棒与技能书

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 [宠物名称]

流程:

  1. 执行命令或在管理 GUI 点击改名。
  2. 插件提示进入聊天框输入模式。
  3. 玩家直接在聊天框输入新名称。
  4. 输入 取消 或 cancel 可退出。
  5. 60 秒未输入会自动超时。

16. 信号棒

发放:

/lipet signalstick [数量] [玩家]

使用方式:

  • 右键:执行当前模式。
  • 潜行 + 右键:切换模式。
  • 支持右键空气、方块和宠物实体。

当前模式:

  • 坐下 / 跟随
  • 收回宠物
  • 骑乘宠物
  • 打开宠物背包

信号棒使用 PDC 标记识别,不依赖物品显示名。

0.27.9 起,信号棒回收、/lipet store 和管理 GUI 共用同一结果反馈。回收超过 100 tick 时只提示一次正在保存;数据库必须先确认 STORED,随后才移除实体和活动会话。保存失败会保留召唤状态,反馈发送异常会使用独立的 pet-store-feedback-failed,不会把已经成功的回收误报为保存失败。

17. 技能书

发放:

/lipet skillbook <技能> [数量] [玩家]

默认技能:

  • power:攻击强化
  • vitality:生命强化
  • agility:速度强化

玩家右键自己的已召唤宠物学习技能。技能达到最高等级后不会继续消耗技能书。