5.8 构建版 3638
本次更新带来了一些改进和错误修复。下一次更新 5.9 将需要 Java 17 或更高版本,因此在此之前发布此版本,以便让无法升级的用户尽可能获得最多的修复。bStats 显示 Java 版本低于 17 的使用率仅为 0.6%(即 5300 人中的 35 人),因此如果您能够升级,请考虑更新您的 Java 版本。
特别感谢 Zoriot 和 Minecraft0122 对本次更新的贡献。
变更日志
数据库
- 可能修复了与 RemoveDuplicateUserInfoTransaction 相关的死锁问题
Web 服务器
- 修复了一个轻微漏洞:路径遍历绕过允许任何人读取系统中包含制表符 \t 或换行符 \n 的 .json 文件。该漏洞影响较小,因为文件系统通常会阻止在文件名中使用这些字符,.json 文件中也不常见此类情况,且攻击者需要知道文件的相对路径才能利用。
扩展
- 扩展元数据现在会被缓存到内存中,以避免冗余的数据库更新。感谢 Minecraft0122 在此方面的工作。
- 修复了 Plan 重新加载后出现的 LuckPerms 相关异常
其他
- Zoriot 将 fabric-permissions-api 添加为 Fabric 发布的可选依赖项
5.8 构建版 3605
特别感谢 Zoriot、Minecraft0122 和 OutHimic 对本次更新的贡献
变更日志
错误修复
- 修复了在多跳反向代理中 X-Forwarded-For 头读取错误的问题
- 修复了与数据库清理任务清理插件数据相关的 SQL 语法错误
- 修复了服务器性能图中未显示 Ping 图表的问题
- 可能修复了前端中“今天”和“昨天”显示错误的问题
本地化
- OutHimic 和 Minecraft0122 更新了 CN 和 ZH_TW 语言包
其他
- Zoriot 修复了 CurseForge 发布流程
5.8 构建版 3579
这是针对数据库清理任务错误的紧急修复。
之前的变更日志 https://github.com/plan-player-analytics/Plan/releases/tag/5.8.3577
从 5.7 迁移到 5.8 的指南 https://github.com/plan-player-analytics/Plan/wiki/Migration-guide-from-Version-5.7-to-5.8
变更日志
错误修复
- 修复了当没有插件可清理时出现的数据库清理任务错误
5.8 build 3577
本次更新带来了新功能、旧功能的刷新,以及大量的错误修复和改进。
新重大功能的快速概述包括 MSPT 抖动(Jitter)、经过彻底改造的服务器性能标签页(含新性能指标)、经过彻底改造的会话标签页、日期选择器以及通过数据点端点实现的部分数据加载。
Fabric 也已更新以支持 Minecraft 26.2 及以上版本。
特别感谢 AnttiMK & Minecraft0122 对本次更新的贡献。
从 5.7 迁移
无需手动步骤。 旧版本可能会因 plan_settings 表被移除而导致计划任务失败,但该错误可以安全忽略。5.8 迁移指南
变更日志
数据收集
MSPT 抖动(新指标)
MSPT 抖动(平均值、最大值)是新收集的性能指标。- 抖动是根据连续刻速度(每刻毫秒数)之间的差异计算得出的。示例:MSPT 为 35, 36, 34, 80, 37 -> 抖动 = 1, 2, 46, 43 -> 平均值=23,最大值=46。记录每分钟的平均值和最大值。
高抖动表明刻速度在刻与刻之间变化很大,可结合现有的 MSPT 指标进一步评估高负载对游戏玩法的影响。
数据库(破坏性变更)
- 移除了 plan_settings 表(破坏性变更)- 该表用于支持网络环境下的 serverConfiguration 文件夹,现已被移除。- 旧版本在尝试存储设置时会报错。如果您需要使用旧版本,这些错误可以安全忽略。
- 添加了 plan_incomplete_registration 表 - 该表现在允许 /plan register 的最后一步在任何服务器上运行,而此前它仅在运行 Plan Web 服务器的服务器上有效。
网站
新性能指标
性能标签页已重写,以包含更多有趣的指标,反映玩家和区块如何影响服务器负载。还考虑了玩家对实体和区块的影响,因为某些服务器会在没有玩家时卸载所有区块。
现在“数字形式性能”卡片上提供了一个帮助按钮,用于解释每个指标。
更新的服务器性能图表
服务器性能图表现在更加平稳,您可以使用左侧的预设或底部的标签来选择想要查看的任何数据,而不仅仅是部分数据。
新会话标签页
所有页面(网络、服务器、玩家)上的会话标签页均已重写,现在最多可显示 10,000 个会话,可进一步搜索并导出为 CSV。您可以使用会话日历或新的日期选择器组件选择日期范围。
会话页面上的所有数据都将反映所选日期。即使会话在所选日期范围之前开始但未在该范围内结束,只要它们在所选日期范围内正在进行,也会显示出来。
在 Export 网站上此功能不可用,默认显示最新数据(与以前类似)。
其他
- 新的日期选择器组件已应用于任何可以向文本字段输入日期的地方(查询页面)。
- 服务器概览(网络)现在加载速度快得多(它仅获取您正在查看的服务器的数据)。
- 服务器概览、网络概览、在线活动概览、会话和性能标签页的数字表格均已更改,以独立获取各个数值。
错误修复
- 修复了某些 IPv6 设置无法登录的问题。
- 修复了当 MSPT 低于 1ms 时平均 MSPT 不显示的问题。
- 修复了“每小时”图表显示每日新玩家而非每小时新玩家的问题。
- 修复了日期在未来时显示为“今天”的问题。
- 修复了由于缓存策略导致 Alternative_IP.Address 更改未在 Javascript 中反映的问题。
- 修复了布尔型扩展值导致"variable t not found"错误的问题。
- 修复了组件扩展值报错的问题。
- 修复了带有子目录地址的反向代理设置中的重定向问题。
- 修复了在玩家表格中显示插件数据的时间或日期时 Playerstable 出现"value not defined"错误的问题。
- 修复了堆叠在线玩家图表未正确堆叠的问题。
- 修复了在线玩家工具提示被表格标题遮挡的问题。
Fabric 26.2
- 更新至 Fabric 26.2,无需 API 变更。
- AnttiMK 实现了 Fabric 26.1 支持。此版本不再支持 1.21.9-1.21.11。
设置
- 在网络环境中移除了 serverConfiguration 文件夹及相关配置同步功能。
- 移除了 Display_options.Sessions.Show_on_page 设置。
- 将 Bungee/Velocity 上
Time.Thresholds.Remove_time_series_after的默认值更改为 3650(默认值不会自动替换)。
语言区域
- CN 语言区域由 Minecraft0122 更新。
扩展
- 修复了与 Folia 和 CMI 扩展相关的错误。
- 修复了与删除已禁用扩展数据相关的错误。
占位符
- 修复了游玩时间或击杀数的排行榜占位符错误。
其他
- 在 /plan info 命令中添加了数据库事务队列信息。
- 修复了与封禁状态更新任务相关的死锁问题。
- 修复了 /plan db uninstalled 在正确完成前就打印"success"的问题。
- AnttiMK 更新了 Java 编译选项,使测试代码可以使用新版 JDK 的功能。
- 优化了玩家库开发图表生成查询。
- 优化了在线玩家峰值查询。
- 可能修复了 TPSTableIdPatch 在 SQLite 上因表锁定而失败的问题。
Web 服务器:/v1/datapoint
为了实现基于日期的动态过滤,实施了新的端点 /v1/datapoint。这使得实现新的单值指标变得更加容易,因为只需定义"time slot"列并将每一行作为一个指标即可生成指标表——您已经从新添加的指标中看到了效果。此端点将在未来进一步扩展。
该端点接受 after/afterMillisAgo、before/beforeMillisAgo 以及 server 或 player 参数。server 参数可以接受多个以逗号分隔的服务器 UUID。该端点返回 200、302(由浏览器缓存)或 400(类型无效)。如果从程序代码调用此端点,请使用 ETag 进行缓存。
示例 /v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid 将获取某服务器过去 24 小时的游玩时间。
已弃用的端点
以下端点已弃用,推荐使用新的 /v1/datapoint 端点:
- /v1/serverOverview
- /v1/network/overview
- /v1/network/servers
- /v1/onlineOverview
- /v1/sessionOverview
- /v1/performanceOverview
- /v1/network/performanceOverview
访问已弃用的端点将在控制台打印警告(由于性能影响)。
新 Web 权限
/v1/datapoint 使用新的 Web 权限 data.player、data.server、data.network(及进一步的细分)来控制可见性。这些权限会根据现有权限自动授予:
- access.network -> 组被授予 data.network
- access.server -> 组被授予 data.server
- access.player -> 组被授予 data.player
如果查找特定玩家的数据,/v1/datapoint 还将检查 access.player 和 access.player.self。
5.7 开发版构建 3558
此开发版本引入了 MSPT 抖动、性能图表重写、Fabric 上的 MC 版本 26.2、错误修复和改进。
特别感谢 AnttiMK & Minecraft0122 对此更新的贡献
变更日志
网站
MSPT 抖动
新增了一项名为"MSPT 抖动”的指标,用于显示连续刻速度(每刻毫秒数)之间的平均差值和最大差值。示例:MSPT 为 35、36、34、80、37 -> 抖动 = 1、2、46、43 -> 平均值=23,最大值=46。
新的性能指标
“性能”选项卡已重写,包含了更多有趣的指标,以反映玩家和区块如何影响服务器负载。此外,还考虑了玩家对实体和区块的影响,因为某些服务器会在没有玩家存在时卸载所有区块。
现在,“数字形式性能”卡片上提供了一个帮助按钮,用于解释每个指标。
更新的服务器性能图表
服务器性能图表现在更加平稳,您可以使用左侧的预设或底部的标签选择想要查看的任何数据。
在底层,该图表不再渲染 6 个不同的高图表(HighCharts)实例,而是在您选择数据时更改单个实例。这也意味着当您切换查看内容时,图表的日期范围不再以令人讨厌的方式跳动。
新的会话选项卡
所有页面(网络、服务器、玩家)上的“会话”选项卡均已重写,现在最多可获取 10,000 个会话,这些会话可以进一步搜索并导出为 CSV 文件。您可以使用会话日历或新的日期选择器组件来选择日期范围。
会话页面上的所有数据都将反映所选日期。即使某些正在进行的会话不是在所选日期范围内开始的(而是在此之前开始的),只要它们在该日期范围内处于进行状态,也会显示出来。
在导出网站上,此功能不可用,默认显示最新数据(与以前类似)。
其他
新的日期选择器组件已应用于任何可以向文本字段输入日期的地方。
此外:
- 服务器概览(网络)现在加载速度快得多(它仅获取您正在查看的服务器的数据)。
- 服务器概览、网络概览、在线活动概览、会话和性能选项卡中的所有数字表格都已更改,以独立获取各个数值。这加快了数据加载速度,因为您不再需要等待最慢的查询来查看所有数据。
错误修复
- 修复了某些 IPv6 设置无法登录的问题。
- 修复了当 MSPT 低于 1ms 时平均 MSPT 不显示的问题。
- 修复了“按小时统计”显示每日新玩家而非每小时新玩家的问题。
- 修复了日期在未来时仍显示为“今天”的问题。
- 修复了由于缓存策略导致 Alternative_IP.Address 更改未在 Javascript 中反映的问题。
- 修复了布尔型扩展值导致“未找到变量 t"错误的问题。
- 修复了组件扩展值报错的问题。
- 修复了带有子目录地址的反向代理设置中的重定向问题。
- 修复了在玩家表格中显示插件数据的时间或日期时,PlayersTable 出现“值未定义”错误的问题。
- 修复了在线玩家堆叠图表未正确堆叠的问题。
- 修复了在线玩家工具提示被表格标题遮挡的问题。
/v1/datapoint
为了实现上述基于动态日期的过滤功能,实施了新的端点 /v1/datapoint。这使得实施新的单值指标变得更加容易,因为只需定义一个“时间槽”列并将每一行作为一个指标,即可生成指标表格——您已经从新添加的指标中看到了其影响。此端点将在未来进一步扩展。
此端点接受 after/afterMillisAgo、before/beforeMillisAgo 以及服务器或玩家参数。server 参数可以接受多个以逗号分隔的服务器 UUID。该端点返回 200、302(由浏览器缓存)或 400(无效类型)。如果从程序代码调用此端点,请使用 ETag 进行缓存。
示例:/v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid 将获取服务器上过去 24 小时的游戏时间。
所有支持的数据点类型可在以下位置找到:https://github.com/plan-player-analytics/Plan/blob/master/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/datapoint/DatapointType.java
已弃用的端点
以下端点已弃用,推荐使用新的 /v1/datapoint 端点:
/v1/serverOverview/v1/network/overview/v1/network/servers/v1/onlineOverview/v1/sessionOverview/v1/performanceOverview/v1/network/performanceOverview
访问已弃用的端点将在控制台打印警告(由于性能影响)。
新的 Web 权限
此功能将在未来进一步扩展。此端点使用 data.player、data.server、data.network(以及进一步的细分)来控制可见性。这些权限会根据现有权限自动授予:
access.network-> 组被授予data.networkaccess.server-> 组被授予data.serveraccess.player-> 组被授予data.player
如果查找特定玩家的数据,/v1/datapoint 还将检查 access.player 和 access.player.self。
Fabric 26.2
- 更新至 Fabric 26.2,无需进行 API 更改。
- AnttiMK 实现了 Fabric 26.1 的支持。此版本不再支持 1.21.9-1.21.11。
配置
- 移除了
Display_options.Sessions.Show_on_page设置。 - 将
Time.Thresholds.Remove_time_series_after的默认值在 Bungee/Velocity 上更改为 3650(默认值不会自动替换)。
本地化
- CN 本地化由 Minecraft0122 更新。
扩展
- 修复了与 Folia 和 CMI 扩展相关的错误。
其他
- 在
/plan info命令中添加了数据库事务队列信息。 - 修复了与封禁状态更新任务相关的死锁问题。
- 修复了
/plan db uninstalled在完成前就打印“成功”的问题。 - AnttiMK 更新了 Java 编译选项,使测试代码可以使用较新 JDK 的功能。
- 优化了玩家库开发图表生成查询。
- 优化了在线玩家峰值查询。
- 可能修复了 TPSTableIdPatch 由于表锁定而在 SQLite 上失败的问题。
5.7 开发版构建 3506
此开发版本引入了新的性能指标、全新的会话标签页、Fabric 端的 MC 版本 26.1 支持,以及大量的错误修复和改进。
特别感谢 AnttiMK & Minecraft0122 对本次更新的贡献
变更日志
网站
新的性能指标
性能标签页已重写,包含了更多有趣的指标,以反映玩家和区块如何影响服务器负载。同时也考虑了玩家对实体(Entities)和区块(Chunks)的影响,因为某些服务器在没有玩家时会卸载所有区块。
新的会话标签页
所有页面(网络、服务器、玩家)上的会话标签页均已重写,现在最多可获取 10,000 条会话记录,支持进一步搜索并导出为 CSV 格式。您可以使用会话日历或新的日期选择器组件来选择日期范围。
会话页面上的所有数据都将反映所选的日期。即使某些正在进行的会话不是在所选日期范围内开始的(而是在此之前开始),只要它们在该日期范围内处于进行状态,都会显示出来。
在 Export 网站上此功能不可用,默认显示最新数据(与以前类似)。
其他
新的日期选择器组件已应用于任何可以向文本字段输入日期的地方。
此外:
- 服务器概览(网络)现在加载速度快得多(它仅获取您正在查看的服务器的数据)
- 服务器概览、网络概览、在线活动概览、会话和性能标签页中的所有数字表格都已更改,以便独立获取各个数值。这加快了数据加载速度,因为您不再需要等待最慢的查询即可看到所有数据。
错误修复
- 修复了某些 IPv6 设置无法登录的问题
- 修复了当 MSPT 低于 1ms 时平均 MSPT 不显示的问题
- 修复了“每小时”图表显示的是每日新玩家而非每小时新玩家的问题
- 修复了日期在未来时显示为“今天”的问题
- 修复了由于缓存策略导致 Alternative_IP.Address 更改未在 Javascript 中反映的问题
- 修复了布尔型扩展值导致“变量 t 未找到”错误的问题
- 修复了组件扩展值报错的问题
- 修复了带有子目录地址的反向代理设置中的重定向问题
- 修复了在玩家表格中显示插件数据的时间或日期时,PlayersTable 出现“值未定义”错误的问题
/v1/datapoint
为了实现上述基于动态日期的过滤功能,实施了新的端点 /v1/datapoint。这使得实现新的单值指标变得更加容易,因为只需定义一个“时间槽”列并将每一行作为一个指标,即可生成指标表格——您已经从新增的指标中看到了其效果。此端点将在未来进一步扩展。
该端点接受 after/afterMillisAgo、before/beforeMillisAgo 以及 server 或 player 参数。server 参数可以接受多个以逗号分隔的服务器 UUID。该端点返回 200、302(由浏览器缓存)或 400(无效类型)。如果从程序代码调用此端点,请使用 ETag 进行缓存。
示例:/v1/datapoint?type=PLAYTIME&afterMillisAgo=86400000&server=uuid 将获取某服务器过去 24 小时的游戏时长。
已弃用的端点
以下端点已弃用,推荐使用新的 /v1/datapoint 端点:
- /v1/serverOverview
- /v1/network/overview
- /v1/network/servers
- /v1/onlineOverview
- /v1/sessionOverview
- /v1/performanceOverview
- /v1/network/performanceOverview
访问这些已弃用的端点将在控制台打印警告(由于性能影响)。
新的 Web 权限
此项将在未来进一步扩展。此端点使用 data.player、data.server、data.network(及其进一步的细分)来控制可见性。这些权限会根据现有权限自动授予:
- access.network -> 组被授予 data.network
- access.server -> 组被授予 data.server
- access.player -> 组被授予 data.player
/v1/datapoint 在查找特定玩家数据时,还会检查 access.player 和 access.player.self 权限。
Fabric 26.1
AnttiMK 实现了 Fabric 26.1 的支持。此版本不再支持 1.21.9-1.21.11。
配置
- 移除了 Display_options.Sessions.Show_on_page 设置
- 将
Time.Thresholds.Remove_time_series_after的默认值在 Bungee/Velocity 上更改为 3650(默认值不会自动替换)
本地化
- CN 语言包由 Minecraft0122 更新
扩展
- 修复了与 Folia 和 CMI 扩展相关的错误
其他
- 在 /plan info 命令中添加了数据库事务队列信息
- 修复了与封禁状态更新任务相关的死锁问题
- 修复了 /plan db uninstalled 在完成前就打印"success"的问题
- AnttiMK 更新了 Java 编译选项,使测试代码可以使用新版 JDK 的功能
- 优化了 Playerbase 开发图表生成的查询
- 优化了在线玩家峰值查询
5.7 DEV 构建版 3341
此开发版本包含了对 Fabric 上 Minecraft 26.1 版本的支持、新的会话标签页以及错误修复。
特别感谢 AnttiMK & Minecraft0122 对本次更新的贡献
变更日志
网站
新的会话标签页
所有页面(网络、服务器、玩家)上的会话标签页均已重写,现在最多可显示 10,000 条会话记录,支持进一步搜索并导出为 CSV 格式。您可以使用会话日历或新的日期选择器组件来选择日期范围。
会话页面上的所有数据都将反映所选的日期范围。即使某些正在进行的会话不是在所选日期范围内开始的(而是在此之前开始),只要它们在该日期范围内处于进行状态,都会显示出来。
在 Export 网站上,此功能不可用,默认显示最新数据(与以前类似)。
新的 Web 权限
为了实现上述基于动态日期的过滤功能,已实施新的端点 /v1/datapoint。未来将对此进行扩展。该端点使用 data.player、data.server、data.network(及其进一步的细分)来控制可见性。这些权限将根据现有权限自动授予:
- access.network -> 组被授予 data.network
- access.server -> 组被授予 data.server
- access.player -> 组被授予 data.player
/v1/datapoint 在查找特定玩家数据时,还会检查 access.player 和 access.player.self。
其他
新的日期选择器组件已应用于任何可以向文本字段输入日期的地方。
错误修复
- 修复了当 MSPT 低于 1ms 时平均 MSPT 不显示的问题
- 修复了日期在未来时显示为“今天”的问题
- 修复了由于缓存策略导致 Alternative_IP.Address 更改未在 Javascript 中反映的问题
- 修复了布尔型 Extension 值导致"variable t not found"错误的问题
Fabric 26.1
AnttiMK 实现了 Fabric 26.1 的支持。此版本不再支持 1.21.9-1.21.11。
配置
- 移除了 Display_options.Sessions.Show_on_page 设置
- 将 Bungee/Velocity 上
Time.Thresholds.Remove_time_series_after的默认值更改为 3650(默认值不会自动替换)
语言区域
- 由 Minecraft0122 更新了 CN 语言区域
5.7 构建版 3288
此版本包含针对构建版 3265 的错误修复以及一个新主题。
特别感谢 Kopo、Leolebleis 和 Guinness_Akihiko 对本次更新的贡献
变更日志
网站
- 改进了拥有超过 7 个世界的服务器上“世界饼图”的可读性
- 改进了拥有超过 7 个服务器的网络中“服务器饼图”的可读性
- 将性能图表加载移至 Web Worker(浏览器中的异步线程)——这应能略微提升渲染时间
- 修复了使用 HTTPS 时“加入地址组”会重置的问题
- 修复了几处趋势未正确显示的情况
- 修复了在具有多个代理服务器的网络上查看网络页面时出现的"showPlayersOnline is not defined"错误
- 修复了在夜间模式下使用主题编辑器时,更改历史记录浮动在保存按钮上方的 bug
- 修复了由于浏览器匹配中的“最佳匹配”导致 CUSTOM 区域设置默认采用中文区域设置(用于时间/日期/国家本地化)的问题
- 修复了 Swagger 文档不显示的问题
- 修复了服务器概览中“新玩家留存率”标签的问题
- 修复了区域设置键中的拼写错误
- 修复了低 TPS 洞察显示实体而非 CPU 的问题
- Leolebleis 修复了反向代理 https 地址未被识别为正确地址的问题
Fabric
Kopo 更新了 Fabric 以使用 Mojang 映射(已在 1.12.9-1.12.11 版本中测试)
主题
添加了基于 https://github.com/altercation/solarized 的 solarized 主题
配置
- 可能修复了一个竞态条件,该条件会导致服务器身份重置,从而在数据库修补期间关闭服务器时创建重复的服务器
- 修复了尾随注释删除部分配置设置值的问题
- 修复了某些配置更改每次都会被应用的问题
区域设置
- Guinness_Akihiko 更新了 KO 区域设置
其他
- 构建现在需要 JDK 25 以切换到 Mojang 映射。

Bukkit
BungeeCord
Folia
Paper
Spigot
Velocity
Waterfall