OnlineTime 是一款基于 PlaceholderAPI 扩展开发的 Bukkit 插件,用于记录玩家每日在线时长,并支持自定义格式的在线时间展示。该插件适用于想要统计玩家活跃度、发放在线奖励、或仅用于信息展示的服务器。
- ⏱ 实时记录在线玩家在线时间(精确到秒)
- 🗓 支持每日在线时间独立记录
- 🧩 完美支持 PlaceholderAPI 占位符
- 📅 自动日期判断与刷新机制
- 🔧 支持自定义时间显示格式(如:
HH时mm分、SS秒) - 📌 支持群组服,连接 MYSQL 保持数据同步
- 核心支持:理论上全核心兼容
- 版本兼容:支持从 1.12.2 至 1.21.4 版本
插件注册的占位符标识符为:
%onlineTime_HH时%→ 输出为类似"2时"%onlineTime_SS秒%→ 输出为"994秒"%onlineTime_HH小时%→ 输出为"1小时"
| 字段 | 含义 |
|---|---|
| HH | 总小时数 |
| mm | 总分钟数 |
| SS | 原始秒数 |
⚠ 注意:插件会自动处理负数时间并在前方加上
-号。
- 插件通过
OnlineTimeFun.startTimer()启动定时任务,每 20 Tick(约 1 秒)轮询一次。 - 检查是否为新的一天,若是,则刷新内部日期标记。
- 对所有在线玩家执行:
- 获取当天的在线时长数据
- 为其在线时间增加
1秒 - 将更新后的数据同步至数据库
- 使用缓存提升性能,并确保查询效率。
插件维护了一个名为 onlineTimeBase.onlineTimeCache 的缓存映射:
ConcurrentHashMap<String,OnlineTimeData>