V-Monitor

监控玩家的活动状态

资源图片

V-Monitor Logo

# V-Monitor - Velocity服务器活动与状态监控 [![GitHub release](https://img.shields.io/github/release/MC-Nirvana/V-Monitor.svg)](https://github.com/MC-Nirvana/V-Monitor/releases) [![GitHub issues](https://img.shields.io/github/issues/MC-Nirvana/V-Monitor.svg)](https://github.com/MC-Nirvana/V-Monitor/issues) [![GitHub license](https://img.shields.io/github/license/MC-Nirvana/V-Monitor.svg)](https://github.com/MC-Nirvana/V-Monitor/blob/main/LICENSE) ## I. 简介 V-Monitor 是一个轻量级的 Velocity 代理插件(内部代号:Arona-01),旨在监控玩家加入、离开和服务器切换活动。它为玩家和管理员提供便捷的命令,用于查询在线玩家列表以及详细的后端服务器信息。 ## II. 主要特性 - **玩家活动监控**: 实时跟踪玩家登录、登出和服务器切换事件 - **在线状态查询**: 命令查看在线玩家列表及其服务器分布 - **服务器信息查询**: 获取 Velocity 代理和所有子服务器的详细信息 - **插件信息管理**: 列出加载的插件并查看详细信息 - **玩家数据查询**: 查看特定玩家的活动历史和总游戏时间统计 - **多语言支持**: 支持多种语言,并易于扩展 - **灵活配置**: 通过配置文件自定义服务器别名和语言设置 - **数据持久化**: 使用 SQLite 或 MySQL 存储玩家活动数据 - **WebSocket 支持**: 实时玩家活动推送 via WebSocket(计划中) ## III. 安装指南 1. 从 [发布页面](https://github.com/MC-Nirvana/V-Monitor/releases/latest) 下载最新的插件 JAR 文件。 2. 将下载的 JAR 文件放入 Velocity 代理服务器的 `plugins` 文件夹中。 3. 启动 Velocity 代理服务器。插件将自动生成默认的配置文件和语言文件。 4. 编辑配置文件和语言文件,以满足您的需求。 5. 重新加载插件配置 (`/vm reload`) 或重启服务器以使更改生效。 6. 享受 V-Monitor 带来的便捷! ## IV. 插件使用(命令) 主命令是 `/vmonitor`,别名 `/vm`。 | 命令 | 示例用法 | 权限节点 | 描述 | |-----------------------------------|------------------------------------------------------|------------------|------------------------------------------| | `help` | `/vm help` | `none` | 获取插件的帮助信息。 | | `reload` | `/vm reload` | `vmonitor.admin` | 重新加载插件配置。 | | `version` | `/vm version` | `vmonitor.admin` | 获取插件版本信息。 | | `server list [all or serverName]` | `/vm server list all` 或 `/vm server list lobby` | `none` | 列出所有或特定服务器上的玩家。| | `server info [all or serverName]` | `/vm server info all` 或 `/vm server info lobby` | `none` | 获取所有或一个服务器的详细信息。 | | `plugin list` | `/vm plugin list` | `vmonitor.admin` | 列出所有加载的插件。 | | `plugin info [all or pluginID]` | `/vm plugin info all` 或 `/vm plugin info V-Monitor` | `vmonitor.admin` | 获取所有或一个插件的详细信息。 | | `player info [playerID]` | `/vm player info MC_Nirvana` | `vmonitor.admin` | 获取特定玩家的详细信息。 | | `player switch [playerID]` | `/vm player switch MC_Nirvana` | `vmonitor.admin` | 获取玩家的服务器切换日志。 | *默认情况下,具有 OP 权限的玩家和控制台具有所有权限节点。* ## V. 配置文件 (config.yml) 插件启动时,将在 `plugins/v-monitor/` 目录中生成一个 `config.yml` 文件。 以下是一个带有详细信息的配置文件示例: ```yaml # V-Monitor 配置文件 # 插件基本设置 plugin-basic: # 默认语言设置 language: # 默认语言 # 支持语言:zh_cn, zh_tw, en_us default: "zh_cn" # 数据存储设置 data-storage: # 数据库类型 # 支持类型:sqlite, mysql type: "sqlite" # SQLite 数据库配置 sqlite: # SQLite 数据库文件路径 path: "data.db" # MySQL 连接配置 mysql: # MySQL 服务器地址 host: "localhost" # MySQL 服务器端口 port: 3306 # MySQL 数据库名称 database: "v_monitor" # MySQL 数据库用户名 username: "root" # MySQL 数据库密码 password: "password" # MySQL 自定义参数配置 # 参数格式:database 设置项:值 # 示例: # parameters: # useSSL: "false" parameters: [] # HikariCP 数据库连接池配置 hikari: # 最大连接数 maximum-pool-size: 32 # 最小空闲连接数 minimum-idle: 16 # 连接超时时间 # 单位:毫秒 connection-timeout: 30000 # 空闲连接生存时间 # 单位:毫秒 idle-timeout: 600000 # 最大生存时间 # 单位:毫秒 max-lifetime: 1800000 # 服务器信息设置 server-info: # 服务器名称 name: "My Velocity Server" # 服务器别名 # 参数格式:实际服务器名称:“别名” # 支持同时为多个服务器设置别名 # 示例: # aliases: # lobby: "hub" # game: "minigames" aliases: [] # 报告设置 report: # 启用报告功能 # 如果启用,将在指定时间自动生成报告 enabled: true # 自动清理报告 auto-clean-report: true # 输出目录 output-directory: "Reports" # 报告生成时间 # 格式为 HH:mm # 注意:时间应为 24 小时制 # 示例:每天下午 4 点生成报告 # schedule-time: "16:00" schedule-time: "16:00" ``` 您可以编辑此文件以自定义插件的行为和消息内容。 要获取完整的默认配置,请参阅插件首次运行时生成的配置文件。 ## VI. 语言文件 (lang/*.yml) 语言文件存储在 `plugins/v-monitor/lang/` 中,格式为 YAML。 每个 `.yml` 文件对应一种语言,包含插件输出的所有文本消息和格式模板。您可以随意编辑这些文件,并使用 MiniMessage 格式自定义颜色、样式和内容。 ## VII. 数据存储 (data.db) 插件会生成一个名为 `data.db` 的 SQLite3 数据库文件,位于 `plugins/v-monitor/` 目录中。 此文件存储了连接到代理服务器的玩家的信息,由其 **UUID** 唯一标识。 **请勿手动编辑此文件。** 您可以编辑配置文件来切换到 MySQL。 ## VIII. 从源代码构建 要从源代码构建插件,您需要 JDK 17+ 和 Gradle. ### 8.1 构建步骤 1. 克隆仓库:`git clone https://github.com/MC-Nirvana/V-Monitor.git` 2. 进入仓库目录:`cd V-Monitor` 3. 运行构建命令:`./gradlew build` 4. 在 `build/libs/` 目录中找到生成的 JAR 文件 ### 8.2 开发环境设置 - 推荐使用 IntelliJ IDEA 进行开发 - 导入项目后,请确保下载 Gradle 依赖项 ## IX. 贡献与支持 欢迎通过 GitHub Issues 提交错误报告和功能建议。 ### 9.1 如何贡献 - 提交代码改进和新功能 - 改进文档和翻译 - 报告错误和安全问题 - 参与讨论并提供反馈 ### 9.2 Pull Request 最佳实践 1. Fork 项目并创建一个功能分支 2. 编写清晰的提交消息 3. 确保代码符合项目编码标准 4. 添加适当的测试用例 5. 保持每个 Pull Request 专注于一个功能或修复 ### 9.3 开发人员资源 - 该项目遵循标准的 Git 工作流程 - 确保您的代码通过所有测试后再提交 Pull Request - 保持一致的编码风格,遵循现有的代码结构 ## X. 项目路线图 - [ ] 完成 WebSocket 实时数据推送功能 - [ ] 提供基于 Web 的管理界面 ## XI. 许可证 本项目采用 [GPL-3.0 许可证](LICENSE)。 ## XII. 作者的话 这是我第一次为 Minecraft Java 版开发服务器端插件。虽然在开发过程中使用了 AI 辅助编码,代码质量仍有提升空间,但我将继续进行优化。最初,这个插件是为我自己的 Minecraft Java 版服务器开发的,但我希望它也能为其他服务器管理员提供帮助。 ## XIII. 支持与反馈 如果您喜欢这个项目,请考虑: - 给它一个 Star ⭐ - 在社交媒体上分享它 - 参与讨论并提供有价值的反馈 ### 13.1 赞助 如果您想支持该项目的持续开发和维护,您可以通过: - [Mianbaoduo](https://mbd.pub/o/MC_Nirvana) - 针对中国大陆用户 - [PayPal](https://paypal.me/WHFNirvana) - 针对海外用户 您的赞助将用于: - 维护项目基础设施 - 请作者去码头吃炸薯条 :)