Suite

命令与占位符

BattlePass 命令、权限与 PlaceholderAPI 占位符

命令与占位符

玩家命令

玩家命令通过 /bp/battlepass/axsbp 触发,仅限玩家执行。

命令别名权限说明
/bp/bp open打开战令主界面
/bp open打开战令主界面
/bp tasks打开任务列表界面
/bp rewards打开奖励列表界面
/bp claim <等级>领取指定等级的奖励
/bp help显示玩家命令帮助

无参数执行 /bp 等同于 /bp open。未知子命令也会自动打开主界面。

claim 领取说明

/bp claim <等级> 会领取指定等级下当前可领的全部档位奖励:

结果消息
成功成功领取等级 {等级} 的奖励!
等级未达到尚未达到该等级。
已领取过该等级奖励已领取。
无可领奖励该等级没有可领取的奖励。

Tab 补全

第一参数支持补全:open / tasks / rewards / claim / help

管理员命令

管理员命令通过 /axs battlepass <子命令> 触发,控制台和玩家均可执行。

命令说明
/axs battlepass help显示管理命令帮助
/axs battlepass status查看模块状态(赛季、活跃玩家数、跨服、奖励数)
/axs battlepass season查看当前赛季信息(ID、名称、等级上限、起止日期、结算状态)
/axs battlepass reset <玩家>重置指定玩家的战令进度
/axs battlepass unlock <玩家> <premium|deluxe>解锁指定玩家的战令档位
/axs battlepass addexp <玩家> <数量>增加玩家战令经验(自动升级)
/axs battlepass setexp <玩家> <数量>设置玩家当前等级内经验(不触发升级)
/axs battlepass removeexp <玩家> <数量>扣除玩家经验(可能降级)
/axs battlepass setlevel <玩家> <等级>设置玩家等级(经验清零)
/axs battlepass settle手动结算当前赛季

Tab 补全

参数位置补全内容
第 2 参数子命令名(help / status / reset / season / unlock / addexp / setexp / removeexp / setlevel / settle
第 3 参数在线玩家名(reset / unlock / addexp / setexp / removeexp / setlevel 子命令)
第 4 参数unlock 子命令补全 premium / deluxe

命令详解

status 查看模块状态

显示当前赛季 ID、活跃玩家数、跨服同步状态、奖励配置数量。

season 查看赛季信息

显示赛季 ID、名称、最大等级、起止日期、结算状态。

reset 重置玩家进度

重置指定玩家在当前赛季的全部战令数据(等级、经验、任务进度、奖励领取记录)。玩家必须在线。

unlock 解锁档位

解锁指定玩家的 PREMIUM 或 DELUXE 档位。档位升级是单向的,如果玩家已拥有更高档位则提示已解锁。

addexp 增加经验

增加指定玩家的战令经验,自动触发升级。数量必须为正整数。

setexp 设置经验

设置玩家当前等级内的经验值,不触发升级。超出当前等级所需经验的部分截断。数量必须 ≥ 0。

removeexp 扣除经验

扣除玩家经验,可能导致降级。从 1 级开始逐级累加确定新等级和新级内经验。数量必须为正整数。

setlevel 设置等级

直接设置玩家等级,经验清零。等级不能超过 season.max-level。等级必须 ≥ 1。

settle 手动结算

异步执行当前赛季结算。结算流程:

  1. 发放所有玩家未领取的等级奖励
  2. 按等级阈值发放赛季结算奖励
  3. 标记赛季已结算

已结算的赛季不会重复结算。如需重新结算,需先清除 bp_season_settlement 表中的记录。

权限节点

BattlePass 模块的命令权限设计:

权限节点说明默认
/bp 系列命令玩家命令,无权限限制所有玩家可用
/axs battlepass 系列命令管理命令,通过 /axs 总命令权限控制管理员可用

玩家命令(/bp / /battlepass)不需要任何权限节点。管理命令通过 ArcartXSuite 的 /axs 命令权限体系控制,通常需要 OP 或管理员权限。

PlaceholderAPI 占位符

BattlePass 注册了 axsbattlepass 标识的 PlaceholderAPI 扩展,提供以下占位符:

占位符说明示例值
%axsbattlepass_season%当前赛季 IDseason-1
%axsbattlepass_season_display%赛季显示名称第一赛季
%axsbattlepass_level%玩家当前等级25
%axsbattlepass_max_level%赛季最大等级100
%axsbattlepass_xp%玩家当前等级内经验值340
%axsbattlepass_xp_per_level%升到下一级所需总经验500
%axsbattlepass_xp_needed%升到下一级还需的经验160
%axsbattlepass_premium%是否已解锁高级档位已激活 / 未激活
%axsbattlepass_deluxe%是否已解锁典藏档位已激活 / 未激活
%axsbattlepass_tier%当前档位中文名免费 / 高级 / 典藏
%axsbattlepass_active_tasks%当前活跃(未完成)任务数3

占位符使用示例

# 显示战令等级进度
&7战令等级: &f%axsbattlepass_level%/%axsbattlepass_max_level% &7经验: &f%axsbattlepass_xp%/%axsbattlepass_xp_per_level%

# 显示档位状态
&7战令档位: &f%axsbattlepass_tier% &7高级: %axsbattlepass_premium% &7典藏: %axsbattlepass_deluxe%

# 显示赛季信息
&7当前赛季: &f%axsbattlepass_season_display% &7活跃任务: &f%axsbattlepass_active_tasks%

占位符需要安装 PlaceholderAPI 插件。PAPI 不可用时占位符返回空串,模块仍可正常运行。

UI Packet 触发

BattlePass 通过 ArcartX UI 客户端包与 UI 面板交互。客户端发送 AXS_BATTLEPASS 标识的 Packet,服务端 BattlePassPacketHandler 处理以下 action:

Packet action说明对应 UI
open_main打开主界面AXS:battlepass_main
open_tasks打开任务列表AXS:battlepass_tasks
open_rewards打开奖励列表AXS:battlepass_rewards
open_settlement打开赛季结算界面AXS:battlepass_settlement
claim领取指定等级奖励主界面 / 奖励界面
claim_all一键领取所有可领奖励奖励界面
refresh刷新主界面数据主界面
refresh_tasks刷新任务列表数据任务界面
refresh_rewards刷新奖励列表数据奖励界面
refresh_settlement刷新结算界面数据结算界面

claim Packet 数据格式

["claim", "<等级>", "<action_token>"]

action_token 由服务端在打开 UI 时生成,防止重复领取。领取成功后生成新 token。

claim_all Packet 数据格式

["claim_all", "<action_token>"]

服务端推送

服务端通过 PacketBridgeAPI.sendPacket 向 UI 推送数据:

  • 主界面数据:赛季信息、玩家等级、经验、档位、进度
  • 任务列表数据:每日 / 每周 / 赛季任务实例及进度
  • 奖励列表数据:各等级三档奖励及领取状态
  • 结算界面数据:赛季结算奖励及档位信息

UI 数据推送在打开 UI 后延迟 2 tick 异步执行,确保 UI 已就绪。加载失败时自动重试(最多 3 次,间隔 1 秒)。