跳到主要内容

通知系统

Assiah 提供多种通知机制,确保玩家不会错过重要邮件。

登录通知

玩家登录服务器时,如果有未读邮件,会收到提示消息:

你有 3 封未读邮件,输入 /mail 查看。

config.yml 中控制:

notify-on-join: true

新邮件实时通知

当在线玩家收到新邮件时,会立即收到通知:

你收到一封新邮件: 管理员通知

config.yml 中控制:

notify-on-new-mail: true

跨服通知

如果启用了 Redis,新邮件通知可以跨服传递。当玩家在 A 服收到邮件但人在 B 服时,B 服也能收到实时通知。

跨服通知通过 MailNetworkBridge 模块实现,基于 Redis Pub/Sub:

  1. A 服发送邮件后,通过 assiah:mail:notify 频道广播通知
  2. B 服收到广播后,检查目标玩家是否在本服在线
  3. 如果在线,向玩家发送通知消息
redis:
channel:
mail-notify: assiah:mail:notify

详见 跨服支持

过期清理通知

插件会每小时自动执行过期邮件清理任务:

  1. 将收件箱/已发送/归档中超过过期天数的邮件移入回收站
  2. 将回收站中超过保留天数的邮件永久删除

清理完成后会在控制台输出日志:

过期清理完成: 过期 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