- ◆ 支持核心
- CatServer,Spigot,PaperSpigot,Magma
▓ 介绍 |
这个插件可以统计你的服务器在线人数、玩家分布和在线人数历史等各种数据,然后生成一个实时更新的数字大屏。
大屏包含:
- 当前在线玩家数
- 今日新玩家数(从插件安装起开始计算)
- 玩家转化率(最后一次进服务器日期距首次进服日期超过一天时记为转化玩家)
- 平均在线率(今日每小时在线人数 / 采集小时数)
- 在线玩家地理位置分布图
- 在线玩家子服分布图
- 历史在线统计图
- 其他自定义数据源……
▓ 安装 |
1. 本插件依赖 MySQL 数据库。在使用前,你需要先创建一个数据库。
如果你的玩家有中文游戏名,推荐将字符集设置成 utf8mb4。
2. 将插件放入 BungeeCord 的 plugins 文件夹,并启动一次 BungeeCord,
即可在 plugins 文件夹下生成插件配置文件 BungeeCord。
3. 修改配置文件,修改完毕之后在 BungeeCord 端执行命令 bungeecollector reload
即可重新载入配置文件。
▓ 基本配置 |
本插件分为插件收集端和网页展示端两个部分。
插件收集端配置如下:
YAML:
# 数据库设置
db:
driver: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名?useSSL=false
username: 用户名
password: 密码
# Web 服务器设置 (浏览器访问)
web:
# 监听地址, 0.0.0.0 代表所有地址
host: "0.0.0.0"
# 端口号
port: 8801
# WebSocket 服务器设置(网页连接)
websocket:
host: "0.0.0.0"
port: 8800
# 证书路径,不填则表示不使用
certPath: ""
# 证书密钥路径,不填则表示不使用
keyPath: ""
# 证书密码,不填则表示不使用
certPassword: ""
# 自定义数据收集器
custom-collector:
# 实时收集
realtime:
# 名称,需与 settings.json 同步
todayIncome:
# 目前仅支持 JSON
type: json
# JSON 路径
path: "data.todayIncome"
# 请求地址
url: "http://127.0.0.1/api/getIncome"
插件正常启动后,你可以在浏览器通过 "http://<你的服务器IP>:8801" 打开大屏,按F11全屏(端口号为插件 web 中的 port)。
但此时大屏还无法连接上插件的数据回传部分。
你还需要编辑网页展示端的配置文件,
网页展示端配置文件位于插件文件夹的 web/settings.json 中,
配置内容如下:
JSON:
{
"appName": "xxx服务器玩家概览",
"wsUrl": "ws://127.0.0.1:8710",
"serverRemap": {
"dating": "大厅",
"zhucheng": "主城",
"kongdao": "空岛",
"jingling": "精灵",
"shengcun": "生存"
},
"custom-collector": {
"realtime": {
"todayIncome": {
"type": "rollNumber",
"bind": "todayIncome"
}
}
}
}
端口号必须与插件 websocket 的 port 相同。
提示:如果你不希望这些数据被其他人看见,你可以把监听地址设置为 127.0.0.1
即只允许本机访问。或者使用搭建 NGINX 反代等方案保护你的数据。
▓ 自定义数据源 |
目前有两种方法提供自定义数据源。
方法一:使用插件自带的 custom-collector 采集数据。
首先,在 config.yml 的 custom-collector.realtime 中加入以下内容:
然后,在插件的 web/settings.json 中将数据与网页进行绑定。
type 中的 rollNumber 表示数据类型为滚动数字
bind 中的值为数据将要渲染的 HTML 标签位置。
最后,你需要编辑 index.html, 将数据显示出来。
方法二:通过依赖插件提供数据
本方法需要一定的编程基础。
你只需要在你自己的插件中调用 BungeeCollector#registerDataProvider 方法即可
向本插件添加数据源。
方法一:使用插件自带的 custom-collector 采集数据。
首先,在 config.yml 的 custom-collector.realtime 中加入以下内容:
YAML:
[/B]# 名称,需与 settings.json 同步
todayIncome:
# 目前仅支持 JSON
type: json
# JSON 路径
path: "data.todayIncome"
# 请求地址
url: "http://127.0.0.1/api/getIncome"
JSON:
[/B] "todayIncome": {
"type": "rollNumber",
"bind": "todayIncome"
}
type 中的 rollNumber 表示数据类型为滚动数字
bind 中的值为数据将要渲染的 HTML 标签位置。
最后,你需要编辑 index.html, 将数据显示出来。
方法二:通过依赖插件提供数据
本方法需要一定的编程基础。
你只需要在你自己的插件中调用 BungeeCollector#registerDataProvider 方法即可
向本插件添加数据源。
▓ 鸣谢 |
本插件使用了以下项目:
Gson
Okhttp3
NanoHTTPd
Java-WebSocket
iDataV
如果你的服务器使用了本项目,可以联系我在这里留下展示链接喔~[/B]