TimePlayed - 在线时长记录
深入记录玩家在线时长。
Bukkit / Spigot
作者 TheRealDan
支持版本 1.16 - 1.16
服务器使用量
未统计
服务玩家数
未统计
下载量
4,155
插件详细介绍
TimePlayed 用于记录玩家在服务器中的在线频率与游玩时长,帮助你更准确地了解玩家和管理团队的活跃情况,并持续保存他们的游玩时间数据。
插件说明
- TimePlayed 会统计玩家在服务器上的游玩时间。
- 你可以用它查看:
- 在线玩家的游玩时长
- 指定玩家(包括离线玩家)的详细游玩记录
- 所有被记录过的玩家数据
- 最活跃玩家的数据
命令功能
`/TimePlayed Online`
- 打开一个 UI,显示所有在线玩家的游玩时间信息。
`/TimePlayed [Player]`
- 可用于在线玩家和离线玩家。
- 会显示该玩家更详细的游玩时间信息。
详情界面结构
/TimePlayed [Player]会打开该玩家的总览界面。- 界面中会为该玩家有记录的每一年显示一个对应的头像条目。
- 选择某一年后,会打开该年份的菜单,并显示该年中每个月的条目列表。
- 再选择某个月后,会打开该月份的菜单,并显示该月中每天的条目列表。
`/TimePlayed All`
- 打开一个 UI,显示自 TimePlayed 安装以来记录到的所有玩家的游玩时间统计。
`/TimePlayed Active`
- 打开一个 UI,显示最活跃玩家的游玩时间统计。
- “最活跃”由
config.yml中的两个配置值决定: Timeframe:只统计最近一段时间内游玩过的玩家Minimum_Time:只统计游玩时长达到最小值的玩家- 默认设置为:
- 7 天
- 1 小时
- 也就是说,默认情况下该界面会显示在最近 7 天内至少游玩了 1 小时的玩家。
配置说明
- TimePlayed 下载后即可直接运行。
- 不过你也可以在
config.yml中调整一些选项。
`config.yml`
Colors:
Primary: "&6"
Secondary: "&f"
Permissions:
Required_For_Command:
Timeplayed_Online: false
Timeplayed_Self: false
Timeplayed_Other: true
Timeplayed_Active: true
Timeplayed_All: true
Active:
Timeframe: 604800000 // milliseconds (7 days)
Minimum_Time: 3600000 // milliseconds (1 hour)配置项说明
ColorsPrimary:主颜色Secondary:次颜色Permissions.Required_For_Command- 控制对应命令是否需要权限
ActiveTimeframe:活跃玩家统计时间范围,单位为毫秒Minimum_Time:活跃玩家最少游玩时长,单位为毫秒
API
- TimePlayed 提供了较为完善的 API,可用于接入并调用一些实用方法。
获取 API 实例
TimePlayedAPI timePlayedAPI = TimePlayed.getAPI();`TimePlayedAPI` 接口
interface TimePlayedAPI {
ITimeData getTimeData(UUID uuid);
List<ITimeData> getActive();
List<ITimeData> getActive(boolean orderByPlaytime);
List<ITimeData> getAll();
boolean isAFK(OfflinePlayer player);
}getTimeData(UUID uuid)- 获取指定玩家的游玩时间数据
getActive()- 获取活跃玩家列表
getActive(boolean orderByPlaytime)- 获取活跃玩家列表,并可指定是否按游玩时长排序
getAll()- 获取所有玩家的游玩时间数据
isAFK(OfflinePlayer player)- 判断玩家是否处于 AFK 状态
`ITimeData` 接口
ITimeData表示单个玩家存储的游玩时间数据。
interface ITimeData {
UUID getOwner();
long getTimePlayedWithin(long start, long end);
int totalSessions();
List<ISession> getSessions();
long getTotalPlaytime();
String getFriendlyTotalPlaytime();
long getAveragePlaytime();
String getFriendlyAveragePlaytime();
long getFirstLogin();
String getFriendlyFirstLogin();
long getLastLogin();
String getFriendlyLastLogin();
}getOwner()- 获取该数据所属玩家的
UUID getTimePlayedWithin(long start, long end)- 获取指定时间范围内的游玩时长
totalSessions()- 获取总会话数
getSessions()- 获取所有游玩会话
getTotalPlaytime()- 获取总游玩时长
getFriendlyTotalPlaytime()- 获取格式化后的总游玩时长
getAveragePlaytime()- 获取平均游玩时长
getFriendlyAveragePlaytime()- 获取格式化后的平均游玩时长
getFirstLogin()- 获取首次登录时间
getFriendlyFirstLogin()- 获取格式化后的首次登录时间
getLastLogin()- 获取最近一次登录时间
getFriendlyLastLogin()- 获取格式化后的最近一次登录时间
`ISession` 接口
ISession表示单次游玩会话。
interface ISession {
boolean contains(long timestamp);
long getStart();
long getEnd();
boolean hasEnd();
long getLength();
String getFriendlyLength();
}contains(long timestamp)- 判断该时间戳是否处于本次会话内
getStart()- 获取会话开始时间
getEnd()- 获取会话结束时间
hasEnd()- 判断会话是否已结束
getLength()- 获取会话时长
getFriendlyLength()- 获取格式化后的会话时长
权限节点
timeplayed.command.timeplayed.*- 访问所有 TimePlayed 命令
timeplayed.command.timeplayed.online- 访问
/TimePlayed Online timeplayed.command.timeplayed.self- 访问对自己使用的
/TimePlayed [Player] timeplayed.command.timeplayed.other- 访问查看其他玩家的
/TimePlayed [Player] timeplayed.command.timeplayed.active- 访问
/TimePlayed Active timeplayed.command.timeplayed.all- 访问
/TimePlayed All
说明
- 插件在下载后即可正常运行。
- 如果需要限制命令访问,可在
config.yml中启用对应权限要求。 /TimePlayed [Player]同时支持在线玩家与离线玩家。
测试支持版本
版本分布
基本信息
插件名称
TimePlayed
作者
TheRealDan
平台
Bukkit / Spigot
支持版本
1.16 - 1.16
点赞数
1
Modrinth 下载
498
最近版本
暂无数据
-