配置
节点、数据库、Redis、兑换码与奖励发送设置
配置
GiftCode 首次启动会生成多份独立配置。/gca reload 只重新读取 language.yml 与玩家兑换界面;其他修改需要完整重启服务器。
config.yml
server-id:当前子服的唯一名称;多个子服共用 MySQL 时,每台必须不同;time-zone:JavaZoneId,用于礼包有效期和导出文件时间。
database.yml
单服保持 type: sqlite 即可,数据库文件默认为 plugins/GiftCode/giftcode.db。多个子服必须改为 type: mysql,并让所有节点连接同一个 MySQL 数据库。
parameters 只填写 JDBC 参数,不要在开头添加 ?。生产环境是否启用 TLS,应按实际网络环境决定。
redis.yml
Redis 是可选项,用于减少多个子服同时兑换热门码时的等待。Redis 暂时不可用时,插件仍会通过数据库处理兑换。
Redis 不能代替共享 MySQL。群组服如果各自使用不同数据库,即使连接同一个 Redis,也无法共享兑换记录。
redemption.yml
默认会生成类似 AX-7G8M-K2QP-V9RX 的兑换码。
| 配置项 | 说明 |
|---|---|
prefix | 0–8 位 ASCII 字母或数字 |
alphabet | 至少 16 个不重复的 ASCII 字母或数字 |
group-length | 每组 3–8 位 |
group-count | 2–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 个字符。
该命令只重新读取 language.yml 和 ui/redeem.yml。修改其余配置后,请完整重启服务器。
不要使用 Bukkit /reload 或 PlugMan 热卸载 GiftCode。数据库连接、后台任务和 UI 注册应随服务器完整启动与关闭。
