- 版权类型
- 原创
- 插件中文名称
- 青栀在线奖励
- 插件英文名称
- QZOnlineReward
- 支持的核心(服务端)
- Spigot
- Paper
- 语言支持
- 中文(简体)
- 前置组件
- 无
- 适配版本(Java)
- 26.x
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
- 1.15
- 1.14
- 1.13
- 1.12
[MD] # QZOnlineRewards 插件使用文档 ## 📖 插件简介 QZOnlineRewards 是一个 Minecraft 在线奖励插件,支持每日在线奖励和累计奖励系统。玩家通过在线时间积累可领取丰厚奖励,同时累计领取次数还可解锁额外的累计奖励。 进群可免费下载哦 **支持版本**: Minecraft 1.12—1.21.11 **开发语言**: Java **依赖**: Spigot API --- ## ✨ 核心功能 ### 1. 每日在线奖励 - 玩家每日在线时间达到指定时长后可领取奖励 - 每日重置时间可自定义配置 - 重置时自动清空所有玩家(包括离线)的今日时间和领取状态 - 累计在线时间永久保存,不会清零 ### 2. 累计奖励系统 - 每领取一次每日奖励,累计次数 +1 - 累计次数达到指定值可领取额外奖励 - 累计奖励独立于每日奖励,每个只能领取一次 ### 3. GUI 界面 - 美观的图形化奖励界面 - 实时显示在线时间和奖励进度 - 支持点击领取奖励 - 黑色边框 + 灰色背景设计 ### 4. 双时间统计 - **今日在线时间**: 每天重置,用于判断每日奖励 - **累计在线时间**: 永久保存,用于统计总在线时长 ### 5. 完整指令系统 - 管理员可设置/增加玩家时间 - 支持分别操作累计时间和今日时间 - 查看统计信息和排行榜 --- ## 🎮 玩家指令 | 指令 | 权限 | 说明 | |------|------|------| | `/or` 或 `/or help` | 无 | 查看帮助信息 | | `/or open` | 无 | 打开在线奖励界面 | | `/or time` | 无 | 查看自己的在线时间 | | `/or time <玩家>` | `qzonlinerewards.admin` | 查看指定玩家在线时间 | --- ## 🔧 管理员指令 ### 时间管理 | 指令 | 权限 | 说明 | |------|------|------| | `/or set <玩家> <分钟>` | `qzonlinerewards.set` | 同时设置累计和今日时间 | | `/or set-total <玩家> <分钟>` | `qzonlinerewards.set` | 仅设置累计在线时间 | | `/or set-today <玩家> <分钟>` | `qzonlinerewards.set` | 仅设置今日在线时间 | | `/or add <玩家> <分钟>` | `qzonlinerewards.set` | 同时增加累计和今日时间 | | `/or add-total <玩家> <分钟>` | `qzonlinerewards.set` | 仅增加累计在线时间 | | `/or add-today <玩家> <分钟>` | `qzonlinerewards.set` | 仅增加今日在线时间 | ### 奖励管理 | 指令 | 权限 | 说明 | |------|------|------| | `/or give <玩家> <奖励ID>` | `qzonlinerewards.give` | 强制发放指定奖励 | | `/or reset <玩家>` | `qzonlinerewards.admin` | 重置玩家所有奖励状态 | | `/or reset <玩家> <奖励ID>` | `qzonlinerewards.admin` | 重置玩家指定奖励 | | `/or reset-time` | `qzonlinerewards.admin` | 手动触发每日重置 | ### 系统管理 | 指令 | 权限 | 说明 | |------|------|------| | `/or reload` | `qzonlinerewards.reload` | 重载插件配置 | | `/or stats` | `qzonlinerewards.admin` | 查看插件统计信息 | --- ## 🎁 奖励系统详解 ### 每日奖励机制 1. **时间积累**: 玩家在线时自动累计今日在线时间 2. **奖励判断**: 当今日时间 ≥ 奖励所需时间时可领取 3. **领取限制**: 每个每日奖励每天只能领取一次 4. **每日重置**: 到达配置的重置时间后,清空所有玩家的今日时间和领取状态 ### 累计奖励机制 1. **次数累加**: 每领取一次任意每日奖励,累计次数 +1 2. **奖励解锁**: 累计次数达到指定值可领取对应累计奖励 3. **永久有效**: 累计次数永不重置,可逐步解锁更高级奖励 4. **一次性领取**: 每个累计奖励只能领取一次 ### 奖励示例 **每日奖励配置示例**: - 30分钟: 100金币 + 苹果 x1 + 经验瓶 x3 - 60分钟: 200金币 + 铁剑 x1 + 面包 x16 - 120分钟: 500金币 + 钻石镐 x1 + 附魔金苹果 x1 - 180分钟: 1000金币 + 钻石套装 + 经验瓶 x16 **累计奖励配置示例**: - 累计5次: 1000金币 + 钻石 x5 - 累计10次: 2000金币 + 附魔钻石剑 x1 - 累计30次: 5000金币 + 下界合金锭 x3 --- ### 物品状态 - **灰色物品**: 未解锁,还需在线时间 - **发光绿色物品**: 可领取,点击领取 - **红色屏障**: 已领取 ### 信息按钮 1. **在线时间统计** (槽位47) - 显示今日在线时间 - 显示累计在线时间 - 显示累计领取次数 - 显示可领取/已领取数量 2. **快速操作** (槽位48) - 常用指令提示 3. **进度总览** (槽位49) - 总完成百分比 - 累计领取次数 - 各奖励档位状态 4. **奖励说明** (槽位50) - 玩法介绍 --- ## ⚙️ 数据存储 ### 存储方式 - **YAML 文件存储** (默认) - 数据文件: `plugins/QZOnlineRewards/playerdata.yml` ### 数据结构 ```yaml players: <玩家UUID>: totalTime: 0 # 累计在线时间(分钟) todayTime: 0 # 今日在线时间(分钟) lastPlayDate: "" # 最后游玩日期 totalClaimCount: 0 # 累计领取次数 claimedRewards: [] # 已领取的奖励ID列表 ``` ### 数据特性 - 自动保存玩家数据 - 支持离线玩家数据管理 - 每日重置时同步更新离线玩家 --- ## 🔄 每日重置机制 ### 重置时间 - 默认: `00:00` (午夜) - 可在配置文件中自定义 ### 重置内容 ✅ **会重置**: - 今日在线时间 → 0 - 每日奖励领取状态 → 清空 ❌ **不会重置**: - 累计在线时间 (永久保存) - 累计领取次数 (永久保存) - 累计奖励领取状态 (永久保存) ### 重置流程 1. 到达配置的重置时间 2. 遍历所有在线玩家,重置今日时间和奖励状态 3. 遍历所有离线玩家数据,重置今日时间和奖励状态 4. 发送全服提示消息 5. 更新最后重置日期标记 ### 注意事项 - 插件重载/重启不会触发错误重置 - 只有到达配置时间且日期变化时才执行重置 - 离线玩家也会在下次加载时获得重置后的数据 --- ## 💡 使用技巧 ### 给新手玩家 1. 使用 `/or open` 打开奖励界面 2. 保持在线积累时间 3. 看到发光物品即可点击领取 4. 每日记得重新领取奖励 ### 给管理员 1. 使用 `/or add-today <玩家> <分钟>` 快速测试奖励 2. 使用 `/or reset-time` 手动触发每日重置进行测试 3. 使用 `/or stats` 查看服务器在线数据统计 4. 定期备份 `playerdata.yml` 文件 ### 调试建议 ```bash # 给自己增加30分钟今日时间 /or add-today 青栀 30 # 查看当前时间状态 /or time 青栀 # 打开界面测试领取 /or open # 手动触发重置测试 /or reset-time ``` --- ## 🔐 权限节点 | 权限节点 | 默认 | 说明 | |---------|------|------| | `qzonlinerewards.use` | OP | 使用基础功能 | | `qzonlinerewards.admin` | OP | 管理员权限 | | `qzonlinerewards.reload` | OP | 重载配置 | | `qzonlinerewards.set` | OP | 设置玩家时间 | | `qzonlinerewards.give` | OP | 发放奖励 | [/MD]