- 版权类型
- 原创
- 插件中文名称
- 在线时长奖励
- 插件英文名称
- TimeRewards
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- PufferFish
- Leaves
- 语言支持
- 多语言
- 适配版本(Java)
- 最新版本
- 26.x
- 1.21
—— 在线时长奖励 · 可配置 GUI · 多周期支持 ——[/align]
| 资源类型 | 原创插件 · 服务端插件 |
| 适配版本 | 1.21.X (Java版) |
| 服务端核心 | Spigot / Paper / Folia |
| 语言支持 | 简体中文 · English (可扩展) |
| 前置插件 | 可选:PlaceholderAPI |
| 价格 | 免费 |
TimeRewards 是一款面向 Minecraft 1.21 服务端的在线时长奖励插件,支持 今日、本周、本月、本年、累计 五种统计周期,提供可配置箱子 GUI、手动/自动领取、YAML/MySQL 存储及 PlaceholderAPI 扩展。
插件设计注重配置自由度与多服数据一致性,让服主可以灵活设计奖励体系,同时避免玩家在多子服环境下重复领取。
- 五种统计周期:今日、本周、本月、本年、历史累计,满足不同活动时长需求
- 奖励类型:支持控制台命令和原版物品,可自由组合
- 独立 GUI 配置:每个周期拥有独立的 GUI 标题、布局、图标、Lore、状态按钮及奖励位置
- 领取模式:玩家可在 GUI 中切换手动领取或自动领取模式
- 自动领取:每分钟检查一次已达到条件的奖励,解放玩家双手
- 双存储支持:YAML 与 MySQL 两种数据存储自由切换
- 数据迁移:支持从已有 YAML 玩家数据迁移到 MySQL
- PAPI 支持:可选接入 PlaceholderAPI,提供各周期在线时长变量
- 热重载:支持热重载,无需因调整奖励内容而重启服务器
- 跨周期处理:已针对跨天、跨周、跨月和跨年时长归档进行处理,周期时区可配置
- 并发安全:奖励领取先原子记录再发放,降低并发或多服环境下重复领取的风险
默认启用 Rewards/day.yml,内含 16 档每日奖励:
代码:
20 / 40 / 60 / 80 / 100 / 120 / 150 / 210 / 270 / 330 / 390 / 450 / 510 / 570 / 630 / 720 分钟
本周、本月、本年和累计奖励配置文件已经提供,但默认关闭,服主可以调整内容后自行启用。
默认每日奖励会执行 money、uemc 和原版 give 命令。请确认服务器存在能够处理 money 与 uemc 的插件,或者在开服前将 Rewards/day.yml 中的命令改成自己服务器实际使用的经济、积分或道具命令。插件发现命令入口不存在时不会消耗该次领取记录。
代码:
plugins/TimeRewards/
├─ config.yml
├─ messages.yml
├─ playerdata.yml
└─ Rewards/
├─ day.yml
├─ week.yml
├─ month.yml
├─ year.yml
└─ total.yml
每个周期的界面和奖励都位于独立文件中。每项奖励可配置:
- 所需在线分钟数
- GUI 图标、数量、名称和 Lore
- 展示用奖励说明
- 控制台命令列表
- 原版物品列表
布局中的奖励可以通过奖励名称、奖励 ID 或展示名称引用,方便服主自由调整位置和内容。
YAML(默认)
使用 playerdata.yml,无需额外数据库。写入时使用临时文件和原子替换,并保留最近一次 playerdata.yml.bak 备份。
MySQL(推荐多服)
在 config.yml 中启用数据库后,可使用 MySQL 保存在线进度、周期标记、领取记录和自动领取偏好。插件内置连接池、连接/查询超时,并可迁移已有 YAML 数据。
同一 MySQL 数据库可供多个服务端共享。领取判定通过数据库事务完成,避免玩家在不同子服同时领取同一周期奖励。
生产多服环境建议保持:
代码:
database:
fallback-to-yaml: false
主命令:/timerewards
别名:/tr、/onlinerewards
| 命令 | 说明 |
| /tr、/tr open | 打开今日奖励 GUI |
| /tr today | 打开今日奖励 GUI |
| /tr week | 打开本周奖励 GUI |
| /tr month | 打开本月奖励 GUI |
| /tr year | 打开本年奖励 GUI |
| /tr total | 打开累计奖励 GUI |
| /tr claim <周期> <奖励ID或序号> | 通过命令领取指定奖励 |
| /tr reload | 热重载配置与存储设置 |
| 权限 | 默认 | 说明 |
| timerewards.use | 所有玩家 | 使用在线奖励主功能 |
| timerewards.reload | OP | 重载插件配置 |
PlaceholderAPI 不是必需前置。安装后,TimeRewards 会自动注册以下变量:
代码:
%timerewards_today_minutes%
%timerewards_week_minutes%
%timerewards_month_minutes%
%timerewards_year_minutes%
%timerewards_total_minutes%
%timerewards_today_formatted%
%timerewards_week_formatted%
%timerewards_month_formatted%
%timerewards_year_formatted%
%timerewards_total_formatted%
插件还内置 %math_最小值-最大值% 随机整数占位符,可用于奖励命令,例如 %math_20-40%。
可选组件:
PlaceholderAPI:在其他插件中读取 TimeRewards 在线时长变量,并解析奖励配置中的外部变量。
- 使用 Java 21 运行 Minecraft 1.21 服务端
- 下载并将 TimeRewards-1.0-SNAPSHOT-all.jar 放入服务端 plugins 目录
- 启动服务器,等待插件生成默认配置
- 按服务器经济体系修改 Rewards/day.yml 中的 money、uemc 等奖励命令
- 如需其他周期奖励,调整对应文件后将其 enabled 改为 true
- 修改完成后执行 /tr reload,并使用普通玩家账号完整测试一次领取流程
本资源为原创插件。若无额外说明,默认不允许转载及整合;如需转载、整合或二次分发,请先联系作者获取授权。
- 持续补充更多可配置周期类型
- 优化树木识别与恢复逻辑
- 根据反馈补充更多语言文本和管理开关
- 扩展更多数据库支持选项
TimeRewards —— 让每一分钟的在线都有回报[/align]