
MCReportPro | Report Plugin All In One!
moyuReport is a comprehensive Minecraft server management plugin that provides an integrated reporting and banning system. The plugin enables players to report rule-breaking behavior while offering administrators powerful tools to manage reports and enforc
Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
moyuReport - Minecraft 举报与封禁管理系统
moyuReport 是一个 Minecraft 服务器管理插件,集举报、封禁、警告、玩家备注和解封功能于一体。插件使用独立封禁引擎,数据存储在 SQLite 中,不依赖任何第三方封禁插件。所有消息均可通过 config.yml 自定义,默认中文。
功能
举报系统。 玩家通过 /report <player> <reason> 提交举报。手持成书举报时,书的内容会自动作为证据附件。系统包含冷却机制,支持离线举报;当同一玩家被多人举报达到阈值时自动封禁。
封禁系统。 内置封禁引擎支持任意数量的封禁类型,每种类型的理由和时长均在 config.yml 中定义。临时 IP 封禁接受灵活的时间格式(1h、24h、7d、1w)。每次封禁生成唯一的 8 位 BANID(排除易混淆字符 I、l、0、O、S、5),可通过 /banid 查询。过期封禁按配置间隔自动解除。/banhistory <player> 可查看完整封禁记录。
解封系统。 /reportadmin unban <玩家> 手动解除封禁。
警告系统。 管理员可在封禁前先发出警告。玩家累计警告数达到配置阈值后自动封禁。被警告的玩家上线时会看到警告计数。
玩家备注。 管理员可为玩家添加仅限内部可见的备注,方便跨班次交接。备注通过命令或 GUI 管理。
GUI 管理面板。 /reportadmin gui 打开箱子界面仪表盘。举报列表分页显示,颜色区分状态。点击任一举报进入详情页,包含传送、封禁、完成、拒绝等一键操作。封禁类型从配置文件动态读取;警告原因预置可选;备注支持增删查。
Staff 模式。 管理员进入隐身状态(SuperVanish),普通玩家不可见,免疫伤害,禁止破坏或放置方块。传送到被举报玩家时自动启用。
PlaceholderAPI 集成。 提供 7 个占位符:%moyureport_pending%、%moyureport_total_reports%、%moyureport_warnings%、%moyureport_notes_count%、%moyureport_is_banned%、%moyureport_ban_reason%、%moyureport_ban_days_left%。
公共 API。 其他插件可通过 moyuReportAPI.getInstance() 调用 14 个方法,涵盖举报、封禁、警告、备注和历史查询。
审计日志。 所有管理员操作(封禁、解封、警告、备注)写入 plugins/moyuReport/audit/audit-YYYY-MM-DD.log,按天轮转。
命令
玩家
| 命令 | 说明 |
|---|---|
/report <玩家> <原因> |
举报玩家(手持成书可附带证据) |
管理员
| 命令 | 说明 |
|---|---|
/reportadmin gui |
打开 GUI 管理面板 |
/reportadmin reload |
热重载配置文件 |
/reportadmin unban <玩家> |
解封玩家 |
/reportadmin info <ID> |
查看举报详情 |
/reportadmin tp <ID> |
传送到被举报玩家 |
/reportadmin status <ID> <status> |
修改举报状态 |
/reportadmin complete <ID> |
标记举报为已完成 |
/reportadmin reject <ID> |
拒绝举报 |
/reportadmin ban <ID> |
封禁被举报玩家 |
/reportadmin confirmban <player> <type> |
按类型直接封禁 |
/warn <玩家> <原因> |
发出警告 |
/notes add <玩家> <备注> |
添加玩家备注 |
/notes list <玩家> |
列出玩家备注 |
/notes delete <id> |
按 ID 删除备注 |
/banhistory <玩家> |
查看封禁历史 |
/banid <BANID> |
查询封禁 ID |
/tempipban <玩家/IP> <时长> [原因] |
临时 IP 封禁 |
/reports |
查看举报列表(可点击聊天按钮) |
权限
| 权限 | 默认 | 说明 |
|---|---|---|
moyureport.admin |
op | 管理员全部权限 |
moyureport.tempipban |
op | IP 封禁权限 |
moyureport.bypass_auto_ban |
false | 豁免自动封禁 |
PlaceholderAPI
| 占位符 | 返回值 |
|---|---|
%moyureport_pending% |
待处理举报数 |
%moyureport_total_reports% |
系统内总举报数 |
%moyureport_warnings% |
该玩家活跃警告数 |
%moyureport_notes_count% |
该玩家备注数 |
%moyureport_is_banned% |
true 或 false |
%moyureport_ban_reason% |
当前封禁原因 |
%moyureport_ban_days_left% |
剩余封禁天数 |
公共 API
moyuReportAPI api = moyuReportAPI.getInstance();
// 举报
api.createReport(reporter, targetName, reason);
api.getPendingReports();
api.getReportCount(playerName);
// 封禁
api.banPlayer(targetName, adminName, reason, durationDays);
api.unbanPlayer(playerName);
api.isPlayerBanned(playerName);
api.getBanReason(playerName);
api.getBanDaysLeft(playerName);
// 警告
api.addWarning(playerName, uuid, reason, admin);
api.getWarningCount(playerName);
api.clearWarnings(playerName);
// 备注与历史
api.addNote(playerName, uuid, note, adminUUID, adminName);
api.getNotes(playerName);
api.getBanHistory(playerName);
配置
首次启动时默认值写入 config.yml。核心配置段:
database:
type: sqlite
report:
cooldown: 600 # 举报冷却秒数
auto_ban_threshold: 5 # 被 N 人举报后自动封禁
auto_ban_duration: 3 # 自动封禁天数
ban:
types: # 任意数量自定义封禁类型
cheating:
reason: "作弊"
duration: 30
inappropriate_building:
reason: "不当建筑"
duration: 7
verbal_abuse:
reason: "辱骂他人"
duration: 14
builtin:
ban_format: # 封禁时显示的文案
header: "§c§l你已被服务器封禁"
reason: "§7封禁原因:§f{reason}"
duration: "§7封禁时长:§f{duration} 天"
banned_by: "§7操作管理员:§f{admin}"
ban_id: "§7封禁编号:§f{banid}"
footer: "§c如需申诉请联系管理员"
warning:
auto_ban_threshold: 3 # 累计 N 次警告后自动封禁
auto_ban_duration: 3
ip_ban:
default_duration: "24h"
修改后执行 /reportadmin reload 即可应用,无需重启。所有消息文本均可在 messages 段自定义。
数据存储
所有数据存储在 SQLite 中(plugins/moyuReport/moyureport.db)。首次启动时自动迁移已有的 YAML 文件。审计日志输出到 plugins/moyuReport/audit/,按天轮转。
依赖
- Spigot 或 Paper 1.20+
- PlaceholderAPI(可选;启用
%moyureport_*%占位符) - SQLite JDBC 驱动已打包进 JAR
安装
- 将
moyuReport-1.0.jar放入服务器plugins/文件夹 - 可选安装 PlaceholderAPI
- 启动服务器,配置文件和数据库自动生成
- 编辑
plugins/moyuReport/config.yml - 执行
/reportadmin reload使配置生效
moyuReport - Minecraft Report and Ban Management
moyuReport is a Minecraft server moderation plugin covering reporting, banning, warnings, player notes, and unbanning. It uses its own ban engine with SQLite storage — no third-party ban plugins required. All messages are customizable via config.yml.
Features
Reporting. Players submit reports with /report <player> <reason>. Holding a written book while reporting attaches its contents as evidence. A cooldown prevents spam, offline reports are accepted, and enough reports against one player trigger an automatic ban.
Ban system. The built-in ban engine supports any number of ban types, each with its own reason and duration defined in config.yml. Temporary IP bans use flexible time formats (1h, 24h, 7d, 1w). Every ban gets a unique 8-character BANID (ambiguous characters I、l、0、O、S、5 excluded), queryable via /banid. Expired bans are lifted automatically. /banhistory <player> shows the full record.
Unbanning. /reportadmin unban <player> manually lifts a ban.
Warning system. Administrators can issue warnings before resorting to a ban. Accumulated warnings trigger automatic ban at a configurable threshold. Warned players see their count on login.
Player notes. Staff can attach private notes visible only to administrators. Notes are managed through commands or the GUI.
GUI management panel. /reportadmin gui opens a chest-inventory dashboard. The report list is paginated and color-coded by status. Clicking a report shows full details with one-click actions: teleport, ban, complete, or reject. Ban types pull from config dynamically, warning reasons are pre-filled, notes can be listed, added, and deleted.
Staff mode. Administrators enter SuperVanish — invisible to regular players, immune to damage, blocked from breaking or placing blocks. Auto-enables when teleporting to a reported player.
PlaceholderAPI. Seven placeholders: %moyureport_pending%, %moyureport_total_reports%, %moyureport_warnings%, %moyureport_notes_count%, %moyureport_is_banned%, %moyureport_ban_reason%, %moyureport_ban_days_left%.
Public API. Other plugins can call moyuReportAPI.getInstance() for 14 methods covering reports, bans, warnings, notes, and ban history.
Audit logging. Every administrative action is written to plugins/moyuReport/audit/audit-YYYY-MM-DD.log with daily rotation.
Commands
Player
| Command | Description |
|---|---|
/report <player> <reason> |
Report a player (hold a book to attach as evidence) |
Administrator
| Command | Description |
|---|---|
/reportadmin gui |
Open the GUI management panel |
/reportadmin reload |
Reload configuration without restarting |
/reportadmin unban <player> |
Unban a player |
/reportadmin info <ID> |
View full report details |
/reportadmin tp <ID> |
Teleport to the reported player |
/reportadmin status <ID> <status> |
Change report status |
/reportadmin complete <ID> |
Mark report as completed |
/reportadmin reject <ID> |
Reject a report |
/reportadmin ban <ID> |
Ban the reported player |
/reportadmin confirmban <player> <type> |
Direct ban by type |
/warn <player> <reason> |
Issue a warning |
/notes add <player> <note> |
Add a player note |
/notes list <player> |
List notes for a player |
/notes delete <id> |
Delete a note by ID |
/banhistory <player> |
View ban history |
/banid <BANID> |
Look up a ban by its ID |
/tempipban <player/IP> <duration> [reason] |
Temporary IP ban |
/reports |
View report list with clickable chat buttons |
Permissions
| Permission | Default | Description |
|---|---|---|
moyureport.admin |
op | Full administrative access |
moyureport.tempipban |
op | Permission to issue IP bans |
moyureport.bypass_auto_ban |
false | Exempt from automatic ban threshold |
PlaceholderAPI
| Placeholder | Returns |
|---|---|
%moyureport_pending% |
Number of pending reports |
%moyureport_total_reports% |
Total reports in the system |
%moyureport_warnings% |
Active warnings for the player |
%moyureport_notes_count% |
Number of notes on the player |
%moyureport_is_banned% |
true or false |
%moyureport_ban_reason% |
Ban reason, if currently banned |
%moyureport_ban_days_left% |
Days remaining on the active ban |
Public API
moyuReportAPI api = moyuReportAPI.getInstance();
// Reports
api.createReport(reporter, targetName, reason);
api.getPendingReports();
api.getReportCount(playerName);
// Bans
api.banPlayer(targetName, adminName, reason, durationDays);
api.unbanPlayer(playerName);
api.isPlayerBanned(playerName);
api.getBanReason(playerName);
api.getBanDaysLeft(playerName);
// Warnings
api.addWarning(playerName, uuid, reason, admin);
api.getWarningCount(playerName);
api.clearWarnings(playerName);
// Notes and history
api.addNote(playerName, uuid, note, adminUUID, adminName);
api.getNotes(playerName);
api.getBanHistory(playerName);
Configuration
Defaults are written to config.yml on first launch. Key sections:
database:
type: sqlite
report:
cooldown: 600 # seconds between reports
auto_ban_threshold: 5 # auto-ban after N reports
auto_ban_duration: 3 # days
ban:
types: # define any number of ban types
cheating:
reason: "Cheating"
duration: 30
inappropriate_building:
reason: "Inappropriate Building"
duration: 7
verbal_abuse:
reason: "Verbal Abuse"
duration: 14
builtin:
ban_format: # kick message format
header: "§c§lYou have been banned"
reason: "§7Reason: §f{reason}"
duration: "§7Duration: §f{duration} days"
banned_by: "§7By: §f{admin}"
ban_id: "§7Ban ID: §f{banid}"
footer: "§cContact admin for appeal"
warning:
auto_ban_threshold: 3 # ban after N warnings
auto_ban_duration: 3
ip_ban:
default_duration: "24h"
Run /reportadmin reload to apply changes without restarting. All message text can be customized under the messages section.
Data Storage
All data lives in SQLite at plugins/moyuReport/moyureport.db. On first launch, existing YAML files are migrated automatically. Audit logs go to plugins/moyuReport/audit/ with daily rotation.
Dependencies
- Spigot or Paper 1.20+
- PlaceholderAPI (optional; enables
%moyureport_*%placeholders) - SQLite JDBC driver is shaded into the JAR
Installation
- Place
moyuReport-1.0.jarin your server'splugins/folder - Optionally install PlaceholderAPI
- Start the server — config and database are created automatically
- Edit
plugins/moyuReport/config.ymlto suit your server - Run
/reportadmin reloadto apply changes without restarting

