Skip to content

OnlineRewards 在线奖励

功能定位

在线时长奖励、每日签到、补签卡、四维排行榜(日/周/月/总)。

核心特性

在线时长:

  • 四维统计:今日、本周、本月、总在线时长自动统计
  • 阶段奖励:按今日累计在线分钟设置多个阶段,达标自动发放命令奖励和邮件预设
  • 时长倍率:权限组加速(如 VIP 2x 在线计时),匹配多个权限时取最高优先级
  • 客户端进度变量:实时推送 arcartx_online_time(0.0~1.0)和阶段标题到 ArcartX 客户端

签到系统:

  • 每日签到/signin 一键签到,支持登录提醒
  • 连续签到奖励:连续签到恰好 N 天时触发额外奖励(如连续 3 天、7 天)
  • 累计签到奖励:累计签到恰好 N 天时触发额外奖励(如累计 10 天、30 天)
  • 每月日期奖励:每月指定日期签到可触发专属奖励(如 1 号、15 号)
  • 节日签到奖励:指定月日签到触发节日奖励(如元旦、中秋)
  • 权限额外奖励:拥有特定权限时签到额外发放一组奖励
  • 补签卡:管理员可发放补签卡,玩家通过 UI 消耗补签卡补签本月未签到日期
  • Mail 联动:签到和阶段奖励均支持通过 Mail 模块发送预设邮件

排行榜与跨服:

  • 四维排行榜:日榜、周榜、月榜、总榜,Top 1~10 通过 PAPI 输出
  • CrossServer 跨服同步:签到、补签、管理操作后通知其他子服刷新(需 MySQL 共享库 + 宿主 cross-server)

依赖

类型依赖作用缺少时表现
必需ArcartX在线进度、签到 UI、排行榜 UI 和客户端提示模块无法展示可视化奖励界面
可选PlaceholderAPI输出在线/签到排行榜 PAPI,解析奖励条件PAPI 输出和条件解析不可用
可选Mail 模块签到、在线阶段奖励通过预设邮件发放邮件奖励跳过或需要改为命令奖励
可选Vault奖励/补签卡等配置中使用金币时扣发款Vault 货币动作不可用
可选宿主 cross-server多服刷新签到/补签/管理操作后的客户端 UI单服正常;跨服同步关闭
可选MySQL 服务多服共享在线与签到数据默认 SQLite 可用;跨服必须使用共享 MySQL

启用步骤

yaml
modules:
  onlinerewards:
    enabled: true

配置

多 UI 发包

ui.menu-ui-id 支持列表格式,可同时向多个 UI 推送同一份 payload,详见 多 UI 同时发包

配置分为主配置和两个独立外部文件:

yaml
# ArcartXOnlineRewards.yml(主配置)
cross-server:
  enabled: false

# 签到配置文件路径,相对模块数据目录。
sign-in-file: "sign-in.yml"

# 在线阶段奖励文件路径,相对模块数据目录。
rewards-file: "rewards.yml"

跨服需 MySQL 共享库 + 宿主 config.ymlcross-server。详见 跨服功能配置指南

在线阶段奖励(data/onlinerewards/rewards.yml

yaml
rewards:
  - minutes: 30
    name: "第一阶段"
    rewardText: "在线 30 分钟"
    commands:
      - "give {player} diamond 1"

  - minutes: 60
    name: "第二阶段"
    rewardText: "在线 1 小时"
    mail-presets:
      - "online_reward_1h"

签到配置(data/onlinerewards/sign-in.yml

yaml
reminder-on-join: true

messages:
  sign-in-success: "§a今日签到成功,连续 {streak} 天。"
  sign-in-repeat: "§e今天已经签到过了。"

# 每次成功签到执行的命令
base-commands:
  - "give {player} emerald 1"

# 连续签到里程碑奖励
streak-rewards:
  - days: 7
    commands:
      - "give {player} diamond 3"

命令

管理命令(权限:arcartxsuite.admin

命令说明
/axs onlinerewards status查看在线奖励、签到和排行榜状态
/axs onlinerewards reload重载在线奖励配置和 UI
/axs onlinerewards add|remove|set <时长> <玩家>修改玩家在线时长。add 增加、remove 减少、set 设为指定值。时长如 30m2h1d
/axs onlinerewards card add|remove|set <数量> <玩家>修改玩家的补签卡数量

玩家命令(权限:arcartxsuite.onlinerewards.use,别名 /signin

命令说明
/onlinerewards/onlinerewards open打开在线奖励菜单界面
/onlinerewards status查看自己的在线时长统计和签到状态
/onlinerewards signin/signin进行今日签到
/onlinerewards top <范围> [页码]查看排行榜。范围:daily(日)、weekly(周)、monthly(月)、total(总)

PAPI

前缀:%axsonlinerewards_*%

个人数据

占位符说明
%axsonlinerewards_daily_minutes%今日在线分钟数
%axsonlinerewards_weekly_minutes%本周在线分钟数
%axsonlinerewards_monthly_minutes%本月在线分钟数
%axsonlinerewards_total_minutes%总在线分钟数
%axsonlinerewards_daily_time%今日在线时间(格式化显示)
%axsonlinerewards_weekly_time%本周在线时间(格式化)
%axsonlinerewards_monthly_time%本月在线时间(格式化)
%axsonlinerewards_total_time%总在线时间(格式化)
%axsonlinerewards_signin_signed_today%今日是否已签到(true/false
%axsonlinerewards_signin_streak%连续签到天数
%axsonlinerewards_signin_total%累计签到天数

排行榜

格式:%axsonlinerewards_top_<范围>_<名次>_<字段>%

参数可选值
<范围>dailyweeklymonthlytotal
<名次>1~10
<字段>name(玩家名)、minutes(分钟数)、time(格式化时间)

EventPacket 联动

OnlineRewards 在签到成功时自动向 EventPacket 发射信号:

信号名触发时机携带变量
signin_success玩家签到成功streak, total, date, day_of_month

可在 ArcartXEventPacket.yml 中配置对应规则实现连续签到里程碑奖励、邮件派发等联动效果。

基于 GPL-3.0 许可发布