
Velocity-Report
A lightweight Velocity proxy plugin for cross-server reporting. Server-side only, no sub-server setup needed.Fully supports both Simplified 支持Velocity代理端跨服举报,插件仅需代理服务器安装,子服无需安装。支持管理员/reportcd打开举报记录,可以标记玩家举报为已处理,支持SQLite、MySQL数据库,2.0.9版本已经支持English、简体中文等语言。
Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
VelocityReport is a lightweight cross-server player report system for Velocity proxies. Install it on the proxy only — no backend server plugins required. Reports are stored centrally (SQLite or MySQL) and staff on any sub-server can see and handle them.
Install on the proxy only · SQLite or MySQL · English & Simplified Chinese · Install it on the proxy, nothing else.
English
Features
| Feature | Description |
|---|---|
| Cross-server reporting | Players can report anyone on the network from any sub-server. Reports are stored centrally and staff are notified wherever they are. |
| Offline reports | A player can still be reported after they log out — as long as they were last online within the configured window (24 hours by default). |
| Clickable reason menu | /report <player> opens a clickable menu of preset reasons — no typing required. |
| Staff management menu | Browse report history with clickable, paginated chat menus; open details, resolve or reopen. |
| Status tracking | Mark reports resolved / pending with an optional resolution note; the reporter is notified when their report is handled. |
| Live staff notifications | Staff are notified the moment a report is filed, and reminded of pending reports when they join. |
| In-game staff list | Manage the fallback staff list without touching config files: /reportstaff add|remove|list. Names are written to staff-users.yml and merged with config.yml — your config comments stay intact. |
| One admin command | /reportadmin (alias /ra) collects reload, list, view, close, resolve/reopen, history and the staff list in a single entry point. |
| SQLite or MySQL | Zero-config SQLite by default; MySQL through a HikariCP pool. Tables are created automatically by both backends. |
| Bilingual | Built-in English and Simplified Chinese language files, switchable at runtime. |
| Server name mapping | Show raw backend names (lobby) as friendly text (Lobby), with & color codes. |
| Anti-spam cooldown | Configurable delay between reports, with a bypass permission. |
| Tab completion | /report <TAB> completes online players and players still inside the report window. |
| MiniMessage formatting | Every message is a MiniMessage template, and individual keys can be overridden from config.yml. |
Requirements
| Requirement | Version |
|---|---|
| Java | 17+ |
| Proxy | Velocity 3.x / 4.x (API 3.3.0+) |
| Storage | SQLite (bundled) or MySQL 5.7+ / MariaDB |
| Optional | A permissions plugin such as LuckPerms |
Installation
- Download the JAR and drop it into your Velocity
plugins/folder. - Restart the proxy.
- On first start the plugin generates
plugins/velocity-report/config.yml, alang/folder and the database file. Edit the config, then apply it with/reportadmin reload(the console can run it too).
Commands
Players
| Command | Description |
|---|---|
/report <player> (/rep) |
Open the clickable reason menu |
/report <player> <reason> |
Submit a report directly (a free-text reason is allowed) |
Staff — every staff command requires velocityreport.staff or a name on the staff list.
| Command | Description |
|---|---|
/reportadmin (/ra, /reportadm) |
Staff entry point — no arguments prints the help |
/reportadmin reload |
Reload config, language files and the staff file |
/reportadmin list [page] |
Open reports |
/reportadmin view <id> |
Full report details |
/reportadmin close <id> [note] |
Close a report, with an optional note |
/reportadmin resolve|reopen <id> |
Mark resolved / pending |
/reportadmin history [page] [player] |
Full report history |
/reportadmin staff add|remove|list [player] |
Manage the staff list |
/reports [page], /reportview <id>, /reportclose <id> [note] |
Shortcuts for the commands above |
/reportcd (list, view, resolve, reopen) |
Interactive report menu — in game only |
/reportstaff [list|add|remove] [player] |
Manage the staff list |
Permissions
| Permission | Default | Description |
|---|---|---|
velocityreport.report |
everyone | Submit reports (the command itself is not permission-checked) |
velocityreport.staff |
none | All staff commands and report notifications. A name on the staff list counts as having this node |
velocityreport.reload |
none | Use /reportadmin reload. Not interchangeable with staff |
velocityreport.notify |
none | Receive report notifications only |
velocityreport.bypasscooldown |
none | Ignore the report cooldown |
No permissions plugin? Velocity grants players no permissions of its own (an undefined permission counts as false). Add names to
staff-usersinconfig.yml— or in game with/reportstaff add <player>— and those players can use every staff command and receive notifications. Reloading is the exception:/reportadmin reloadonly answers tovelocityreport.reload, so use the console for that case.
Configuration
The generated config.yml is fully commented. The options you are most likely to touch:
language: zh_CN # zh_CN or en_US (files live in lang/)
cooldown-seconds: 60 # 0 disables the cooldown
offline-report-window-hours: 24 # reportable after logout; 0 = online players only
reports-per-page: 10
staff-users: [] # fallback staff list; /reportstaff writes to staff-users.yml
server-aliases: # raw server name → display text
lobby: "&eLobby"
survival: "&aSurvival"
Storage is configured under database: — type: sqlite, or type: mysql with connection details and optional HikariCP pool tuning.
Notes
/reportcdis in-game only; the console can use/reportadmin history.- Offline reports rely on the plugin's own last-seen records, gathered while players are online — every player becomes reportable while offline once they have been seen on the network after the plugin was installed.
- Report tables and the
player_last_seentable are created automatically on both storage backends. - Upgrading from 2.2.0 or older: the old
/reportreloadcommand has been removed — use/reportadmin reload. Anyone who could reload throughvelocityreport.staffnow needsvelocityreport.reload.
简体中文
VelocityReport 是一款轻量级的 Velocity 跨服举报插件,只需装在代理端,不需要任何后端子服插件。举报集中存储(SQLite 或 MySQL),任意子服的管理员都能看到并处理。
功能一览
| 功能 | 说明 |
|---|---|
| 跨服举报 | 玩家可在任意子服举报网络里的玩家。举报集中存储,管理员在任何子服都能收到通知 |
| 离线举报 | 玩家下线后仍可被举报,只要最后在线时间在配置的窗口内(默认 24 小时) |
| 点击选择原因 | /report <玩家> 弹出可点击的预设原因菜单,无需打字 |
| 管理菜单 | 可点击、可翻页的举报历史界面,支持查看详情、标记已处理、重新打开 |
| 状态跟踪 | 标记已处理 / 未处理,可填写处理说明;举报人会自动收到通知 |
| 实时通知 | 有新举报立即通知在线管理员;管理员上线时提示待处理数量 |
| 游戏内名单管理 | /reportstaff add|remove|list 直接管理备用管理员名单,名字写入 staff-users.yml 并与 config.yml 合并生效——config.yml 的注释不会被破坏 |
| 管理总命令 | /reportadmin(别名 /ra)一个入口管完:重载、列表、详情、关闭、处理、历史、名单 |
| 双数据库 | 默认零配置 SQLite;也可用 MySQL(HikariCP 连接池)。两者都会自动建表 |
| 双语言 | 内置英文与简体中文语言文件,运行时可切换 |
| 子服名映射 | 把 lobby 显示成 登录服,支持 & 颜色代码 |
| 防刷冷却 | 可配置举报间隔,支持绕过权限 |
| Tab 补全 | /report <TAB> 补全在线玩家与窗口内的离线玩家 |
| MiniMessage | 所有消息都是 MiniMessage 模板,也可在 config.yml 里单独覆盖 |
环境要求
| 要求 | 版本 |
|---|---|
| Java | 17+ |
| 代理端 | Velocity 3.x / 4.x(API 3.3.0+) |
| 数据库 | SQLite(内置)或 MySQL 5.7+ / MariaDB |
| 可选 | LuckPerms 等权限插件 |
安装
- 下载 JAR,放进 Velocity 的
plugins/目录 - 重启代理端
- 首次启动会生成
plugins/velocity-report/config.yml、lang/目录和数据库文件。改完配置后用/reportadmin reload生效(控制台也能执行)
命令
玩家命令
| 命令 | 说明 |
|---|---|
/report <玩家>(/rep) |
打开可点击的原因菜单 |
/report <玩家> <原因> |
直接提交举报(支持自定义原因) |
管理命令 —— 全部需要 velocityreport.staff,或在管理员名单里
| 命令 | 说明 |
|---|---|
/reportadmin(/ra、/reportadm) |
管理总入口,不带参数显示帮助 |
/reportadmin reload |
重载配置、语言文件与名单文件 |
/reportadmin list [页码] |
待处理举报列表 |
/reportadmin view <编号> |
举报详情 |
/reportadmin close <编号> [说明] |
关闭举报,可附处理说明 |
/reportadmin resolve|reopen <编号> |
标记已处理 / 未处理 |
/reportadmin history [页码] [玩家] |
全部举报历史 |
/reportadmin staff add|remove|list [玩家] |
管理管理员名单 |
/reports [页码]、/reportview <编号>、/reportclose <编号> [说明] |
上面几条命令的快捷方式 |
/reportcd(list、view、resolve、reopen) |
交互式举报菜单——仅游戏内可用 |
/reportstaff [list|add|remove] [玩家] |
管理管理员名单 |
权限节点
| 权限 | 默认 | 说明 |
|---|---|---|
velocityreport.report |
所有人 | 提交举报(该命令本身不做权限校验) |
velocityreport.staff |
无 | 所有管理命令 + 接收举报通知;名单内的玩家等同于此节点 |
velocityreport.reload |
无 | 使用 /reportadmin reload,与 staff 互不通用 |
velocityreport.notify |
无 | 只接收举报通知 |
velocityreport.bypasscooldown |
无 | 跳过举报冷却 |
没装权限插件? Velocity 自身不给玩家任何默认权限(未定义的权限一律按 false 处理)。把玩家名写进
config.yml的staff-users,或在游戏内用/reportstaff add <玩家>添加,该玩家就能使用全部管理命令并收到通知。唯一例外是重载:/reportadmin reload只认velocityreport.reload,这种情况请用控制台。
配置
生成的 config.yml 带完整注释,最常改的几项:
language: zh_CN # zh_CN 或 en_US(文件在 lang/ 目录里)
cooldown-seconds: 60 # 设为 0 关闭冷却
offline-report-window-hours: 24 # 离线后仍可被举报的时长,0 = 只能举报在线玩家
reports-per-page: 10
staff-users: [] # 备用管理员名单;/reportstaff 写入的是 staff-users.yml
server-aliases: # 原始子服名 → 显示文本
lobby: "&e登录服"
survival: "&a生存服"
数据库配置在 database: 段:type: sqlite,或 type: mysql 加连接信息与可选的 HikariCP 连接池参数。
说明
/reportcd只能在游戏内使用;控制台请用/reportadmin history- 离线举报依赖插件自己记录的「最后在线时间」——玩家在安装插件之后上线过一次,下线后就能被举报
- 举报表与离线举报用的
player_last_seen表都会在两种数据库下自动创建 - 从 2.2.0 及更早版本升级:旧的
/reportreload命令已移除,改用/reportadmin reload;原来靠velocityreport.staff重载的人需要补velocityreport.reload
Support
- Author: YuHongChen (LiquidTeam)
- QQ:
1464670605· Email:1464670605@qq.com
License
MIT

