• 游客, 欢迎您来到九域资源社区,如果您是新人,请前往 论坛公告 板块查看新人引导教程 或者 点我打开
    如果您发现没有下载许可, 请先验证邮箱再进行下载;金锭可通过每日登陆或资源出售获取,目前没有其他渠道可获取。
BungeeCollector — 数字大屏 | 把你的玩家状态数据可视化[全版本]

Bukkit BungeeCollector — 数字大屏 | 把你的玩家状态数据可视化[全版本] 1.1.0

没有下载权限
◆ 支持核心
CatServer,Spigot,PaperSpigot,Magma
▓ 介绍

警告:这是一个 BungeeCord 插件,请将它放在 BungeeCord 服务端的 plugins 文件夹下!

这个插件可以统计你的服务器在线人数、玩家分布和在线人数历史等各种数据,然后生成一个实时更新的数字大屏。

琉璃日月.png


大屏包含:
  • 当前在线玩家数
  • 今日新玩家数(从插件安装起开始计算)
  • 玩家转化率(最后一次进服务器日期距首次进服日期超过一天时记为转化玩家)
  • 平均在线率(今日每小时在线人数 / 采集小时数)
  • 在线玩家地理位置分布图
  • 在线玩家子服分布图
  • 历史在线统计图
  • 其他自定义数据源……

▓ 安装


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"
            }
        }
    }
}
修改此处的 wsUrl 为正确的地址(如:"ws://<你的服务器IP>:8800")
端口号必须与插件 websocket 的 port 相同。

提示:如果你不希望这些数据被其他人看见,你可以把监听地址设置为 127.0.0.1
即只允许本机访问。或者使用搭建 NGINX 反代等方案保护你的数据。

▓ 自定义数据源
目前有两种方法提供自定义数据源。
方法一:使用插件自带的 custom-collector 采集数据。

首先,在 config.ymlcustom-collector.realtime 中加入以下内容:
YAML:
[/B]# 名称,需与 settings.json 同步
    todayIncome:
      # 目前仅支持 JSON
      type: json
      # JSON 路径
      path: "data.todayIncome"
      # 请求地址
      url: "http://127.0.0.1/api/getIncome"
然后,在插件的 web/settings.json 中将数据与网页进行绑定。
JSON:
[/B]            "todayIncome": {
                "type": "rollNumber",
                "bind": "todayIncome"
            }

type 中的 rollNumber 表示数据类型为滚动数字
bind 中的值为数据将要渲染的 HTML 标签位置。

最后,你需要编辑 index.html, 将数据显示出来。

方法二:通过依赖插件提供数据

本方法需要一定的编程基础。
你只需要在你自己的插件中调用 BungeeCollector#registerDataProvider 方法即可
向本插件添加数据源。

▓ 鸣谢

本插件使用了以下项目:
Gson
Okhttp3
NanoHTTPd
Java-WebSocket
iDataV

如果你的服务器使用了本项目,可以联系我在这里留下展示链接喔~[/B]
作者
lss233
下载
59
查看
3,047
首次发布
最后更新
评分
4.33 星 3 星

分享资源

最新评论

Failed to load driver class com.mysql.cj.jdbc.Driver from HikariConfig class classloader PluginClassloader(desc=PluginDescription(name=BungeeCollector, main=com.lss233.bungeecollector.BungeeCollector, version=1.1-SNAPSHOT, author=Lss233, depends=[], softDepends=[], file=plugins\BungeeCollector-1.1-SNAPSHOT.jar, description=Visualize your player stats, libraries=[]))
报错:
[01:54:26 ERROR]: com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonObject but was com.google.gson.JsonPrimitive
[01:54:26 ERROR]: at com.google.gson.internal.bind.TypeAdapters$35$1.read(TypeAdapters.java:911)
[01:54:26 ERROR]: at com.google.gson.Gson.fromJson(Gson.java:932)
[01:54:26 ERROR]: at com.google.gson.Gson.fromJson(Gson.java:897)
[01:54:26 ERROR]: at com.google.gson.Gson.fromJson(Gson.java:846)
[01:54:26 ERROR]: at com.google.gson.Gson.fromJson(Gson.java:817)
[01:54:26 ERROR]: at com.lss233.bungeecollector.websocket.QueryWebsocketServer.queryJSON(QueryWebsocketServer.java:165)
[01:54:26 ERROR]: at com.lss233.bungeecollector.websocket.QueryWebsocketServer.flushOnlineStatus(QueryWebsocketServer.java:140)
[01:54:26 ERROR]: at com.lss233.bungeecollector.BungeeCollector.lambda$onEnable$2(BungeeCollector.java:111)
[01:54:26 ERROR]: at net.md_5.bungee.scheduler.BungeeTask.run(BungeeTask.java:66)
[01:54:26 ERROR]: at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
[01:54:26 ERROR]: at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[01:54:26 ERROR]: at java.base/java.lang.Thread.run(Thread.java:833)
Lss yyds 太强了!!!!!