PerWorldPlugins

PerWorldPlugins


PerWorldPlugins v1.2.4

Limit plugins to certain worlds!

PerWorldPlugins v1.2+ was built with compatibility as a top priority. Because of this, we should be fully functional with other plugins. However, in the case that you do stumble upon an incompatibility, we urge you to create an informative ticket!

Plugin Creator: MylesC
Plugin Maintainer: Incomprehendable

What does this plugin do, and how does it work?

PerWorldPlugins will inject the Bukkit core with its own CommandMap as well as changing how the event system works using some neat (and totally not hacky in any way) tricks. This allows you to control which plugins receive the events needed to function, and more importantly, where they receive those events. Using this plugin, you can block plugins in certain worlds. If you're hosting a hybrid server, you're probably overflowing with excitement. Sick of people using mcMMO in your minigames? Block mcMMO in the minigames world! Don't like LWC in your hardcore world? Block that, too!

What's new?

We've updated our plugin to provide maximum compatibility, If you need the technical know-how, we've pushed the changes to our GitHub below. The biggest step in this update is the fact that we have stopped overriding Bukkit's PluginManager, meaning that all plugins should be compatible.

Configuration

This is an example of the config.

limit:
  WorldEdit:
    - world
    - world_nether
  ModReq: []

The configuration of PerWorldPlugins is simple and easy. Referring to the example above, WorldEdit would only work in the worlds 'world' and 'world_nether'. However, ModReq will work in any world.

REMEMBER: If a plugin has no world list, it will work in every world.

exempt-login-events is a self-explanatory feature. This controls whether or not PerWorldPlugins will allow login events to work in every world, no matter the limits. This is highly recommended to be true. It will cause some memory leaks. For example, most minigames plugins will save a player's inventory, so when they log out and log in, their inventory will be returned. If they return to a world that blocks the minigames plugin and this boolean is set to false, their inventory will be lost. Forever.

blocked-msg is also self-explanatory. This is just the string that is sent to players when they try a command from a plugin that is blocked in their current world. And no, there was no way to explain that easier.

You can also use these variables in the string:

  • %player% - The name of the player receiving the message
  • %world% - The name of the world that the player is currently in
  • %plugin% - The name of the plugin that is blocked in the world.

