Skip to content

点券充值与独立礼包

类型命令配置文件
点券充值/gtpay buy <金额> [渠道]topup.yml
固定礼包/gtpay gift <礼包ID> [渠道]gifts.yml

点券充值 topup.yml

默认配置:

yaml
name: "点券充值"
enabled: true
scaled: 1.0
integer_only: false
min_amount: 0.01
max_amount: 1000000
permission: ""
commands:
  - "[console] points give {player} {scaled_amount}"

字段说明:

配置说明
name点券充值显示名称
enabled是否允许创建点券订单
scaled充值金额转换倍率
integer_only是否只允许整数金额
min_amount最低充值金额
max_amount最高充值金额
permission创建点券订单需要的权限,留空不限制
commands支付成功后执行的命令

充值倍率

1 元发 1 点券:

yaml
scaled: 1.0
commands:
  - "[console] points give {player} {scaled_amount}"

1 元发 10 点券:

yaml
scaled: 10.0
commands:
  - "[console] points give {player} {scaled_amount}"

玩家充值 30 元时,{scaled_amount}300

只允许整数充值

yaml
integer_only: true
min_amount: 1
max_amount: 1000

允许:

text
/gtpay buy 1 wechat
/gtpay buy 10 wechat
/gtpay buy 100 alipay

不允许:

text
/gtpay buy 1.5 wechat

自定义充值范围示例

yaml
min_amount: 1
max_amount: 500

这只是一个自定义示例。默认 max_amount1000000,GUI 中显示的 500 元按钮也只是快捷金额,不是系统上限。

点券命令示例

PlayerPoints:

yaml
commands:
  - "[console] points give {player} {scaled_amount}"

自定义点券插件:

yaml
commands:
  - "[console] coin add {player} {scaled_amount}"

同时发放点券和全服公告:

yaml
commands:
  - "[console] points give {player} {scaled_amount}"
  - "[console] broadcast &6{player} &f完成充值 &e{amount} 元"

点券命令变量

变量内容
{player}玩家名
{uuid}玩家 UUID
{order_id}GTPay 订单号
{trade_no}支付流水号
{reward}topup
{type}topup
{purchase_type}topup
{amount}玩家输入的基础金额
{pay_amount}实际支付金额,可能包含分币识别金额
{scaled_amount}基础金额乘 scaled 后的结果

奖励发放应使用 {amount}{scaled_amount},不要使用 {pay_amount}。分币只用于区分待支付订单,不应多发点券。

礼包 gifts.yml

默认示例:

yaml
vip_30:
  name: "VIP 30 天"
  enabled: true
  category: "vip"
  price: 30.00
  limit: -1
  global_limit: -1
  permission: ""
  refresh_time: "0"
  commands:
    - "[console] lp user {player} parent addtemp vip 30d"
    - "[console] tellraw {player} {\"text\":\"GTPay 礼包到账\",\"color\":\"green\"}"

vip_30 是礼包 ID,命令中使用:

text
/gtpay gift vip_30 wechat

礼包字段

配置说明
name礼包显示名称
enabled是否启用
category礼包分类,可在 GUI 中显示
price固定价格
limit每个玩家最多完成多少次,-1 不限制
global_limit全服最多完成多少次,-1 不限制
permission购买权限,留空不限制
refresh_time玩家购买次数的冷却周期
commands到账后执行的奖励命令

多个礼包

yaml
vip_7:
  name: "VIP 7 天"
  enabled: true
  category: "vip"
  price: 10.00
  limit: -1
  global_limit: -1
  permission: ""
  refresh_time: "0"
  commands:
    - "[console] lp user {player} parent addtemp vip 7d"

vip_30:
  name: "VIP 30 天"
  enabled: true
  category: "vip"
  price: 30.00
  limit: -1
  global_limit: -1
  permission: ""
  refresh_time: "0"
  commands:
    - "[console] lp user {player} parent addtemp vip 30d"

starter_pack:
  name: "新手补给包"
  enabled: true
  category: "items"
  price: 6.00
  limit: 1
  global_limit: -1
  permission: ""
  refresh_time: "0"
  commands:
    - "[console] give {player} diamond 16"
    - "[console] give {player} golden_apple 8"

限购

每个玩家只能购买一次:

yaml
limit: 1

全服只能完成 100 次:

yaml
global_limit: 100

限购只统计已经完成发放的订单。取消、过期和异常订单不占用购买次数。

冷却时间

每天一次:

yaml
refresh_time: "1d"

每周一次:

yaml
refresh_time: "7d"

支持单位:

text
d 天
h 小时
m 分钟
s 秒

组合写法:

yaml
refresh_time: "1d12h"

奖励执行身份

控制台执行:

yaml
- "[console] give {player} diamond 1"

玩家身份执行:

yaml
- "[player] warp vip"

临时 OP 执行:

yaml
- "[op] kit vip"

没有前缀时按控制台命令处理。

需要玩家在线的 [player][op] 命令会等待玩家上线再发放。纯控制台奖励不要求玩家在线。

礼包命令变量

礼包支持与点券相同的订单变量,其中:

text
{reward}         礼包 ID
{type}           gift
{purchase_type}  gift
{amount}         礼包基础价格
{pay_amount}     实际支付金额
{scaled_amount}  基础价格乘 scaled 后的结果

礼包通常不需要设置 scaled,默认按 1.0 处理。

修改 topup.ymlgifts.yml 后执行 /gtpay reload,新订单会使用重载后的配置。