跳到主要内容

CDK 兑换码系统

CDK(兑换码)系统允许管理员生成一次性或多次使用的兑换码,玩家输入兑换码即可领取对应礼包。


工作流程

管理员生成 CDK → 分发兑换码给玩家 → 玩家输入兑换码 → 自动发放礼包物品

生成 CDK

使用 /cdk generate 命令批量生成兑换码。

/cdk generate <礼包名> <数量> [每码可用次数] [过期时间]

参数说明

参数必填说明
礼包名兑换码对应的礼包(必须已创建)
数量生成数量(1-1000)
可用次数每个码可被使用的次数,默认 1
过期时间过期时间,格式同冷却时间,不填则永不过期

示例

# 生成 10 个一次性永久兑换码
/cdk generate 新手礼包 10

# 生成 5 个码,每个可用 3 次,7 天后过期
/cdk generate vip 5 3 7d

# 生成 50 个码,1 次使用,2 小时过期(适合限时活动)
/cdk generate 活动奖励 50 1 2h

生成后系统会在聊天中列出所有兑换码,每行最多 5 个。


兑换 CDK

玩家使用以下两种方式兑换:

/cdk <兑换码>          # 简写方式
/cdk redeem <兑换码> # 完整方式

兑换检查流程

系统会按以下顺序检查:

  1. 兑换码是否存在 → 不存在提示"无效的兑换码"
  2. 是否已过期 → 过期提示"此兑换码已过期"
  3. 是否已用完 → 已达最大使用次数提示"此兑换码已用完"
  4. 玩家是否已使用过 → 同一玩家不可重复使用同一兑换码
  5. 对应礼包是否存在 → 礼包被删除则无法兑换

所有检查通过后,自动发放礼包物品。背包满时物品会掉落在玩家脚下。


管理 CDK

查看列表

/cdk list              # 查看所有 CDK
/cdk list 新手礼包 # 查看指定礼包的 CDK

列表显示每个码的:兑换码、对应礼包、使用次数、状态(可用/已过期/已用完)。

查看详情

/cdk info <兑换码>

显示详细信息:兑换码、对应礼包、使用次数/上限、状态、剩余有效期。

删除 CDK

/cdk delete <兑换码>    # 删除单个
/cdk clear <礼包名> # 清除礼包的所有 CDK

CDK 码格式

  • 由大写字母(A-Z)和数字(0-9)随机组成
  • 默认长度 12 位,可在 config.yml 中修改 cdk.code-length
  • 输入时不区分大小写(自动转为大写匹配)
  • 示例:A7KM3XP9BN2Q

数据存储

CDK 数据存储在 SQLite 数据库(plugins/EMCCDK礼包/data.db)中,包含两张表:

表名用途
cdk_codes存储兑换码信息(码值、礼包、次数、过期时间)
cdk_usage记录玩家使用记录(码值、玩家UUID、使用时间)
注意

请勿手动修改数据库文件,所有操作请通过游戏内命令完成。


常见场景

活动发码

# 生成 200 个限时 24 小时的活动兑换码
/cdk generate 活动礼包 200 1 1d

VIP 礼包码

# 生成 10 个永久有效、每码可用 1 次的 VIP 码
/cdk generate VIP礼包 10

多人共享码

# 生成 1 个可用 100 次的公共兑换码
/cdk generate 公共礼包 1 100