
GetPerWorldPlugin
A perworldplugin management plugin enabling whitelist for a pluign to work in a specific world.....
GetPerWorldPlugin is a lightweight, high-performance Paper plugin designed to give server administrators control over where plugin commands can be used. It creates a "per-world plugin" experience by intercepting commands and checking if the player is in an allowed world, without the instability of trying to load/unload plugins dynamically.
Stop players from using economy commands in creative mode, prevent mcMMO grinding in the hub, and keep your minigame worlds clean—all with a simple whitelist configuration.
THE PROBLEM IT SOLVES
On servers with multiple worlds (Survival, Creative, Hub, Minigames), global plugins can cause chaos:
- Economy Exploits: Players selling creative items in survival shops.
- Skill Grinding: Leveling up skills in low-risk worlds.
- Chat Spam: Players using command-heavy features in lobbies.
THE SOLUTION
GetPerWorldPlugin acts as a gatekeeper. When a player types a command:
- It identifies which plugin owns the command.
- It checks if that plugin is restricted in the config.
- If restricted, it checks if the player is in an allowed world.
- If not allowed, the command is silently blocked.
KEY FEATURES
- Whitelist System: You only list the worlds where a plugin should work. All other worlds are automatically blocked.
- Tab Completion Hiding: Restricted commands are removed from the tab-complete list, making the restriction feel native.
- Performance Optimized: Caches configurations and command mappings to ensure 0.1ms overhead.
- Global Bypass: Admins can bypass restrictions with a single permission.
- Alias Support: Blocks the main command and all its aliases automatically.
- Multiverse Ready: Works seamlessly with Multiverse-Core and other world managers.
HOW TO INSTALL
- Download the
.jarfile. - Place it in your server's
plugins/folder. - Restart your server.
- Configure the
config.yml. - Run
/gpw reload.
Requirements:
- Server: Paper (or forks like Purpur).
- Java: Java 21 or higher.
- Minecraft: 1.21.x +
CONFIGURATION
The configuration uses a simple whitelist format. If a plugin is not listed in the config, it works everywhere. If it is listed, it only works in the worlds you specify.
File: plugins/GetPerWorldPlugin/config.yml
plugin-restrictions:
mcMMO will only work in these worlds
mcMMO:
- survival
- survival_nether
- survival_the_end
Jobs restricted to the main world
Jobs:
- survival
Economy plugins restricted to prevent creative exploits
EssentialsX:
- survival
- shops
Slimefun only in the dedicated world
Slimefun:
- slimefun_world
blocked-message: "&c&lBlocked! &7This command is not available in this world."
debug: false
Tip: Plugin names are case-sensitive. Use the exact name shown when you run /plugins in-game.
COMMANDS
/getperworld help- Show the help menu./getperworld reload- Reload the configuration file./getperworld list- View all active restrictions./getperworld info <plugin>- See which worlds allow a specific plugin.
Aliases: /gpw, /perworld
PERMISSIONS
getperworld.admin- Allows access to reload and list commands (Default: OP).getperworld.bypass- Allows the player to use any command in any world, ignoring restrictions (Default: OP).getperworld.*- Grants all permissions.
FAQ
Does this unload the plugin? No. The plugin is still running in the background. This plugin only blocks the execution of commands.
Why can I still see the commands in Tab Complete? The client caches tab completions. Switch worlds or relog to update the tab list.
Does this work with Vanilla commands?
No. Vanilla commands (like /gamemode or /tp) do not belong to a specific plugin and cannot be restricted by this tool. Use a permissions plugin like LuckPerms for those.
My config isn't working!
Check the capitalization of the Plugin Name. mcmmo will not work if the plugin is actually named mcMMO. Use /plugins to check.
