PlugMan
What is PlugMan?
PlugMan is a simple, easy to use plugin that lets server admins manage plugins from either in-game or console without the need to restart the server.
Features
- Enable, disable, restart, load, reload, and unload plugins from in-game or console.
- List plugins alphabetically, with version if specified.
- Get useful information on plugins such as commands, version, author(s), etc.
- Easily manage plugins without having to constantly restart your server.
- List commands a plugin has registered.
- Find which plugin a command is registered to.
- Tab completion for command names and plugin names.
- Dump plugin list with versions to a file.
- Check if a plugin is up-to-date with dev.bukkit.org
- Permissions Support - All commands default to OP.
Commands
Command | Description |
---|---|
/plugman help | Show help information. |
/plugman list [-v] | List plugins in alphabetical order. Use "-v" to include versions. |
/plugman info [plugin] | Displays information about a plugin. |
/plugman dump | Dumps plugin list and versions to a file. |
/plugman usage [plugin] | List commands that a plugin has registered. |
/plugman lookup [command] | Find which plugin a command is registered to. |
/plugman enable [plugin| all] |
Enable a plugin. |
/plugman disable [plugin| all] |
Disable a plugin. |
/plugman restart [plugin| all] |
Restart (disable/enable) a plugin. |
/plugman load [plugin] | Load a plugin. |
/plugman reload [plugin| all] |
Reload (unload/load) a plugin. |
/plugman unload [plugin] | Unload a plugin. |
/plugman check [plugin| all] [-f] |
Check if a plugin is up-to-date. |
Permissions
Permission Node | Default | Description |
---|---|---|
plugman.admin | OP | Allow use of all PlugMan commands. |
plugman.update | OP | Allow user to see update messages. |
plugman.help | OP | Allow use of the help command. |
plugman.list | OP | Allow use of the list command. |
plugman.info | OP | Allow use of the info command. |
plugman.dump | OP | Allow use of the dump command. |
plugman.usage | OP | Allow use of the usage command. |
plugman.lookup | OP | Allow use of the lookup command. |
plugman.enable | OP | Allow use of the enable command. |
plugman.enable.all | OP | Allow use of the enable all command. |
plugman.disable | OP | Allow use of the disable command. |
plugman.disable.all | OP | Allow use of the disable all command. |
plugman.restart | OP | Allow use of the restart command. |
plugman.restart.all | OP | Allow use of the restart all command. |
plugman.load | OP | Allow use of the load command. |
plugman.reload | OP | Allow use of the reload command. |
plugman.reload.all | OP | Allow use of the reload all command. |
plugman.unload | OP | Allow use of the unload command. |
plugman.check | OP | Allow use of the check command. |
plugman.check.all | OP | Allow use of the check all comamnd. |
Configuration
File | URL |
---|---|
config.yml | https://github.com/r-clancy/PlugMan/blob/master/src/main/resources/config.yml |
Source
PlugMan is open source and hosted on GitHub; feel free to fork, star, or contribute to PlugMan by making pull requests and opening issues.
Sponsors
To view those who enable this project to be developed, please refer to the GitHub page.
Tutorial
Samkio has made a tutorial showing the basic usage of the plugin.
User Content
- Logo: HariboPenguin
- Tutorials
- English (Samkio): http://www.youtube.com/watch?v=E_vQSEfYckA
- Spanish (cloud_strife_91spain): https://www.youtube.com/watch?v=euJH1XGunAk&feature=youtu.be
- German (ThePhantom123): https://www.youtube.com/watch?v=SYJfpGJQlvM&feature=youtu.be
- Portuguese (AbsintoJ): https://www.youtube.com/watch?v=VfoB6HlVeYQ
Notes
- PlugMan requires (at least) Java 7 to run.
- If you have an error, please use a paste service (such as http://hastebin.com/) instead of the comment box.
@Digitalink2008
To do what you want, you would need to unload the plugin. Currently, Bukkit doesn't support unloading a single plugin, but it has been a feature that I have wanted for a while. I have a feature request on their tracker site, and when/if it is added, expect a quick update from me to add that feature :)
New question. It looks to me as if disabling a particular plugin ( in this case SpawnerAdjuster ) does not release the jar file correct? I wanted to update the plugin without a server reboot and had hoped Plugman would be the key. Did i get that wrong?
Digi
@Digitalink2008
I implemented the test command using SuperPerms, as shown here: https://github.com/ryanclancy000/PlugMan/blob/master/src/me/ryanclancy000/plugman/PlugManCommands.java#L114
Since bPerms supports SuperPerms, you will have no issues with the test command :)
hey ryan,
I'm curious about something. How did you implement /plugman test?
Did you build in support for all the common permissions systems or it it just a superperms functionality? I didn't see vault listed anywhere so I figured that wasn't it.
I only ask because I'm going to start using plugman and that feature seems quite handy. I'm currently running bPerms + Vault.
@OriginalMadman
Strange coincidence, but I'm glad it's not me causing your issues :P
Interesting... and I agree... I also think I was a little mislead - and it is actually not plugman after all. I believe it was a certain mobfarm on the server actually. It was weird though because I checked that, and only a thousand or so mobs on. However it seems it was >500 in the same block that might have done it. Therefore the delay, and no issues on restart. I have no idea why - or if it was just coincidentally something happening exactly when I disabled plugman (twice). I'm gonna put Plugman in again - because I really like it. If it is what I think it is, and as you say - it should be no problem. Hope i did not cause too much of a stir. I really couldn't believe the conclusion myself either ;)
@rylinaux
Yes, I'm as stumped as you. I really have isolated it down. I only have an issue when plugman is loaded - even if I don't use it... a few hours later java eats 100% cpu. It is probably like you say, it shouldn't happen - but there is some kind of interference or something, I really don't know.
I agree - I have done jar swapping enough too... but I can't do too many restarts when server is full of people :/. That is why I like plugman and nolagg, simple (although limited) ways to discern what plugin causes lag.
I don't think it is the actual plugin - since nolagg doesn't show anything aout plugman stealing cycles, but something the plugin does or intervenes in - bukkit itself most probably. I tried different dev versions, cutting all plugins down to basics (sk89's, mv, pex, vault, iconomy, only) AND different java versions (1.702, 1.703, 1.6.32) AND different startup java invocations - with different garage collectors.
As for isolated event, I wouldn't be so sure its not happening for a lot of people - it is just very very hard to isolate cause It goes bad after 40-60 minutes or so if it is there, and it happened 24/7 the last few days. . I have now run the exact same setup and config for 7 hours straight w/o a prolem - the only difference being removing the plugman jar...
@OriginalMadman
Honestly, I have no clue why PlugMan would supposedly be the cause of lag on your server...
PlugMan only interacts with the server when you do a command, it uses no listeners thus making it so it doesn't interact with the server constantly. The only way I could see PlugMan causing lag would be if the server hung or died when you used a PlugMan command.
This seems to be an isolated event, nobody else has reported this happening. I'll take a look over the code to see if I notice anything out of place, but other than that there isn't much I can do.
Also, if you want to check what plugin is really causing the lag, don't just use plugman to disable the plugin to check for lag, but remove the jar file and actually restart the server, it works much better.
Hi, I really liked the plugin - but it was giving me some issues.
For the past few days: After 1-2 hours of running fine, our server started lagging severely down to 15-16tps. Java process at 100% cpu was the reason. I tried to find the issue and did a lot of nolagg examine dumps, but it didnt show any plugin eating anything more than it should. First I thought it was SQL, and then I thought it was a bukkit dev issue. Finally I decided to manually disable every plugin we had (on a running server) that was non essential (like worldguard/multiverse etc) - your plugin is AWESOME for doing that smoothly. Thanks :). However, after having constant lag - and removing all but the most core plugins, nothing helped. In frustration i did /plugman disable plugman - and yes, the lag went away... Also it hasn't come back and I dont have to restart the server ever hour anymore. The only difference out of 90+ plugins was plugman. No errors, no other foreseeable issues. I hope you can sort that issue out - because I do love the functionality.
@chrisknyfe
It changes on a plugin to plugin bases. Basically, if the plugin being reloaded calls the saveConfig() method within the onDisable() method, the config will be reloaded, so it's author dependant for other plugins. After looking into CraftBukkitUpToDate, as I suspected, saveConfig() isn't called in the onDisable() :P
I notice that when I do /plugman reload <plugin>, that plugin's configuration files are never reloaded. I've tried this on plugins like CommandBook and CraftBukkitUpToDate. Are plugin reloads supposed to refresh the configuration for that plugin? Or are my plugins simply not being reloaded?
@Apple_columb
Open the jar with Winrar, if you are on Windows, or similar and delete the "aliases: pm" line in the plugin.yml located inside the jar.
Any way of disabling fucking "pm" alias? It's terrible, really terrible. /pm is from commandbook, I can't deprive my plyaers feature to use PrivateMessages.
@Royalgamer06
Unload has been something I've wanted to add for a while, but there really isn't a good way to unload plugins with Bukkit. The clearPlugins() method that is used in the purge command unloads the plugins, but the problem is that it loops through all the servers plugins, not just a single one. I've made a new feature request which can be found here: https://bukkit.atlassian.net/browse/BUKKIT-1103
@zackpollard
You can find out how to use the Metrics tracking here, it's quite simple :P https://github.com/Hidendra/metrics.griefcraft.com/wiki/Usage
@weja93
If you don't want somebody to use the purge command, you can simply add a negative permission node to a certain group. ^plugman.purge in bPermissions or -plugman.purge in PermissionsEx. As an added precaution to deny ops from using it, you can open up the jar yourself and change the plugman.purge default from op to false in the plugin.yml :)
@weja93
Hey...
If you dont want anyone to use that command then deny them the permission plugman.purge This will disable anyone being able to use that command... there may even be something in the config for it :P
@ryanclancy000 Hi
Is it ok if i use your source to get that metrics tracker into my plugins? Also do you need to host some software on your own webserver or is there already a site for that
Thanks
Zackpollard
I was planning to start using this plugin. Then you suddenly add command to purge all plugins. Why would you do that? Who would need that command?
I'm afraid it's too dangerous to use plugin with that command on my server. Even the trustworthy admins might accidentally run that command.
Just uploaded version 1.6.4. This has a new dangerous purge command (disables and removes all plugins) and changes around the chat formatting.
@OriginalMadman
I'm still waiting for native support for unload within Bukkit, it's something I've wanted to add for a while :P If you wanted to help though, maybe "bump" the following link :P
https://bukkit.atlassian.net/browse/BUKKIT-1103
Seems to work excellently... Mr SuperMeatBoy (another favorite game). Thanks..
bump on the "unload"
@Cayorion
Bukkit doesn't have native support for unload the way that it does for enable, disable, and load. There may be some way to do it though, and it's something I'll have to look in to in the future.