Sueta

Velocity-Report

2.3.1

A lightweight Velocity proxy plugin for cross-server reporting. Server-side only, no sub-server setup needed.Fully supports both Simplified 支持Velocity代理端跨服举报,插件仅需代理服务器安装,子服无需安装。支持管理员/reportcd打开举报记录,可以

·Plugin
Tested MC versions
1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 26.1, 26.2, 26.3

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.

Velocity
Java
License


English

Features

FeatureDescription
Cross-server reportingPlayers can report anyone on the network from any sub-server. Reports are stored centrally and staff are notified wherever they are.
Offline reportsA 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 menuBrowse report history with clickable, paginated chat menus; open details, resolve or reopen.
Status trackingMark reports resolved / pending with an optional resolution note; the reporter is notified when their report is handled.
Live staff notificationsStaff are notified the moment a report is filed, and reminded of pending reports when they join.
In-game staff listManage 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 MySQLZero-config SQLite by default; MySQL through a HikariCP pool. Tables are created automatically by both backends.
BilingualBuilt-in English and Simplified Chinese language files, switchable at runtime.
Server name mappingShow raw backend names (lobby) as friendly text (Lobby), with & color codes.
Anti-spam cooldownConfigurable delay between reports, with a bypass permission.
Tab completion/report <TAB> completes online players and players still inside the report window.
MiniMessage formattingEvery message is a MiniMessage template, and individual keys can be overridden from config.yml.

Requirements

RequirementVersion
Java17+
ProxyVelocity 3.x / 4.x (API 3.3.0+)
StorageSQLite (bundled) or MySQL 5.7+ / MariaDB
OptionalA permissions plugin such as LuckPerms

Installation

  1. Download the JAR and drop it into your Velocity plugins/ folder.
  2. Restart the proxy.
  3. On first start the plugin generates plugins/velocity-report/config.yml, a lang/ folder and the database file. Edit the config, then apply it with /reportadmin reload (the console can run it too).

Commands

Players

CommandDescription
/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.

CommandDescription
/reportadmin (/ra, /reportadm)Staff entry point — no arguments prints the help
/reportadmin reloadReload 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

PermissionDefaultDescription
velocityreport.reporteveryoneSubmit reports (the command itself is not permission-checked)
velocityreport.staffnoneAll staff commands and report notifications. A name on the staff list counts as having this node
velocityreport.reloadnoneUse /reportadmin reload. Not interchangeable with staff
velocityreport.notifynoneReceive report notifications only
velocityreport.bypasscooldownnoneIgnore the report cooldown

No permissions plugin? Velocity grants players no permissions of its own (an undefined permission counts as false). Add names to staff-users in config.yml — or in game with /reportstaff add <player> — and those players can use every staff command and receive notifications. Reloading is the exception: /reportadmin reload only answers to velocityreport.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

  • /reportcd is 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_seen table are created automatically on both storage backends.
  • Upgrading from 2.2.0 or older: the old /reportreload command has been removed — use /reportadmin reload. Anyone who could reload through velocityreport.staff now needs velocityreport.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 里单独覆盖

环境要求

要求版本
Java17+
代理端Velocity 3.x / 4.x(API 3.3.0+)
数据库SQLite(内置)或 MySQL 5.7+ / MariaDB
可选LuckPerms 等权限插件

安装

  1. 下载 JAR,放进 Velocity 的 plugins/ 目录
  2. 重启代理端
  3. 首次启动会生成 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

License

MIT

Similar projects

Plugin →