Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for lordon1a

Hide commands from tab-complete, block their execution, and keep your plugin list private

Report SunshineCommandGuard?

Hide commands from tab-complete, block unauthorized execution, and keep your server's plugin stack private — all with per-group rules and tools that explain exactly why a command is visible, hidden, allowed, or blocked.

Minecraft servers often expose far more command information than players actually need. Plugin commands, administrative tools, aliases, and namespaced commands can appear through tab-complete or commands such as /plugins and /version.

SunshineCommandGuard gives server owners direct control over that visibility without requiring you to redesign your existing permission setup.

Features

  • Tab-complete filtering — control which commands players can discover through command suggestions.

  • Execution blocking — commands outside a player's allowed rules can be rejected as unknown commands with a customizable message.

  • Server privacy protection — protect commands such as /plugins, /pl, /ver, /version, /about, and /help.

  • Per-group profiles — define different command policies for different LuckPerms groups, including priority and inheritance behavior.

  • LuckPerms synchronization — online group and permission changes are reflected automatically without requiring players to reconnect.

  • Flexible matching — literal commands, regex: patterns, negative !entries, and plugin:<Name> expansion.

  • Namespace-aware security — plugins, bukkit:plugins, and minecraft:plugins remain distinct security-sensitive command tokens. Temporary grants do not accidentally expose namespaced variants.

  • Hidden aliases — keep commands runnable while removing them from tab-complete.

  • Argument-level rules — create per-command argument allow/deny rules. For example, allow /gamemode survival while rejecting /gamemode creative.

  • Live verification — /cmdguard test <player> <command> shows the resolved group, matching rule, and reason a command would be visible, hidden, allowed, or blocked.

  • Safe-by-default configuration — CommandGuard ships disabled so you can verify your rules before enabling filtering on a live server.

  • Update notifications — CommandGuard can check GitHub Releases and notify the console and administrators when a newer version is available.

    Updates are never downloaded or installed automatically.

  • bStats metrics — included and relocated to avoid conflicts with other plugins.

Screenshots

All screenshots below were taken on a live production server.

image

Hidden — the command does not appear in the player's normal tab-complete suggestions while remaining runnable when your rules allow it.

image

Blocked — a command outside the player's allowed rules is rejected as an unknown command.

image

Server privacy — /plugins returns your configured response instead of exposing the real plugin list.

Requirements

  • Paper 1.21.x or a compatible Paper fork
  • Java 21
  • LuckPerms is optional

Without LuckPerms, players fall back to the configured default group.

Players with the bypass permission or OP status skip filtering, so always test your setup with a non-OP account.

Folia support is not currently guaranteed.

Installation

  1. Download SunshineCommandGuard-1.4.1.jar.
  2. Place it inside your server's plugins/ folder.
  3. Start the server once to generate the default configuration.
  4. Edit plugins/SunshineCommandGuard/config.yml.
  5. Configure the commands available to each group.
  6. Test your rules before enabling them:

/cmdguard test <player> <command>

  1. Set:

enabled: true

  1. Reload CommandGuard:

/cmdguard reload

Important

A badly configured command filter can leave players with few or no visible commands.

For this reason, SunshineCommandGuard ships with:

enabled: false

Always verify your default group with a non-OP test account before enabling filtering.

Configuration Example

[CODE] enabled: true

bypass-permission: "sunshine.cmdguard.bypass"

groups:

default:

priority: 0

blocked-message: "<red>Unknown command."

commands:

  - help

  - spawn

  - msg

  - "regex:^(msg|tell|w|r|reply)$"

  - "!op"

  - "!stop"

hidden: []

args: {}

[/CODE]

Update Notifications

By default, CommandGuard can check the official GitHub Releases page for newer versions.

Example:

[CODE] updates: enabled: true notify-console: true notify-admins: true [/CODE]

When a newer release is available, the console and authorized administrators can receive a notification.

SunshineCommandGuard never automatically downloads, replaces, or installs plugin updates.

Disabling updates.enabled disables the external update check.

More Information

Full configuration reference, FAQ, source code, and releases:

https://github.com/lordon1a/SunshineCommandGuard

License

GPL-3.0

Derivative works must remain open source under the terms of the license.

Issues and pull requests are welcome.

Information

Category
Admin Tools
Published
September 7, 2026
License
GPL
22Downloads
1Stars

Pinned Versions

  • R
    Paper1.21–26.3Velocity4.2.0–4.2.1

Members

1