AnotherReports
A full-featured player report plugin with i18n, GUI, SQLite, and Discord webhook support
AnotherReports

---
Overview
AnotherReports is a structured and production-ready moderation plugin for Paper 1.21.4 (Java 21).
It provides a complete report workflow system including:
- Player report submission - GUI-based moderation panel - Report history system - SQLite persistent storage - Discord webhook integration - Anti-spam protection - YAML-based multilingual system - Asynchronous database and webhook operations
Designed for clean architecture, performance stability, and long-term maintainability.
---
Compatibility
- API Version: Paper 1.21.4 - API Version: 21 - API Version: 1.21
---
Player Reports
Command
``` /report <player> <description> ```
Rules
- Target must be online - Self-reporting is not allowed - Description length: 5–200 characters - Duplicate prevention within 2 minutes - Per-player cooldown - Rate limit protection
---
Moderator Interface
Command
``` /reportlist ```
Features
- 45-slot paginated GUI - Click to open detailed report view - Accept / Reject actions - Integrated history viewer
Status System
- OPEN - ACCEPTED - REJECTED
---
Report History
Command
``` /reporthistory <player> [page] ```
- 10 entries per page - Stored in SQLite
Tracked Data
- Reporter - Target - Description - Status - Reviewed by - Creation timestamp - Review timestamp
---
Multilingual System
Language files location:
``` plugins/AnotherReports/lang/ ```
Supported Languages
- en.yml (English) - uk.yml (Ukrainian) - ru.yml (Russian) - de.yml (German) - es.yml (Spanish) - pl.yml (Polish)
You can add additional languages by creating new YAML files.
Config Example
``` language: "en" ```
Features
- YAML-based translation files - Automatic fallback to English - Placeholder support - No hardcoded GUI or message strings - Reload support via /reports reload
---
Discord Webhook Integration
Config Example
webhook: enabled: true url: "" username: "AnotherReports" avatarUrl: "" mentionRoleId: ""
Triggers
- On report creation - On accept - On reject
All webhook operations are asynchronous and do not block the main server thread.
---
Anti-Spam System
Config Example
cooldownSeconds: 60 maxReportsPer10Minutes: 3
Includes
- Per-player cooldown - Rate limiting - Duplicate detection
---
Permissions
- reports.use — Use /report - reports.admin — Access moderation panel and history - reports.notify — Receive new report notifications
---
Commands
``` /report <player> <description> — Submit report ``` ``` /reportlist — Open moderation GUI ``` ``` /reporthistory <player> — View history ``` ``` /reports reload — Reload configuration and language files ``` ---