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. 升级步骤
- 备份
plugins/LiPet/和数据库。 - 删除旧 Jar,只保留
LiPet-0.26.11-SNAPSHOT.jar。 - 启动服务器,插件会安全补全
shop.yml新节点。 - 按需修改
enabled,再执行/lipet reload。 - 给管理组授予
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 的购买拦截。