VanillaGuard icon

VanillaGuard -----

Make your server feel 100% vanilla. Hides commands players can't use. Zero config.



═══════════════════════════════════════════════════
VanillaGuard
═══════════════════════════════════════════════════

Make your server feel 100% vanilla — even with 50 plugins installed.

Lightweight • Zero-configuration • Production-grade • 1.8.8 native


─── THE PROBLEM ───

Every plugin shouts at your players differently:

• Essentials: "You do not have permission to perform this command."
• WorldGuard: "You don't have permission."
• LuckPerms: "You don't have permission to use this command."
• Bukkit core: "I'm sorry, but you do not have permission..."

Players instantly see your server runs plugins. The "vanilla feel" is broken before they even build anything.


─── THE SOLUTION ───

VanillaGuard intercepts every permission-denied message at the Netty packet level and replaces it with the exact vanilla 1.8 response:

Unknown command. Type "/help" for help.

No prefix. No color. No plugin name. Identical to vanilla Minecraft.


─── KEY FEATURES ───

✓ Universal interception — works with ANY plugin (Essentials, WorldGuard, LuckPerms, WorldEdit, AuthMe, custom plugins)
✓ Multi-language — built-in English and Russian phrase lists, easily extensible
✓ Hides commands in tab-complete — players never see /worldedit:wand suggestions
✓ Hides commands in /help — clean help menu showing only what the player can use
✓ Blocks namespaced commands — /bukkit:plugins and /minecraft:me are hidden
✓ Suppression window — contextual interception catches late async messages
✓ Public API — other plugins can integrate via SuppressionService
✓ Whitelisting + Blacklisting — fine-grained control
✓ Permission caching — LRU cache prevents performance hits on big servers
✓ Thread-safe — built for high-population servers
✓ Fail-safe — if NMS reflection fails, event-level protection still works
✓ Zero external dependencies — only Spigot API


─── BEFORE & AFTER ───

WITHOUT VanillaGuard:

/worldedit:wand
> You don't have permission for this command.

/gm 1
> You do not have permission to perform this command.

/region info
> You don't have permission.

WITH VanillaGuard:

/worldedit:wand
> Unknown command. Type "/help" for help.

/gm 1
> Unknown command. Type "/help" for help.

/region info
> Unknown command. Type "/help" for help.


─── COMPATIBILITY ───

Server versions:
• Spigot 1.8.8
• PaperSpigot 1.8.8
• PandaSpigot 1.8.8
• Any 1.8.x build using NMS v1_8_R3

Tested with:
• Essentials / EssentialsX
• WorldEdit / WorldGuard
• LuckPerms / PermissionsEx
• AuthMe
• LiteBans
• ProtocolLib
• PacketEvents
• TAB plugin
• CommandBook


─── INSTALLATION ───

1. Download VanillaGuard-1.0.0.jar
2. Drop it into your plugins/ folder
3. Restart your server (do not use /reload)
4. Edit plugins/VanillaGuard/config.yml if needed
5. Run /vg reload to apply changes

That's it. Default settings work for 99% of servers.


─── COMMANDS ───
/vanillaguard reload — Reload configuration
/vanillaguard status — Show plugin status
/vanillaguard cache — Clear permission cache

Aliases: /vg, /vguard


─── PERMISSIONS ───

vanillaguard.admin — Access to admin commands (default: op)
vanillaguard.bypass — Bypass all command hiding (default: op)


─── PERFORMANCE ───
• O(1) permission lookups via per-player LRU cache
• Cached NMS reflection — no per-packet field iteration
• Lock-free packet handling on Netty event loop
• Tested on 200+ concurrent players with no measurable overhead
• Memory-bounded — no leaks, no unbounded caches


─── DEVELOPER API ───

Other plugins can request VanillaGuard to suppress chat to a player:

import me.hiteex.vanillaguard.api.SuppressionService;
SuppressionService.suppress(player);

This replaces the next ~400ms of chat to that player with the vanilla unknown-command response.


─── FAQ ───

Q: Does this break my admin commands?
A: No. OPs and players with vanillaguard.bypass are exempt.

Q: My plugin uses a custom permission message — will it leak?
A: Add the phrase to "phrases:" in config.yml. Or just rely on the suppression window — it catches messages right after the blocked command.

Q: Does it work with 1.12 / 1.16 / 1.20?
A: This version targets 1.8.8 specifically. Higher version ports are planned.

Q: Will it conflict with ProtocolLib or PacketEvents?
A: No. VanillaGuard installs its Netty handler at the tail of the pipeline, after other handlers — guaranteed last-chance interception.

Q: Does it support PlaceholderAPI or Folia?
A: Not needed. VanillaGuard has no dependencies and ships as a single small JAR.


═══════════════════════════════════════════════════

Free • Open-source-friendly • Lifetime updates

If you find a bug or want a feature, please leave a review or message me here on Spigot.

Made with care by hiteex
Resource Information
Author:
----------
Total Downloads: 10
First Release: May 22, 2026
Last Update: May 26, 2026
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings