Skip to content

feat(mod): 添加进退服及死亡播报冷却 - #20

Merged
zkhssb merged 4 commits into
easybot-team:developfrom
BaizhouziYou:feat/event-sync-cooldown
Oct 3, 2026
Merged

zkhssb merged 4 commits into
easybot-team:developfrom
BaizhouziYou:feat/event-sync-cooldown

Conversation

@BaizhouziYou

@BaizhouziYou BaizhouziYou commented Oct 2, 2026 •

Copy link
Copy Markdown

变更内容

  • 添加 /easybot config,可查看三个冷却项,指定配置项和秒数后保存并即时生效

  • 配置命令默认权限等级为 3,接入统一命令开关、权限等级和 LuckPerms 节点 easybot.command.config,提供配置项和常用秒数补全

  • 仅允许修改冷却项,校验整数范围;保存失败时保留原值,正常修改不重连 Bridge

  • 在 sync 中添加 joinCooldownSeconds、quitCooldownSeconds 和 deathCooldownSeconds

  • 为 Fabric、NeoForge 和 Forge 接入统一冷却逻辑

  • 进服、退服按玩家 UUID 分别计时

  • 死亡播报按玩家 UUID 和伤害类型分别计时

  • 补充 README 配置示例及冷却规则说明

命令示例

/easybot config
/easybot config sync.joinCooldownSeconds 60
/easybot config sync.quitCooldownSeconds 60
/easybot config sync.deathCooldownSeconds 30

省略秒数时查询单项;0 或负数关闭冷却。

问题原因

玩家频繁重连或重复死亡时,每次事件都会触发群播报,缺少 Mod 侧的冷却限制。

影响

  • 冷却单位为秒,默认 0;0 或负数表示关闭,旧配置保持原有行为
  • 首次正常播报,被拦截的事件不延长冷却
  • 不同死因独立计时,切换死因不会清除原死因的冷却
  • 仅限制发往主程序的对应播报,不取消游戏事件或改变登录验证
  • skipOptions 仍优先生效
  • 手动修改配置并重载,或通过命令修改时长后,该类事件下次发生时清空原冷却
  • 冷却不持久化,重启后重新计时
  • 不涉及按群配置,不修改主程序

验证

  • Fabric、NeoForge 1.21.1 实服验证命令权限、补全、整数边界、即时冷却及重载后持久化

  • 配置损坏及文件锁导致写入失败时,文件和内存原值保持不变;未知字段保留

  • 合并上游后验证 LuckPerms 授权与显式拒绝、命令开关和权限等级、客户端命令树及帮助可见性

  • 冷却保存校验完整配置,拒绝无效过滤配置;保留消息过滤规则,普通聊天与手动转发均受过滤约束

  • :1.21-fabric:remapJar

  • :1.21-neoforge:shadowJar

  • :1.20.1-legacyforge:compileJava

  • :26.3-fabric:compileJava

  • :26.3-neoforge:compileJava

  • 冷却到期、独立玩家和死因、并发及配置变更检查通过

  • Fabric、NeoForge 1.21.1 实服验证重复进退服、重复死亡、到期恢复和配置重载

  • 验证关闭冷却及 skipOptions 优先级

  • 冷却期间登录上报正常,被过滤的死亡仍正常发生并可重生

  • QQ 群测试分别收到预期的 2 条进服、2 条退服、3 条死亡播报,发送回执和群消息事件数量一致

  • git diff --check

测试说明

测试使用 Minecraft 1.21.1:

  • Fabric Loader 0.19.5、Fabric API 0.116.17
  • NeoForge 21.1.252

关联 issue

Refs easybot-team/easybot-issues#23

本 PR 仅实现播报冷却,不包含按群配置

- 为 Fabric、NeoForge 和 Forge 接入统一的播报冷却逻辑
- 添加进服、退服和死亡冷却配置,默认关闭
- 按玩家和事件类型计时,死亡播报进一步区分伤害类型
- 补充 README 配置说明

@Ftimever Ftimever left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

类似bukkit,配合命令配置如/easybot config xxx

- 添加冷却配置查询与修改命令,沿用管理员权限并提供补全
- 校验整数及配置项,保存成功后即时生效,保存失败保留原值
- 保留未知配置字段,正常修改冷却时不重连 Bridge
@BaizhouziYou

Copy link
Copy Markdown
Author

类似bukkit,配合命令配置如/easybot config xxx

ok了

@BaizhouziYou
BaizhouziYou requested a review from Ftimever October 2, 2026 13:47
@zkhssb

zkhssb commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

解决一下冲突就可以合并了

保留上游消息过滤和权限配置,将冷却命令接入统一权限检查,并在保存时校验完整配置。
@BaizhouziYou

Copy link
Copy Markdown
Author

解决一下冲突就可以合并了

ok了

@zkhssb
zkhssb merged commit 36d7067 into easybot-team:develop Oct 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants