Skip to content
YG
All projects
Open source

2026 · Designer & developer

SunshineCommandGuard

Per-group command visibility and execution control for Paper servers

  • Java 21
  • Paper API
  • LuckPerms
  • Gradle
  • bStats
In-game chat showing /plugins replaced by a custom server message
Latest release
v1.4.3
Distribution
SpigotMC #138597
License
GPL-3.0
Runtime
Paper 1.21.x · Java 21

Problem

Every plugin on a Minecraft server registers commands, aliases and namespaced labels that regular players were never meant to see or run. /plugins hands out the entire plugin stack to anyone who asks, and tab-complete exposes admin tooling — but traditional permission plugins only control what a player may run, not what they can discover.

Approach

  • Filters the client command tree per LuckPerms group via PlayerCommandSendEvent: hidden commands are not suggested and are never sent to the client.
  • Blocks execution with a customizable message and supports literal, regex, negative (!entry) and plugin:<Name> matching plus per-command argument rules.
  • Ships a privacy layer for /plugins, /ver and help aliases, and an anti-enumeration shield against namespaced-label and completion probes.
  • Supports group inheritance and priority, per-world groups, temporary grants, permission-sync mode and blocked-attempt monitoring.
  • Includes verification tooling: /cmdguard test explains any decision before it is enabled, and /cmdguard generate writes a review-ready starter config.
  • Publishes a documented developer API (non-cancellable blocked-command event) that other plugins can consume.
Tab-complete suggestions showing a hidden command absent from the list
A hidden command is not suggested and is not part of the client command tree.
An unlisted command being rejected as unknown
A command outside the group list behaves as an unknown command.
Tab-complete suggestions showing an allowed command completing normally
An allowed command still tab-completes normally.

Impact

  • Active release line on GitHub, currently at v1.4.3, with build-from-source instructions and JUnit tests.
  • Distributed through SpigotMC with anonymous usage metrics via bStats.
  • GPL-3.0 licensed with the full source public.
  • Its event API is consumed by a second plugin, Sunshine Sentinel, as a security signal source.