⏱️ AdventureOnline

AdventureOnline 记录玩家今日与累计在线时长,并通过可配置 GUI 发放阶段宝箱、经验点和控制台命令奖励。

⏱️

准确计时

按固定周期累计在线秒数,支持每日重置和自动保存。

🎁

多档奖励

默认 30 分钟、1/3/6/8 小时五个里程碑。

🧰

可视化领取

GUI 显示锁定、可领取、已领取和即时反馈状态。

📊

排行与变量

经验排行榜以及在线、奖励、下一档奖励 PAPI 变量。

版本1.0.0
服务端Spigot / Paper 1.21.4,Java 21
可选依赖PlaceholderAPI
权限adventureonline.open.premium.admin

📥 安装与数据

  1. 使用 Java 21,将插件放入服务端 plugins/
  2. 启动生成 config/settings.ymlrewards.ymlgui.ymlmessages.yml
  3. 按需编辑奖励命令和 GUI 槽位。
  4. 执行 /aonline reload 或重启。

数据内容

每位玩家保存今日在线秒数、累计在线秒数、在线经验、已领取奖励集合,以及最近一次领取的 ID、名称、经验和时间。

⚠️ 修改奖励 ID

领取记录按奖励 ID 保存;上线后重命名 ID 会被视为新的可领取奖励。

⏱️ 在线统计

settings:
  tick-seconds: 60
  daily-reset: true
  auto-save-seconds: 300
  top-size: 10
  • 默认每 60 秒为在线玩家增加时长。
  • 今日数据在跨日后重置;累计在线数据保留。
  • 每 300 秒自动保存,玩家退出时也应落盘。
  • GUI 与 PAPI 使用同一份内存数据。

🎁 奖励配置

ID要求默认经验点
reward_30m1,800 秒30
reward_1h3,600 秒60
reward_3h10,800 秒120
reward_6h21,600 秒200
reward_8h28,800 秒300

自定义奖励

rewards:
  reward_1h:
    display-name: "&a1小时宝箱"
    required-seconds: 3600
    rewards:
      exp: 60
      commands:
        - executor: "console"
          command: "experience add %player% 60 points"

奖励命令支持玩家占位符;控制台执行适合接入经济、物品、通行证或邮件系统。

🧰 GUI 配置

默认 GUI 为 27 格,奖励位于 10、11、13、15、16 槽;信息按钮在 4,关闭按钮在 22。

状态默认材质
可领取CHEST
已领取ENDER_CHEST
未解锁MINECART
领取成功反馈LIME_STAINED_GLASS_PANE
领取失败反馈RED_STAINED_GLASS_PANE

奖励 lore 支持 %status%%remaining%;信息按钮支持 %online_time%%exp%

特权加成

settings:
  premium-permission: "adventureonline.premium"
  premium-extra-exp: 100

拥有特权权限的玩家在领取时额外获得在线经验点。该加成影响插件的经验统计与排行榜,但不会自动追加到每条控制台奖励命令。

💡 权限来源

可由 LuckPerms 权限组、月卡、通行证或充值系统授予 adventureonline.premium

🏆 排行榜

/aonline top 显示在线经验前十名,数量由 top-size 控制。PAPI 也提供名次变量:

变量格式说明
%aonline_top_1_name%第 1 名玩家
%aonline_top_1_exp%第 1 名经验

AdventureTops 另可从 AdventureOnline 接入 online_seconds 指标,建立日、周、月和总在线时长榜。

⚙️ 设置与反馈

feedback:
  actionbar-cooldown-millis: 3000
  feedback-countdown-seconds: 3
  sounds:
    click: UI_BUTTON_CLICK
    success: ENTITY_PLAYER_LEVELUP
    error: BLOCK_NOTE_BLOCK_BASS
    open: BLOCK_CHEST_OPEN
    close: BLOCK_CHEST_CLOSE

领取后 GUI 会短暂显示成功或错误材质,防止玩家重复点击;声音和提示文本分别由 settings 与 messages 配置。

⌨️ 命令与权限

根命令 /aonline,别名 /online/onlinereward

命令权限说明
/aonline openadventureonline.open打开奖励 GUI
/aonline top开放经验排行榜
/aonline version开放版本信息
/aonline reloadadventureonline.admin重载配置

adventureonline.premium 默认不授予,用于领取额外经验;管理员权限默认 OP。

📊 PAPI 变量

变量前缀为 aonline

变量结果
%aonline_today_seconds%今日在线秒数
%aonline_today_formatted%格式化今日在线
%aonline_total_seconds%累计在线秒数
%aonline_total_formatted%格式化累计在线
%aonline_exp%在线经验
%aonline_claimed_count%已领取数量
%aonline_last_reward_name%最近奖励名称
%aonline_next_name%下一档奖励
%aonline_next_remaining%距离下一档时间
%aonline_reward_reward_1h_ready%指定奖励是否可领取

🧰 故障排查

时间不增加

  • 确认玩家处于在线状态且计时任务未报错。
  • 检查 tick-seconds 是否为正数。
  • 核对服务器时间和每日重置边界。

奖励无法领取

  • 确认 required-seconds 未写错。
  • 检查奖励 ID 与 GUI 槽位一致。
  • 查看控制台奖励命令是否存在、占位符是否正确。

PAPI 为空

确认 PlaceholderAPI 已安装,插件重载后扩展 identifier 为 aonline