2.2.4 宠物主动攻击开关
每宠保存主动攻击设置、关闭后继续跟随、管理员限制与升级说明。
本页保留 2.2.4 的功能与验证记录。自 2.3.2 起,玩家可见名称统一为“主动攻击”;配置键、动作、变量与已保存开关继续沿用。详见 2.3.2 名称更新说明。
宠物管理菜单新增“自动攻击”按钮。潜行空手右键自己的已召唤宠物,点击按钮即可开启或关闭,菜单会显示这只宠物当前的选择。
开关控制的行为
| 设置 | 行为 |
|---|---|
| 开启 | 允许现有自动战斗逻辑运行,仍遵守管理员物种配置、主人与友方保护、区域限制、技能配置和冷却 |
| 关闭 | 清除当前战斗目标,停止自动索敌、主人攻击援助、主人或宠物受击后的自动反击、原版自主仇恨、普通攻击及自动战斗技能;宠物继续跟随 |
这项设置按每只宠物保存,不会批量改变玩家的其他宠物。旧宠物与新宠物默认开启,召回、玩家重进和正常重启后仍保留各自的选择。
关闭自动攻击不会切换坐下状态,也不会影响背包、喂食和骑乘。/lipet skills cast <1|2|3> 手动入口继续保留,但仍要求技能已解锁、冷却结束且具有所需的合法目标;需要目标的技能不能在没有目标时强行施放。
玩家开关不能越过管理员限制。例如物种配置 behavior.auto-attack.enabled: false 禁用主动索敌时,即使玩家选择开启,也不会重新开启该物种的主动索敌。
配置与保存
按钮位于 gui.yml -> manage.actions.auto-attack,默认使用铁剑图标和槽位 22(从 0 开始)。文字、Lore、位置可调整,旧菜单升级优先选用空槽,避免覆盖已有按钮。enabled: false 只隐藏入口,不会批量关闭已保存的宠物设置。
如果自定义管理菜单已占满所有槽位,新按钮会先以 enabled: false 补入。服主腾出一个槽位,设置 slot 并启用按钮后执行 /lipet reload,再重新打开菜单即可使用。
旧配置即使只自定义按钮名称、没有写槽位,也可以安全补全。点击后的异步保存只刷新仍在查看的管理菜单,不会把已经关闭菜单的玩家重新拉回。
按钮支持 <auto_attack> 显示状态文字、<auto_attack_enabled> 显示 true/false,以及 <auto_attack_next> 表示下一次点击要保存的相反值。内置动作 auto-attack:<pet_id>:<auto_attack_next> 应保留完整格式。
messages.yml 的 pet-auto-attack-state-enabled/disabled 控制两种状态文字,pet-auto-attack-enabled/disabled 控制保存成功提示,pet-auto-attack-save-failed/save-conflict 分别提示保存失败和状态冲突。文本支持 MiniMessage,旧配置只补缺失项,管理员已有值与注释保持。
开关属于宠物存档,使用现有 SQLite / MySQL 持久化和宠物同步流程。升级自动补充缺失数据库字段,历史宠物按开启兼容;无需删除或重建数据库。保存失败会提示,不能将点击按钮当作已保存成功。
更新方式
- 正常停服,备份 LiPet 配置、数据库及恢复台账。
- 将旧 LiPet Jar 移出
plugins扫描目录,只保留LiPet-2.2.4.jar。 - 保留原配置、独立宠物文件和数据库,再正常启动,确认控制台出现
Enabling LiPet v2.2.4。 - 召唤一只宠物,在管理菜单关闭自动攻击,观察停止自动战斗且继续跟随,再召回、重新召唤确认设置保留。
更换 Jar 必须正常重启;/lipet reload 不能替换已加载的 Java 代码。数据库连接变更也仍需正常重启,不执行在线换库。
112 项技能、已有 ModelEngine 模型和 CE 物品贴图包 1.0.0 继续兼容。本次开关不要求更新客户端资源包。
验证结果
最终 2.2.4 Jar 的 803 项测试全部通过,失败、错误和跳过均为 0;Jar 内 609 个业务类与最终编译输出逐字节一致。同一 Jar 还通过以下隔离运行检查:
| 环境 | 本轮通过检查 | 范围 |
|---|---|---|
| MySQL 8.0.45 | 28 项(5 项旧版数据准备、23 项新版检查) | 从 2.2.3 数据升级、原宠物字段与技能背包保留、自动攻击设置保存、16 个并发条件保存竞争 |
| Paper 26.2 Build 111 | 45 项(首次运行 36 项、完整进程重启 9 项) | 实际 GUI 点击、开关状态、收回再召唤,以及正常停服和重启后的持久化 |
| Paper 26.2 / Folia 26.2 | 各 36 项,共 72 项战斗检查 | 真实 Bukkit 实体与伤害事件、关闭自动战斗、自动技能限制与继续跟随 |
运行检查使用隔离服务端玩家对象和数据库,不等同真人客户端视觉验收或完整弹道物理验收;没有连接客户数据库,也没有替换生产服正在加载的插件。其他历史版本的验证不计作本次重跑。
最终已验 2.2.4 Jar SHA-256:
7058D207BC9B2CDCDE8F75375D516CFCC55AAB6054CBD16BE81419FEEF057042