a command security solution plugin designed to keep server commands secure by default.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
ruri 197a0491fc
Some checks failed
Build / build (push) Has been cancelled
rename project to veto
2026-08-02 09:42:28 +08:00
.forgejo/workflows spotless 2026-07-16 16:20:40 +08:00
gradle/wrapper v0-alpha 2026-06-27 09:46:23 +08:00
src rename project to veto 2026-08-02 09:42:28 +08:00
.gitattributes v0-alpha 2026-06-27 09:46:23 +08:00
.gitignore v0-alpha 2026-06-27 09:46:23 +08:00
build.gradle.kts spotless 2026-07-16 16:20:40 +08:00
gradle.properties bump 2026-07-16 16:20:54 +08:00
gradlew make gradle executable 2026-07-16 16:10:57 +08:00
gradlew.bat make gradle executable 2026-07-16 16:10:57 +08:00
README.md rename project to veto 2026-08-02 09:42:28 +08:00
settings.gradle.kts rename project to veto 2026-08-02 09:42:28 +08:00

Veto

Command manager for Minecraft servers. Manages Tab-completion, command aliases, and more.

Requirements

  • Paper 26.2+ (Folia supported)
  • Vault + a permissions plugin (optional, for group resolution)

How it works

Each group has two scopes — namespaces and commands — each with a whitelist and blocklist.

Namespaces match by prefix: minecraft blocks minecraft:give, minecraft:tp, etc.
Commands match exactly: pl blocks /pl but not /plugins.

strict: false — groups layer from lowest to highest weight. A matching whitelist allows and a matching blocklist blocks; a group with no matching rule preserves the lower group's result. Within one group, whitelist wins.

strict: true — only the whitelist of the highest-weight matching non-default group is allowed; its blocklist is ignored. If no non-default group matches, default supplies the allow-set. An empty whitelist therefore blocks every command.

Every player receives default. Vault supplies all memberships (matched case-insensitively); without Vault, memberships come from veto.<group> permissions. Higher weight wins; equal weights follow YAML order.

Players with veto.bypass skip all filtering.

Configuration

enabled: true
strict: true

vault:
  enabled: true

groups:
  default:
    weight: 0
    namespaces:
      whitelist: []
      blocklist: [bukkit, spigot, minecraft, luckperms]
    commands:
      whitelist: []
      blocklist: [pl, plugins, ver, version, help, "?"]

  admin:
    weight: 100
    namespaces:
      whitelist: []
      blocklist: []
    commands:
      whitelist: []
      blocklist: []

Commands

All commands require veto.manage (default: op). Alias: /v.

Command Description
/pg enabled Show current state
/pg enabled <true|false> Toggle filtering on/off
/pg reload Reload config from disk
/pg version Show plugin version
/pg config <group> <scope> list <whitelist|blocklist> List entries
/pg config <group> <scope> add <whitelist|blocklist> <value> Add an entry
/pg config <group> <scope> remove <whitelist|blocklist> <value> Remove an entry

<scope> is namespaces or commands. All config changes save immediately.

Permissions

Permission Default Description
veto.manage op Access to all /v commands
veto.bypass false Skip command filtering entirely