LogoArcartX Doc

配置

节点、数据库、Redis、兑换码与奖励发送设置

配置

GiftCode 首次启动会生成多份独立配置。/gca reload 只重新读取 language.yml 与玩家兑换界面;其他修改需要完整重启服务器。

config.yml

server-id: server-1
time-zone: Asia/Shanghai
  • server-id:当前子服的唯一名称;多个子服共用 MySQL 时,每台必须不同;
  • time-zone:Java ZoneId,用于礼包有效期和导出文件时间。

database.yml

type: sqlite
sqlite-file: giftcode.db
worker-threads: 4
 
mysql:
  host: 127.0.0.1
  port: 3306
  database: arcartx
  username: root
  password: change-me
  parameters: useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=utf8
  pool-size: 6

单服保持 type: sqlite 即可,数据库文件默认为 plugins/GiftCode/giftcode.db。多个子服必须改为 type: mysql,并让所有节点连接同一个 MySQL 数据库。

parameters 只填写 JDBC 参数,不要在开头添加 ?。生产环境是否启用 TLS,应按实际网络环境决定。

redis.yml

enabled: false
host: 127.0.0.1
port: 6379
username: ""
password: ""
database: 0
ssl: false
timeout-millis: 2000
key-prefix: "giftcode:"

Redis 是可选项,用于减少多个子服同时兑换热门码时的等待。Redis 暂时不可用时,插件仍会通过数据库处理兑换。

Redis 不能代替共享 MySQL。群组服如果各自使用不同数据库,即使连接同一个 Redis,也无法共享兑换记录。

redemption.yml

codes:
  prefix: AX
  alphabet: ABCDEFGHJKLMNPQRSTUVWXYZ23456789
  group-length: 4
  group-count: 3
  max-generate-per-command: 10000
 
delivery:
  check-interval-seconds: 5
  batch-size: 32
  processing-timeout-seconds: 30
  max-attempts: 100
  retry-delay-seconds: 2

默认会生成类似 AX-7G8M-K2QP-V9RX 的兑换码。

配置项说明
prefix0–8 位 ASCII 字母或数字
alphabet至少 16 个不重复的 ASCII 字母或数字
group-length每组 3–8 位
group-count2–6 组
max-generate-per-command单次生成上限,允许 1–100000
delivery.check-interval-seconds后台检查待发送奖励的间隔
delivery.batch-size每个节点同时提交给 SystemMail 的数量上限,也限制每轮补发数量
delivery.processing-timeout-seconds节点中断后允许其他节点继续处理的等待时间
delivery.max-attempts自动发送的最大尝试次数
delivery.retry-delay-seconds首次重试的基础间隔,连续失败时会逐步延长

更改兑换码格式只影响之后生成的兑换码,不会替换数据库中已有的码。

language.yml 与兑换界面

language.yml 设置玩家兑换结果文字;ui/redeem.yml 设置玩家兑换界面。

兑换码输入最长 64 个字符。

/gca reload

该命令只重新读取 language.yml 和 ui/redeem.yml。修改其余配置后,请完整重启服务器。

不要使用 Bukkit /reload 或 PlugMan 热卸载 GiftCode。数据库连接、后台任务和 UI 注册应随服务器完整启动与关闭。

On this page