Developers (You shouldn't need this v1.2.0+)

API: Currently we don't support one. If you want one, suggest the features you want!

If your plugin is incompatible, it is mainly because the plugin might extend to SimplePluginManager. PerWorldPlugins will not extend to that class due to its protection; how can you expect us to do so without some more l33t hacky code manipulation?

Here's an example on how to fix it:

Before: (incompatible)

SimplePluginManager spm = (SimplePluginManager)Bukkit.getServer().getPluginManager();
Field scmF = spm.getClass().getDeclaredField("commandMap");


After: (compatible!)

PluginManager pm = Bukkit.getServer().getPluginManager();
Field scmF = pm.getClass().getDeclaredField("commandMap");


Done! That's it. Even as a bonus, if someone decides to make another PluginManager, your plugin will already work with it.

Installation and Use

  1. Download PerWorldPlugins.
  2. Place PerWorldPlugins.jar into your plugin folder.
  3. Start up (or restart) your server.
  4. PerWorldPlugins should have created a folder, called "PerWorldPlugins". Go in there, and edit the configuration file. (server\plugins\PerWorldPlugins\config.yml)
  5. Type /pwp reload in-game, and enjoy the plugin!

Video Tutorials/Showcases

For russian https://www.youtube.com/watch?v=j-mWlh1zMyM

Bugs and Issues

  • PerWorldPlugins may appear in your stacktraces. This does not mean that PWP is the cause of that stacktrace, so we encourage that you are able to comprehend stacktraces. If you are confident that the issue may be our plugin, then please make a ticket!

Benefits

  • Fix up and prevent certain exploits and unfair tactics in places. (like the mcMMO/Minigames example)
  • Cut down on server lag; some plugins like SurvivalGames check player movement, which fires everywhere, costing you RAM and CPU usage.
  • Add more features and plugins into your server.

Metrics


This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:

  • A unique identifier
  • The server's version of Java
  • Whether the server is in offline or online mode
  • The plugin's version
  • The server's version
  • The OS version/name and architecture
  • The core count for the CPU
  • The number of players online
  • The Metrics version

Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true.

http://i.mcstats.org/PerWorldPlugins/Global+Statistics.borderless.png Produced by Metrics

Commands


/pwp version - Displays the version of the plugin.

/pwp reload - Reloads the config.

Permissions


pwp.admin - Gives access to reload and view the plugin's version.

Upcoming Features


  • Reversible configuration! Instead of whitelisting worlds, you can choose to blacklist them.
  • /pwp list E/D - list all of the plugins that are enabled/disabled in your current world.
  • /pwp add <plugin> <world> - configure the world whitelist/blacklist from in-game! Reloads automagically.
  • /pwp set <exemptLogin/blockedMsg/listMode - set configuration values from in-game! Reloads automagically.

Other Stuff

Source Code

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of MylesC MylesC Aug 26, 2014 at 15:37 UTC - 0 likes

    I've submitted a build to the bukkit approval team, it should fix issues with mcore and issues with events not working and reloads. Current build has these problems but the plugin still works, so until 1.2.4 is released 1.2.3 is functional but with limitations.

  • Avatar of MylesC MylesC Aug 26, 2014 at 15:22 UTC - 0 likes

    @Teddestroyer: Go

    this won't allow for that functionality.

    There are limits to this and that is usually it has to be game changing to be able to be limited, groupmanager or ranks can't be affected by us sadly.

  • Avatar of PaintTheZombie PaintTheZombie Aug 25, 2014 at 03:23 UTC - 0 likes

    Not A Problem! Sadly, i haven't been able to catch the beginning of the error since it scrolls down so quickly- it's so fast it almost just blurrs, and since it doesn't actually crash the server, it doesn't record it in the crash files either. But this it the body of what i have been able to catch. And thanks for the quick response, that's more then i can say for the DungeonMaze Team lol.

    http://pastebin.com/MUW7pavj

    Last edited Aug 25, 2014 by PaintTheZombie
  • Avatar of Teddestroyer Teddestroyer Aug 25, 2014 at 00:21 UTC - 0 likes

    I Have Groupmanager And Gameranks installed, i cant seem to get groupmanager to take not take over gameranks. Its VITAL for my prison gm.

  • Avatar of MylesC MylesC Aug 24, 2014 at 22:49 UTC - 0 likes

    @PaintTheZombie: Go

    Could I get a full pastebin of the errors please?

    @harrykennedy: Go

    If configured well & the plugins you used it with used events constantly.

  • Avatar of harrykennedy harrykennedy Aug 24, 2014 at 18:05 UTC - 0 likes

    would this plugin decrees lagg then?

  • Avatar of PaintTheZombie PaintTheZombie Aug 24, 2014 at 02:06 UTC - 0 likes

    Hello,

    I've seem to found a long standing issue with the mix is perworldplugins and the world generator DungeonMaze. I've attempted to contact the world gen creator, and through view past posts they seem to think it's actually an issue with perworldplugins. Running the two plugins independently on my server i have no issue, but once they are both installed I have issues with some errors when creating worlds and traveling through the Dungeon Maze. When I create a world, the command console goes nuts, reading off errors and codes faster then i can copy them sadly. but as I'm traveling through I'm also receiving error codes that are causing incredible lag. I've been receiving a total of 5 different errors in random.

    • [19:31:15 ERROR]: Could not pass event EntityExplodeEvent to Essentials v2.13.1 (allowed in the dungeonmaze world)
    • [19:31:15 ERROR]: Could not pass event EntityExplodeEvent to ChestShop v3.4 (NOT allowed in the dungeonmaze world)
    • [19:31:15 ERROR]: Could not pass event EntityExplodeEvent to WorldGuard v5.8 (allowed in the dungeonmaze world)
    • [19:31:15 ERROR]: Could not pass event EntityExplodeEvent to TreasureChest v8.4.4 (NOT allowed in the dungeonmaze world)
    • [19:31:15 ERROR]: Could not pass event EntityExplodeEvent to mcMMO v1.5.00-b3547 (allowed in the dungeonmaze world)

    Of course there's more that follow each of that errors, but I figure I'd see if anyone had an idea before I went to the extent of paste-bin or anything of that variety. I'm currently running Craftbukkit 1.7.2 Server R0.3. Keep in mind, these are not the only plugins i have on my server, but it's only these 5 that read back in the error. And after looking through tons of pages of posts on the DungeonMaze plugin threads, i've found this issue is something that has existed between these two plugins since 2013. If you have any ideas of solutions please let me know.

    Last edited Aug 24, 2014 by PaintTheZombie
  • Avatar of Qndzy Qndzy Aug 21, 2014 at 21:50 UTC - 0 likes

    how come it wont work for the faction plugin but it works for all other plugins please help

  • Avatar of MylesC MylesC Aug 19, 2014 at 12:55 UTC - 0 likes

    @Duffa13: Go

    Strange.

    @Winters10: Go

    [] means all words, if your putting entries only those worlds.

  • Avatar of Duffa13 Duffa13 Aug 18, 2014 at 12:34 UTC - 0 likes

    Version 1.2.3 was blocking all my players from seeing server messages such as /say etc so I reverted back to Version 1.2.2 and it fixed it instantly!

Facts

Date created
Jun 12, 2013
Categories
Last update
Aug 26, 2014
Development stage
Release
Language
  • enUS
License
Public Domain
Curse link
PerWorldPlugins
Downloads
29,547
Recent files

Authors