⚡ pReport — Ultra-Optimized Cross-Version Report, Sanctions & Discord Bot Plugin
pReport is an ultra-modern, lightweight, and highly optimized Report Management, Player Sanctions (Warn/Mute/Ban), Criminal Record & Discord Bot plugin designed for Minecraft 1.8 through 26w1+ (Spigot, Paper, Purpur, Leaf, Folia).
Created by Pinou007, pReport provides complete control over player reports, bug reports, automated sanctions, staff workflows, rich Discord webhooks with JDA bot integration, customizable chest GUIs with pink stained glass borders, forbidden words auto-warn filters, player criminal history casier, and full PlaceholderAPI integration.
⚡ Key Highlights
🛡️ Cross-Version Support (1.8 - 26w1+):
Built with zero NMS hardcoding, utilizing cross-compatible reflection (XMaterial) to seamlessly run across legacy Minecraft (1.8 - 1.12) and modern Minecraft versions (1.13 - 26w1+).
🔒 Claim-First & Immutable Closed Reports Workflow:
Enforces staff accountability! Unclaimed reports (PENDING) strictly lock all action buttons until a staff member clicks Claim Report. Once a report is marked as RESOLVED or DISMISSED, it is permanently locked in-game and on Discord to prevent tampering.
🤖 Full Discord Bot Integration (JDA):
Features real-time two-way synchronization via a Discord bot. Discord embeds include 3D player head avatars (https://mc-heads.net/avatar/<target>/128), recent 20 chat messages attached as a .txt file (chat_logs_report_#ID.txt), staff role permission checks, automated channel archiving, sanction logging, and staff slash commands (/report, /warn, /mute, /ban, /unwarn, /unmute, /unban).
📜 Criminal Record & History (/preport history <player>):
Interactive 54-slot chest GUI or chat log displaying a player's complete sanction history (warns, mutes, bans, staff, dates, reasons, and active/expired status).
🚫 Forbidden Words & Auto-Warn Filter System:
Automated chat filter module detecting configured forbidden words/insults. Cancels prohibited chat messages, alerts online staff, and automatically issues a warning sanction (preport warn %player% Auto-warn: Forbidden language).
🎨 Customizable Chest GUIs & Glass Options:
Configurable inventory chest titles and default Pink Stained Glass borders (PINK_STAINED_GLASS_PANE / data 6). Includes dedicated View Captured Chat Logs GUI button (ChatLogsGui.java).
📊 Rich Ban Kick Screen & Templates:
Fully customizable ban kick screen displaying target name, IP address, sanction ID (#%id%), staff name, reason, ban start date, expiration date, and time remaining.
💾 Dual Database Engine & playerdata.yml Storage:
Supports HikariCP connection pooling for SQLite and MySQL, automatically logging player sanctions and reconnect unban/unmute notifications in playerdata.yml.
🛠️ Quick Commands
/report <user|bug> <reason...> — Strictly a player-facing command to file a report against a player or bug. Configurable preset reasons available.
/preport — Open the main interactive Admin GUI panel (Staff/Admin only).
/preport warn <player> <reason> — Issue a warning to an online or offline player.
/preport unwarn <player> [id] — Revoke warnings for a player.
/preport mute <player> <duration> <reason> — Mute an online or offline player (e.g. 30m, 1h, 1d, perm).
/preport unmute <player> [reason] — Unmute a player and notify them upon reconnection/chat.
/preport ban <player> <duration> <reason> — Ban an online or offline player (e.g. 1d, 7d, perm).
/preport unban <player> [reason] — Unban a player and notify them upon reconnection.
/preport note <add|edit|delete|list> <player|id> [text] — Manage staff notes for a player.
/preport history <player> (or /preport casier <player>) — Open the criminal record GUI for a player.
/preport search <query> — Search report database by keywords.
/preport clear <player> — Clear all reports for a specific player.
/preport placeholder [player] — Display all PlaceholderAPI placeholders and live values.
/preport reload — Reload configuration and language files (/languages/en-en.yml, /languages/fr-fr.yml).
/preport info — View plugin version, author Pinou007, active modules, and report statistics.
🧩 Placeholders
The following PlaceholderAPI placeholders are exposed by pReport:
%preport_total_reports% — Total reports created in database.
%preport_open_reports% — Total open pending/claimed reports.
%preport_player_warns% — Total active warnings for player.
%preport_player_mutes% — Total mutes received by player.
%preport_player_bans% — Total bans received by player.
%preport_player_reports_submitted% — Total reports filed by player.
%preport_player_reports_received% — Total reports received by player.
%preport_player_last_seen% — Last played date of player.
%preport_player_first_joined% — First played date of player.
%preport_player_ip% — IP address of player.
%preport_player_notes_count% — Total staff notes saved for player.
%preport_report_reason_ID% — Reason of report #ID.
%preport_report_reporter_ID% — Reporter name of report #ID.
%preport_report_target_ID% — Target name of report #ID.
%preport_report_status_ID% — Status of report #ID (PENDING, CLAIMED, RESOLVED, DISMISSED).
%preport_report_claimed_ID% — Staff member who claimed report #ID.
%preport_report_date_ID% — Creation date of report #ID.
🔐 Permissions
preport.admin — Master admin permission giving access to /preport, Admin GUI, reload, clear, search, history, and staff alerts.
preport.sanctions — Permission to use /preport warn, /preport mute, /preport ban, /preport unwarn, /preport unmute, /preport unban.
preport.notes — Permission to manage staff notes (/preport note).
preport.bypass.forbiddenwords — Bypass forbidden words chat filter and auto-warn.
🧩 Dependencies & Compatibility
- Minecraft: 1.8, 1.12, 1.16, 1.18, 1.20, 1.21, 26w1+
- Software: Spigot, Paper, Purpur, Leaf, Folia
- Optional Hooks: PlaceholderAPI, Discord (JDA 5.0), SQLite, MySQL