1.0.0
Compatibility
Changes
Changelog
All notable changes to Slash Report (Paper/Spigot/Bukkit/Purpur) are documented in this file.
[1.0.0] — 2026-08-09
Initial public release. Full-featured player report system for Paper 26.2 with in-game staff management and Discord bot integration.
Added
Player Commands
/report <player> <reason> [details...]— File a report against another player./repalias for/reportfor convenience.- Tab-completion for online player names and configurable reason list.
- Per-player cooldown (default: 60 s) to prevent report spam.
- Duplicate-report collapsing — if the same reporter targets the same player with the same reason within a configurable time window (default: 300 s), the existing report is updated instead of creating a new one.
Staff Commands (report.staff permission)
/reports list [open|claimed|closed] [page]— Paginated, filterable report list./reports view <id>— Full report detail view./reports claim <id>— Claim ownership of a report./reports close <id> [note]— Close/resolve a report with an optional resolution note.- Real-time in-game notification to all online staff when a new report is filed.
Discord Bot Integration
- JDA 6.5.0 bot that posts a rich embed for every new report, including a player-head thumbnail.
- Interactive Claim and Resolve buttons restricted to a configured Discord staff role.
- Embeds update in-place when a report's status changes (claimed → resolved).
- Graceful degradation: in-game reports continue working even when the Discord bot is offline or misconfigured.
Data Layer
- SQLite support (default — zero external setup required).
- MySQL support as a config-driven alternative for networked or multi-server hosting.
ReportRepositoryinterface for clean storage abstraction.SqliteReportRepositoryandMysqlReportRepositoryimplementations.
Configuration (config.yml)
- Discord bot credentials section (
bot-token,channel-id,staff-role-id). - Customisable report reasons list (drives tab-completion).
- Configurable
cooldown-secondsandduplicate-window-seconds. - Full storage section (
type: sqlite | mysql) with MySQL connection details. - Fully localizable
messagessection for all player-facing strings with color-code support (&-style codes).
Permissions
| Node | Default | Description |
|---|---|---|
report.report |
true |
File reports |
report.staff |
op |
View/manage reports + receive alerts |
report.immune |
false |
Cannot be reported |
report.admin |
op |
Full admin access |
Build
- Gradle 9 + Shadow plugin (
com.gradleup.shadow 9.6.1) fat-JAR build. - JDA and all transitive dependencies relocated under
com.thirdy.reportplugin.libs.*to prevent classpath collisions with other plugins. - Jar minimization enabled — only referenced classes are included.
- Targets Paper API 26.2 / JDK 25.
Roadmap (Planned — Not Yet Released)
The following features are tracked for future versions:
| Feature | Target Version |
|---|---|
| BungeeCord / Velocity cross-server report sharing | v1.1.0 |
| In-game chest GUI for filing and reviewing reports | v1.1.0 |
Discord-side slash commands (/reports in Discord) |
v1.2.0 |
| PlaceholderAPI integration | v1.2.0 |
| Reward system for accurate reporters | v1.3.0 |
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:k6OrOvgc:TwKQMIzK"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:k6OrOvgc:TwKQMIzK"
}

