Flagger

Flagger is a Paper admin-moderation plugin for reviewing flagged players, teleporting to investigate, and applying escalating punishments.

25

Quick challenge

How far can you run before the mobs catch you?

Flagger

Flagger

Flagger is a Paper admin-moderation plugin for reviewing flagged players, teleporting to investigate, and applying escalating punishments with SQLite-backed history.

Features

- Flag players with reasons using `/flaggeradd <player> <reason>`. - Open a paginated flagged-player GUI using `/flagger`. - Consolidate multiple flags for the same player into one report. - Group similar flag reasons automatically. - Review flag details and punishment history in GUI menus. - Teleport to flagged players in spectator mode for safe investigation. - Punish from GUI with chat-entered reason and confirm step. - Escalating ban durations: - 1st offense: 14 days - 2nd offense: 30 days - 3rd+ offense: permanent - Configurable messages, GUI items, titles, sizes, and permissions.

Commands

- `/flagger` - Opens the flagged-player GUI. - `/flagger reload` - Reloads plugin configuration. - `/flaggeradd <player> <reason>` - Adds or increments a grouped flag report for a player.

Permissions

- `flagger.use` - Use `/flagger` - `flagger.add` - Use `/flaggeradd` - `flagger.manage` - Manage moderation GUI actions - `flagger.reload` - Use `/flagger reload`

Data Storage

- Database: SQLite - Default file: `plugins/Flagger/flagger.db` - Tracks: - grouped flag reports per player - grouped reasons/counts per report - punishment history and offense counts

Build

```powershell .gradlew.bat build ```

Output jar:

- `build/libs/flagger-1.0.0.jar`

Configuration

Main config file:

- `src/main/resources/config.yml`

You can customize:

- Punishment day lengths - Punishment execution mode: - `BAN_THEN_KILL` (default, ban first then kill) - `BAN_ONLY` - `COMMANDS` (run custom console commands instead of built-in ban/kill) - GUI titles, sizes, and button materials - Messages and placeholders - Permission node mapping

Command placeholders for `punishments.execution.commands`:

- `%player%` - `%reason%` - `%offense%` - `%punished_by%` - `%ban_until%`

Example custom command mode:

```yml punishments: execution: mode: COMMANDS commands: - "advancedban:ban %player% Flagger: %reason%" ```

Compatibility

- Paper `1.21.4` - Java `21`

License

See `LICENSE`.

ADS