Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
AntiOPAbuse
Admin command transparency for Paper/Purpur 1.21.x (Java 21).
Version 1.0.0 · Minecraft 1.21 – 1.21.11 · Server-side
AntiOPAbuse watches privileged command usage and makes it visible. Every time an operator (or a configured audience) runs a sensitive command, the plugin can broadcast it in chat, write it to a rotating log file, print it to the console, and optionally post it to a Discord webhook.
What it is not. Despite the name, AntiOPAbuse does not block or cancel anything. It is a transparency and deterrence tool: an audit trail plus visibility for staff. A determined operator can still disable the plugin or run commands through paths that are not covered (see Limitations).
Features
- Command monitoring. Watches a configurable list of sensitive command base names, with
namespace stripping (
/minecraft:givebecomesgive) and an exclusion list. - Monitoring modes.
OP_ONLY(recommended),PERMISSION(players holding a configured node), orALL. Console commands can be included; command-block coverage is not implemented (see Limitations). - Chat broadcast. Audience
ALL,STAFF(holders ofantiopabuse.notify) orNONE, with an optional notification sound and full-command or base-only display. - File logging. Rotating log file with configurable size, optional UUID/IP fields and a custom date format.
- Console logging at INFO or WARNING level.
- Optional Discord webhook with username, embed color and rate limiting.
- Localization. Bundled
en_US,pt_PTandfr_FR(MiniMessage); optional PlayerSettings integration for per-player language.
Commands
Single command /antiopabuse with alias /aoa.
| Command | Description | Permission |
|---|---|---|
/antiopabuse reload |
Reload the configuration. | antiopabuse.admin |
/antiopabuse status |
Show current monitoring status. | antiopabuse.admin |
/antiopabuse test |
Send a test detection/broadcast. | antiopabuse.admin |
Permissions
| Node | Description | Default |
|---|---|---|
antiopabuse.admin |
Access to /antiopabuse admin commands. |
op |
antiopabuse.notify |
Receives broadcasts when the audience is set to STAFF. |
op |
antiopabuse.exempt |
Exempts a player from monitoring entirely. | false |
The antiopabuse.exempt node defaults to false on purpose so that operators are not exempt.
An additional node (default antiopabuse.monitored, configurable) is checked only when the
monitoring mode is PERMISSION.
Configuration
Key config.yml settings:
monitoring:
mode: OP_ONLY # OP_ONLY | PERMISSION | ALL
monitor-permission: "antiopabuse.monitored"
monitor-console: true
monitor-command-blocks: false # not implemented (see Limitations)
monitored-commands: # base names; matched by startsWith
- execute # proxy command — watched so it cannot bypass the list
- function
- give
- gamemode
- op
- deop
- ban
- stop
# ... and more
broadcast:
enabled: true
audience: ALL # ALL | STAFF | NONE
show-full-command: true
logging:
enabled: true
file: "logs/commands.log"
max-size-mb: 10
discord:
enabled: false
webhook-url: ""
Limitations
Be honest with your expectations; document these for your staff:
- Proxy commands. Detection is a denylist of base command names.
executeandfunctionare monitored by default so/execute run give ...is flagged, but the plugin does not yet recursively unwrapexecute ... run <cmd>to evaluate the inner command. Consider adding permission/plugin management commands (e.g.lp,pex) to the list for your setup. - Command blocks are not monitored (
monitor-command-blocksis currently a no-op). - Not a block. AntiOPAbuse cannot stop an operator from disabling the plugin, editing its config or running the server without it. Its value is deterrence and catching casual abuse.
Installation
- Requires Paper or Purpur 1.21+ and Java 21.
- Drop
AntiOPAbuse-1.0.0.jarintoplugins/and start the server to generateconfig.yml. - Review
monitored-commands, choose yourbroadcast.audience, and optionally set a Discord webhook, then run/antiopabuse reload.
Dependencies
| Plugin | Purpose |
|---|---|
| PlayerSettings | Optional per-player language resolution (companion plugin). |
No required dependencies. No database or web server.
Support / Source
Source and issues: https://github.com/henriquescrrrr/carrageis-antiopabuse
License
Released under the GNU General Public License v3.0. See LICENSE.


