搜索

2026-08-27 更新

指定玩家单宠管理、商城总开关、热重载、升级步骤和兼容验证。

适用版本:0.26.11-SNAPSHOT

本次更新增加“按玩家和宠物精确管理”与商城总开关,并重点修复跨玩家 GUI 操作可能混用管理员自身数据的问题。

1. 管理指定玩家的指定宠物

新增指令:

/lipet manage <玩家> <宠物名称>

示例:

/lipet manage Steve 小狼
  • 目标玩家必须在线,第二个参数支持宠物名称或宠物 UUID。
  • Tab 补全会联想在线玩家,并补全该玩家已有宠物名称。
  • 权限为 lipet.admin.manage,默认仅 OP 拥有,并已加入 lipet.admin 子权限。
  • 可管理已召唤或已收回宠物。
  • 属性、背包、聊天框改名、收回、坐下和永久放生都使用宠物真实主人 UUID,不会误操作管理员自己的宠物。
  • 收回与坐下额外校验指定宠物 UUID,不会把同一玩家当前召唤的另一只宠物误收回或切换状态。
  • 管理界面每次点击都会重新检查权限,权限撤销后旧界面立即失效。

2. 商城总开关

shop.yml 新增:

# 商城总开关。true=开放宠物商城和宠物道具商店;false=全部关闭。
# 关闭后 /lipet shop、/lipet itemshop、GUI 导航和已打开界面的购买操作都会被拒绝。
# 修改后执行 /lipet reload 即可立即生效,取值只能是 true 或 false。
enabled: true

设置为 false 并执行 /lipet reload 后:

  • /lipet shop 和 /lipet itemshop 无法使用。
  • 主菜单、仓库或自定义 GUI 动作不能打开两个商城。
  • 已经打开商城的玩家不能继续完成购买。
  • /lipet help 自动隐藏两个商城入口。
  • 宠物和道具商品配置原样保留,重新开启后立即恢复。

如果旧配置没有该节点,插件只补入缺失的 enabled: true 与中文注释,不覆盖已有商城商品、价格或自定义 Lore。填写非布尔值时,重载会给出配置错误并拒绝应用。

3. 升级步骤

  1. 备份 plugins/LiPet/ 和数据库。
  2. 删除旧 Jar,只保留 LiPet-0.26.11-SNAPSHOT.jar。
  3. 启动服务器,插件会安全补全 shop.yml 新节点。
  4. 按需修改 enabled,再执行 /lipet reload。
  5. 给管理组授予 lipet.admin.manage,普通玩家不要授予该权限。

4. 验证范围

  • 默认 Paper 1.21.11 API 构建:80 项自动测试全部通过。
  • Paper 26.2.build.111-stable 编译 Profile:80 项自动测试全部通过。
  • 同一成品 Jar 在 Paper 26.1.2 Build 70 与 Paper 26.2 Build 111 正常启动、执行 /lipet status 并安全关闭。
  • Paper 26.1.2 实测 enabled: false 时帮助页隐藏商城入口;改为 true 并执行 /lipet reload 后两个入口立即恢复。
  • 旧 shop.yml 启动后只补入缺失开关及中文注释,原商品价格保持不变。
  • plugin.yml 主指令、权限和商城配置资源校验,以及管理上下文所有权、实时权限和管理员背包编辑者隔离测试全部通过。
  • 成品为 Java 21 字节码(class major 65),Jar 内没有打入外部依赖类。

成品 SHA-256:6BC05EC9BDD9C26D45AC52FD3975635DE10501587DB5F2D387D5179714B2B3EE

真实服使用时,建议分别验证:活动宠物收回、已收回宠物拒绝坐下、跨玩家聊天框改名、商城关闭前已打开 GUI 的购买拦截。