promotional bannermobile promotional banner

OP Monitor

A Minecraft server side plugin to record exclusive moves of OP players.

# OPMonitor — Minecraft Paper Plugin

Broadcasts OP player actions to all online players. Fully config-driven via `config.yml`.

## Features

- **Full command monitoring** — any command executed by an OP is broadcast (controlled by `monitored-commands`)
- **Creative inventory tracking** — picking items from the creative inventory is broadcast in real-time
- **Gamemode change detection** — both `/gamemode` and F3+F4 switcher are broadcast
- **OP kills** — broadcasts when an OP kills another player
- **Exempt players** — players listed in `exempt-players` are silently ignored
- **Cooldown** — `cooldown-ms` limits broadcast frequency per player (default 0 = none)
- **Language support** — built-in `en` / `zh_cn`, switch via `language` in config
- **History logging (optional)** — writes all events to a file when `history.enabled: true`

## Installation

1. Download `OPMonitor-1.1.0.jar`
2. Place in your server's `plugins/` folder
3. Restart the server
4. Edit `plugins/OPMonitor/config.yml` to your liking
5. Run `/opmonitor reload` to apply changes

## Commands

| Command | Description |
|---------|-------------|
| `/opmonitor` | Show help |
| `/opmonitor status` | Show plugin status and monitored command count |
| `/opmonitor reload` | Reload config and apply changes on the fly |

## Permissions

| Permission | Default | Description |
|------------|---------|-------------|
| `opmonitor.admin` | OP | Access to `/opmonitor` commands |
| `opmonitor.see` | Everyone | See broadcast messages |

## Configuration (`config.yml`)

```yaml
enabled: true              # Enable/disable the plugin
language: en               # Broadcast language: en or zh_cn
broadcast-prefix: "&6[OP Monitor] &r"
cooldown-ms: 0             # Cooldown per player in ms, 0 = no cooldown

exempt-players:            # OP players who won't be monitored
  - Tagin_T

history:
  enabled: false           # Write history log to file
  file: "plugins/OPMonitor/history.log"

monitored-commands:        # Commands to broadcast (case-insensitive, no leading /)
  - gamemode
  - tp
  - give
  - ban
  - kick
  # ... 88 commands by default, add or remove as needed
```

## Broadcast Format

```
[OP Monitor] PlayerName executed OP command: "/gamemode creative"
[OP Monitor] PlayerName picked 64 diamond from Creative
[OP Monitor] PlayerName changed gamemode to CREATIVE
[OP Monitor] PlayerName killed VictimName
```

- Player name: **blue**
- Items/args/commands: **green**
- Commands are wrapped in quotes: PlayerName executed OP command: `"/cmd args"`

## History Log

When `history.enabled: true`, all broadcast events are written to `history.file` (default: `plugins/OPMonitor/history.log`).

One event per line:

```
[yyyy-MM-dd HH:mm:ss] Tagin_T picked 1 diamond_block from Creative
[yyyy-MM-dd HH:mm:ss] Tagin_T runed /gamemode creative
[yyyy-MM-dd HH:mm:ss] Tagin_T changed gamemode to CREATIVE
[yyyy-MM-dd HH:mm:ss] Tagin_T killed Hiverfy
```

Format: `[timestamp] playername action-description`

## Building

Requires JDK 17+. The project ships with Maven Wrapper — no global Maven install needed:

```bash
./mvnw clean package -DskipTests
```

The compiled JAR is at `target/OPMonitor-1.1.0.jar`.

## License

MIT

OP Monitor Team

profile avatar
  • 4
    Projects
  • 59
    Downloads

More from BEGINWITHF