LogoArcartX Doc

配置

SystemMail config.yml 的完整配置项与生效方式

配置

配置文件位于 plugins/SystemMail/config.yml。第一次安装时,多数单服只需要检查授权和 SQLite 文件路径;群组服则需要重点配置 server-id、MySQL 与 Redis。

服务器标识

配置项默认值说明生效
server-idserver-11–64 位字母、数字、._-;每个子服必须唯一重启

数据库

配置项默认值说明生效
database.typesqlitesqlitemysql重启
database.sqlite-filesystem-mail.db相对于插件数据目录的 SQLite 文件重启
database.mysql.host127.0.0.1MySQL 地址重启
database.mysql.port33061–65535,限制重启
database.mysql.databasesystem_mail数据库名重启
database.mysql.usernameroot用户名重启
database.mysql.passwordchange-me密码重启
database.mysql.parameters太长了自己去看生成的配置吧JDBC 参数,不带开头的 ?重启
database.mysql.pool-size102–50,限制重启

database.type: mysql 时必须启用 Redis;SQLite 模式不能启用 Redis。

Redis

配置项默认值说明生效
redis.enabledfalse多服 MySQL 模式必须为 true重启
redis.host127.0.0.1Redis 地址重启
redis.port63791–65535,限制重启
redis.username""空字符串表示不使用用户名重启
redis.password""空字符串表示不使用密码重启
redis.database00–15,限制重启
redis.channelarcartx:systemmail1–128 位字母、数字、:._-重启
redis.database-poll-seconds51–60 秒;Redis 断线时从 MySQL 补查提醒的周期重启

邮件限制

配置项默认值说明生效
mail.time-zoneAsia/ShanghaiJava ZoneId;影响日期和界面时间文本重载
mail.max-title-length641–256,限制重载
mail.max-content-length81921–32767,限制重载
mail.max-item-slots270–54,限制重载
mail.max-currencies160–64,限制重载
mail.max-currency-per-provider1000000000.0单个货币 provider 的最大正数金额重载
mail.max-commands160–64,限制重载
mail.max-recipients-per-request100001–250000;单次请求的收件人数安全上限重载
mail.recipient-materialization-batch-rows5000100–50000;每批数据库写入行预算,不限制群发总量重载
mail.max-admin-drafts5001–5000,限制;全服共享草稿总数重载
mail.inbox-page-size201–100,限制重载
mail.ui-claim-expiry-grace-minutes200–120,限制;0 关闭当前详情的领取宽限重载
mail.trash-retention-days301–3650,限制重载

recipient-materialization-batch-rows 决定每个事务处理多少名收件人。每名收件人占用“附件数 + 2”行预算,其中两行分别用于收件关系和通知事件。

例如一封邮件包含 27 个附件,默认预算为 5000 时,每批处理 floor(5000 / 29) = 172 名收件人;10000 名收件人会分约 59 批完成。批次中断后继续构建,整封邮件完成前不会出现在玩家收件箱、未读数或通知中。

max-recipients-per-request 会阻止单次请求计划过多收件人。大型服务器可以按 MySQL 容量提高,应同时关注连接池、事务日志、max_allowed_packet 和通知积压。

命令附件白名单

配置项默认值说明生效
commands.allowed-prefixes[]空列表禁止所有命令附件;单项最长 128 个字符且不能换行重载

推荐只加入实际需要的命令前缀:

commands:
  allowed-prefixes:
    - "lp user "
    - "points give "

匹配时会移除命令开头的 / 和空白,并忽略大小写。前缀末尾建议保留空格,避免 give 意外匹配 givehack

ArcartX UI 与变量

配置项默认值说明生效
notifications.unread-variablesystemmail_unread_count玩家未读数变量重载
notifications.page-count-variablesystemmail_page_count未筛选收件箱的总页数变量重载
notifications.inbox-ui-idsystemmail_inbox收件箱注册 ID重启
notifications.hud-ui-idsystemmail_hud新邮件 HUD 注册 ID重启

这些 identifier 允许 1–128 位字母、数字、._:-。修改 UI ID 时还要同步修改对应 AXUI 资源,并完整重启。

安全与性能

通常不需要修改本节。遇到超大物品、异常回包或数据库查询压力时,再按实际情况调整。

配置项默认值说明生效
security.max-item-payload-bytes10485764096–8388608;单件物品序列化上限重载
security.max-mail-item-payload-bytes78643265536–4194304;整封邮件物品序列化总量重载
security.max-ui-packet-fields161–64;玩家请求的最大字段数重载
security.max-ui-field-length131072256–1048576;单字段最大字符数重载
security.max-ui-response-bytes104857665536–4194304;普通动态回包 UTF-8 预算重载
security.max-ui-pages50010–5000;可访问的最大页数重载
security.min-ui-search-length11–16;非空搜索的最短字符数重载
security.max-ui-search-length6416–128;非空搜索的最长字符数重载
security.max-concurrent-ui-queries321–256;还会受连接池和工作线程容量限制重载
security.ui-query-timeout-seconds31–30 秒,限制重载
security.slow-ui-query-warn-millis500100–10000 毫秒,限制重载

min-ui-search-length 不能大于 max-ui-search-length。邮件详情需要完整展示物品数据,不受普通 max-ui-response-bytes 裁剪;其体积由前两项限制。

重载与重启

执行:

/sma reload

可以重载配置、lang.ymlui/inbox.ymlui/hud.yml

以下项目修改后必须完整重启:

  • server-id
  • 整个 database
  • 整个 redis
  • notifications.inbox-ui-id
  • notifications.hud-ui-id

不要使用 Bukkit /reload 或 PlugMan 热卸载 SystemMail。数据库连接、Redis 订阅和共享运行库都应随服务器完整启动与关闭。

On this page