Banner by TycerX
This Plugin allows you to take control of your plugins and limit them to a certain world.
We've fixed PEX in latest version
What does this plugin do, and how does it work?
This plugin injects the bukkit core with our custom PluginManager and CommandHandler. This allows us to control which plugins recieve events and commands. Using the configuration you can control which plugins work in which worlds. Note: This won't apply if the plugin gets all the players on the server etc. This allows us to do things like make it so 1 world has Lockette and another doesn't.
How the config works
This is an example of the config
This will make it so worldedit will only work in world & world_nether, meaning in the end it is not usable. When there is no worlds in the list it will allow it for any worlds, in this example allowing all worlds. Whenever a plugin is added, this config will automatically add it!
When a world has no worlds it defaults to every world.
exempt-login-events is for excluding login events when true, this means if a plugin uses PlayerLogin it will allow it for any world. We advise this to be enabled!
This means if something like Essentials hooks into login and logout it will get the event no matter if you have it limited to a world. We suggest this on as some plugins Log logins and logouts. (For Devs: AsyncPlayerPreLoginEvent.class, PlayerJoinEvent.class, PlayerKickEvent.class, PlayerLoginEvent.class, PlayerPreLoginEvent.class, PlayerQuitEvent.class)
blocked-msg: '&c[Error] This command cannot be performed in this world.'
You can also use these variables %player% - Player Name %world% - The world %plugin% - Plugin Name
blocked-msg: '&cHey %player%, You cannot use %plugin% in this world(%world%)'
This controls the blocked message shown to the user.
API: Currently we don't support one, If you'd like one. Suggest the features you want.
Making your plugin compatible: Generally Incompatible features come from refrences to SimplePluginManager, we do NOT extend to that class which is the reason we explode on some plugins. Why? Because the SimplePluginManager class is protected, How can you expect us to extend to it without some even more hacky byte code manipulation.
Here's an example on how to fix it:
SimplePluginManager spm = (SimplePluginManager)Bukkit.getServer().getPluginManager(); Field scmF = spm.getClass().getDeclaredField("commandMap");
PluginManager pm = Bukkit.getServer().getPluginManager(); Field scmF = pm.getClass().getDeclaredField("commandMap");
And it works perfectly, and on the plus side: If anyone makes another type of Plugin Manager in the future, your plugin is already compatible!
A Quick Guide on how to use the plugin
- Download the Plugin
- Drag it into your plugin folders
- Start your server, then stop it after it loads
- Open the plugins/PerWorldPlugins/config.yml and start customising.
- Start back up your server and your done
- Known to break some plugins on reload due to strange event registering
- Note: Some Plugins may require reboot to set perworld, this is due to how the plugin works and hooks into commands/events.
- If you find incompatibilities please notify us down below!
How it benefits your server
- Ability to make plugins per world
- Can increase server speed & reduce server lag, because some plugins like survival games check movement in every world every time you move. It won't get sent to survival games unless your in right world.
- Note: We will most likely NEVER support some plugins because they do things like getAllPlayers() which we can't really control. Item Naming plugins may also be uncontrollable. We only control plugins which use Events and Commands. Note: Some Multi-World supporting plugins may break this is the way their internals work, we advise not limiting them if they do not function properly.
You can find the GitHub source here - https:github.com/MylesIsCool/PerWorldPlugins
You can download stable builds by looking at the Files tab at the top.
Note: In the future we will be adding metrics to record usage and what environment people are using it in. We don't collect any personal stuff!
Grab me a coffee! The late nights I stay up fixing stuff for you guys :p
Commands (As of 1.0.6)
/pwp version - Displays the version of the plugin.
/pwp reload - Reloads the Config
Permissions (As of 1.0.6)
pwp.admin - Gives access to all admin commands
Table of contents
- Date created
- Jun 12, 2013
- Last update
- Sep 14, 2013
- Development stage
- Public Domain
- Curse link
- Recent files