-1分钟上手智能文档(6附件)

USFLog Plus 文档

艹了在语雀写了半天发现要会员才能公开到互联网,吴迪
这里是 USFLog Plus 程序开发和使用文档,从目录可以快速探索文档内容。
重要提示:由于我目前在校不便于维护,因此文档与最新版本有较大差异,请以实际情况为主!!

部署教程

部署到 Windows

在正式安装前您需要在操作系统环境安装 Node.js,WindowsX64 下载链接:https://nodejs.org/dist/v20.11.0/node-v20.11.0-x64.msi,安装完毕后方可开始下面操作。
将从官网下载的 USFLog Plus 中的文件解压出来。您应该可以得到:
● Main.js● permissions.json● start.bat● start.sh● 使用方法 .txt

BDS 和日志系统准备部署在一台服务器 / 电脑内:

1. 关闭基岩服务端,将 permissions.json 复制到基岩服务端文件夹 \config\default 下,并替换掉原来的 permissions.json 文件
2. 创建一个用于存储日志的文件夹,将 Main.js 和 start.bat 文件复制进去
3. 双击 start.bat 打开日志程序,看见 USFLog Plus 启动成功的提示则代表启动完毕,此时打开基岩服务端,游戏进入后点击管理菜单→插件设置→日志系统,修改地址为日志系统控制台输出的主程序地址端口,打开全部记录选项后保存关闭。进出一下 MC 服务器,如果出现发起连接提示即代表安装完成。

BDS 和日志系统部署在分别的两台设备上:

1. 关闭基岩服务端,将 permissions.json 复制到基岩服务端文件夹 \config\default 下,并替换掉原来的 permissions.json 文件
2. 创建一个用于存储日志的文件夹,将 Main.js 和 start.bat 文件复制进去
3. 双击 start.bat 打开日志程序,看见 USFLog Plus 启动成功的提示则代表启动完毕。此时打开基岩服务端,进入服务器后点击管理菜单→插件设置→日志系统,修改地址为另一台电脑的穿透地址或者公网地址(如果映射端口和日志系统端口不同的话,请输入开放到公网的服务 IP 和端口),打开全部记录选项后保存关闭。进出一下 MC 服务器,看一下日志系统控制台那边有没有阻止连接或者连接成功的提示,如果被阻止连接,请在 LogServer.json 的 whitelist 配置项将原有的 127.0.0.1 改为被阻止连接的 IP,再次进出游戏,如果控制台显示了玩家进出提示,则代表搭建完成。

部署到 Linux

抱歉长官你都用 Linux 了就不需要我教了()方法和 Windows 大致一样。
 

功能详解

日志目录格式

Log/
├── link.log # 服务端连接日志
├── connection.log # 连接日志
├── players/ # 玩家主要日志
│ ├── player/ # 单个玩家的日志
│ │ └── info.log # 信息日志
│ ├── playername/ # 玩家概要日志目录
│ └── ...
├── YYYY.MM.DD/ # 某一日的文件夹
│ ├── Chat.log # 当天所有人的聊天日志
│ ├── Chest.log # 容器操作日志
│ └── playername/ # 玩家主要日志目录
│ │ ├── dimension.log # 维度变化日志
│ │ ├── interact.log # 互动日志
│ │ ├── chest.log # 箱子操作日志(待完善)
│ │ ├── kill.log # 击杀日志
│ │ ├── death.log # 死亡日志
│ │ ├── break.log # 破坏方块日志
│ │ ├── place.log # 放置方块日志
│ │ ├── location.log # 位置日志
│ │ ├── gamemode.log # 游戏模式日志
│ │ ├── sign.log # 告示牌更改日志
└── ...
 

常用控制台命令

stop 退出日志系统
gzlog 手动发起压缩,压缩除今日外的单个日志文件为 .gz 文件
 

配置文件详解

下面的为缺省设置,请以实际情况为准
JSON
port: 31145, //主程序端口 chatApiPort: 31146, // 聊天API端口 openIP: "0.0.0.0", //主程序监听IP chatApiIP: "0.0.0.0", // chatapi监听IP可设可不设 maxConnectionsPerIP: 10, //鸡肋的防刷屏,开了后也不会影响连接记录日志的生成 showConnectionInfo: true, //是否在控制台显示连接信息 useWhitelist: true, //是否开启连接IP白名单 whitelist: ["127.0.0.1"],//IP白名单,可设置多个,一行一个,单个IP加上""号,通用情况下只需设置一个 antiSpamEnable: true,//是否开启antiSpamEnable功能(实验性功能) showChatInConsole: true,//是否显示ChatInConsole在控制台 debugMode: false, //debug开关(不要开,概率会出事) logBufferSize: 5 * 5, // 缓冲区大小(字节) logCleanupInterval: 86400000, // 日志清理间隔(毫秒) logRetentionDays: 7, // 日志保留天数 logCompression: true, // 启用日志压缩 chatApiEnabled: true, // 是否启用聊天API推送 chatApiUrl: "http://example.com", // 聊天APIpush地址(仅支持HTTP,HTTPS请等待适配) pushPrivateChat: false, // 是否推送私聊信息 apiSecret: "114511" // 聊天API密钥(目前似乎没有实现成功,并不会携带密钥推送)
 

聊天 API 推送

设置好推送地址并打开功能后,JSON 信息将以 POST 形式推送,共有 6 个固定字段,分为私聊和公共聊天两种大项格式:
messageType: 消息类型,可以是 "public"(公共聊天)或 "private"(私聊)。
sender: 发送消息的玩家名。
timestamp: 消息发送的时间,格式为 "YYYY-MM-DDTHH:MM:SS"。这个最好作为一个判断依据,而不是主要的外显时间来始用。
content: 消息内容。
recipientId: 消息接收者。如果是公开消息,则为 "all";如果是私聊消息,则为接收者的玩家名字(实验)
pw: 密钥。
 
示例:
JSON
{ "messageType": "public", "sender": "YYTZ666", "timestamp": "2023-03-01T12:00:00", "content": "你好,世界!", "recipientId": "all", "pw": "114511" }