通知系统
Assiah 提供多种通知机制,确保玩家不会错过重要邮件。
登录通知
玩家登录服务器时,如果有未读邮件,会收到提示消息:
你有 3 封未读邮件,输入 /mail 查看。
在 config.yml 中控制:
notify-on-join: true
新邮件实时通知
当在线玩家收到新邮件时,会立即收到通知:
你收到一封新邮件: 管理员通知
在 config.yml 中控制:
notify-on-new-mail: true
跨服通知
如果启用了 Redis,新邮件通知可以跨服传递。当玩家在 A 服收到邮件但人在 B 服时,B 服也能收到实时通知。
跨服通知通过 MailNetworkBridge 模块实现,基于 Redis Pub/Sub:
- A 服发送邮件后,通过
assiah:mail:notify频道广播通知 - B 服收到广播后,检查目标玩家是否在本服在线
- 如果在线,向玩家发送通知消息
redis:
channel:
mail-notify: assiah:mail:notify
详见 跨服支持。
过期清理通知
插件会每小时自动执行过期邮件清理任务:
- 将收件箱/已发送/归档中超过过期天数的邮件移入回收站
- 将回收站中超过保留天数的邮件永久删除
清理完成后会在控制台输出日志:
过期清理完成: 过期 5 封,回收站清理 3 封。
相关配置在 mailbox.yml 中:
expire:
enabled: true
days: 30
trash-keep-days: 7
auto-delete-expired-trash: true
同时需要在 config.yml 中启用自动清理:
auto-clean-expired-mail: true