PLUGIN OWNERSHIP CHANGE As of 5/10/2021, ZathrusWriter no longer participates in making plugins for Minecraft / Spigot. Therefore, this plugin's ownership is being transferred to
@MrMicky who previously also overtook (and kept under good reputation) the WorldEditSelectionVisualizer (WESV) plugin from ZathrusWriter.
I, ZathrusWriter, hereby give permission to MrMicky to take over the maintenance and coding of my AdminAnything plugin, keeping it as a Premium resource. MrMicky accepts all of the benefits and responsibilities resulting in this step (such as premium buyers support and continuous maintenance and coding of AdminAnything).
forward-compatible with future MC versions unless whole Minecraft undergoes a dramatic code rewrite (such as 1.13 was), AA remains forward-compatible with all of the future MC versions (even if this page won't be updated right away to implicitly say that)
find conflicts in commands on your server do you have Essentials and WorldEditinstalled side-by-side? ever realized they both contain a /tree command and that Spigot is randomlychoosing which plugin will act when you actually run the /tree command?
resolve plug-in conflicts have a final say at what the /tree command should really do rather than letting Spigot randomly choose between /essentials:tree and /worldedit:tree for you
disable unwanted commands get rid of all the commands you don't want your players (including OPs) to use (players with the correct AA permission assigned can still use them, if you choose so)
mute commands (up to Java 8 and MC 1.16.X only!) if you have commands which are run by automation scripts (world backups, ranks checks etc.) that spam your console, or even send unneeded messages to your OPs, you can completely mute them using AdminAnything
display detailed info about any server command (with search) not sure which plugin contains this mysterious /helloworld command? you can review list of all commands, along with all their aliases and permissions with a single command - /lc use filters to drill-down to the exact command (or set of commands), then check any online player for access to that command and/or permission
add new virtual permissions to any command on your server sometimes, the permissions provided by a plugin are just not enough. now you can add your own virtual permissions for any command, including its parameters and fine-tune your plugins in a way that wasn't possible before!
redirect commands when you need to redirect "/shop", so it actually runs "/warp shop", simply use AdminAnything and set this up in seconds
build help for your players by utilizing the power of AA's functionality of listing all commands available to a player (and with a bit of optional manual intervention), it's possible to build an automated help system that will show your players their available commands (while you can hide any excessive ones from them as well!)
automatic tab-complete disabler for all the commands that players really don't have access to - no manual configuration required at all (other than setting up your groups and permissions correctly on the server, that is)
fully customizable if you find out that there's a feature which you don't need in AdminAnything, you can simply turn that feature off in the plugin's config
chat GUI! if you or your moderators use AdminAnything in game, you can now click on various elements of AdminAnything's output to perform actions instead of typing commands into chat (and trying to remember their usage)
chat actions players with the right permissions can execute arbitrary command that's configured in AdminAnything's config.yml file when they click on different chat areas (nickname, join/leave message...)
chest GUI if you get a lot of chat action, you may prefer the chest GUI to chat actions, as it's easier to use. Players with the right permissions can also execute arbitrary commands configured in AdminAnything's config.yml file through this interface and there is only 1 chat action to click next to each nickname for it.
translations all the text in AdminAnything is translatable and you can easily create your own translation files and even use color codes in them (and you're welcome to contribute these files back to the project, of course!). You will find an AdminAnything/languages folder in your server's plugins directory where you can put new language files in the following format: [lang_file_prefix]-[AA_version].properties
List of commands for AdminAnything
/aa_listcommands- Lists all loaded commands for all plug-ins. Options available via "/aa_listcommands ?"
permission: aa.listcommands
default permission restriction: OPs only
aliases: listcommands, lc
/aa_checkcommandconflicts - Checks for commands and aliases that conflict with each other and display them.
permission: aa.checkcommandconflicts
default permission restriction: OPs only
aliases: checkcommandconflicts, ccc
/aa_fixcommand - Tells a conflicting command which plugin should perform it.
permission: aa.fixcommand
default permission restriction: OPs only
aliases: fixcommand, fixc
/aa_unfixcommand- Unfixes a fixed conflicting command, so the server will handle its execution in a default way.
permission: aa.unfixcommand
default permission restriction: OPs only
aliases: unfixcommand, unfixc
/aa_disablecommand - Disables a command on the server, so it's ignored if anyone tries to run it.
permission: aa.deletecommand
default permission restriction: OPs only
aliases: delcommand, delc, disablecommand, dcmd
/aa_enablecommand - Restores a command disabled by aa_diablecommand to its working state.
/aa_pluginperms - Displays all permissions for a given plugin along with their descriptions.
permission: aa.checkpluginperms
default permission restriction: OPs only
aliases: pluginperms
/aa_ignorecommand - Adds the given command to a list of commands for which conflicts are being ignored.
permission: aa.ignorecommand
default permission restriction: OPs only
aliases: ignorecommand, ignorec, ic
/aa_unignorecommand - Removes the given command from the list of commands for which conflicts are being ignored.
permission: aa.unignorecommand
default permission restriction: OPs only
aliases: unignorecommand, unignorec, uic
/aa_addperm - Adds a virtual permission for a command (including any provided parameters, i.e. "/kit abc") that can be used to enable/disable access to it.
permission: aa.allowaddperm
default permission restriction: OPs only
aliases: addperm
/aa_delperm - Removes a virtual permission added via the /aa_addperm command.
permission: aa.allowremperm
default permission restriction: OPs only
aliases: delperm,remperm
/aa_addredirect - Adds a command redirect.
permission: aa.allowredirectadd
default permission restriction: OPs only
aliases: addredirect,ar
/aa_delredirect - Removes a command redirect.
permission: aa.allowredirectremove
default permission restriction: OPs only
aliases: delredirect,remredirect,remred,rr
/aa_actions - Shows all available actions for the given command.
permission: aa.showactions
default permission restriction: OPs only
aliases: -none-
/aa_gui - Shows a chest GUI with actions that can be performed on the given player.
permission: aa.chatnickguicommand
default permission restriction: OPs only
aliases: -none-
/aa_version - Shows current AdminAnything version.
permission: aa.showversion
default permission restriction: OPs only
aliases: -none-
/aa_reload - Reloads AdminAnything configuration
permission: aa.reload
default permission restriction: OPs only
aliases: -none-
/aa_disablehelpcommand - Disables a command from showing up in /aa_playercommands listing, optionally for a single permission group only.
permission: aa.disablehelpcommand
default permission restriction: OPs only
aliases: disablehelpcommand, disablehc, adhc
/aa_enablehelpcommand - Re-enables a command to be shown in /aa_playercommands listing again.
permission: aa.enablehelpcommand
default permission restriction: OPs only
aliases: enablehelpcommand,aehc,enablehc
Additional permissions for AdminAnything
aa.bypassdeletecommand, aa.bypassdeletecommand.all - Allows running any command that was disabled. default permission restriction: OPs only
aa.bypassdeletecommand.command_name - Allows running the disabled command provided as "command_name". For example, to enable a player run the disabled "/ban" command, the permission would be: "aa.bypassdeletecommand.ban" default permission restriction: OPs only
aa.allowchatnickclick - Allows clicking on nicks in chat which will perform action set in the config. default permission restriction: OPs only
aa.allowjoinleaveclick - Allows showing and using administrative links when a player joins/leaves the server. default permission restriction: OPs only
aa.notifynewversion - Allows for chat notifications on player join when a new version of AdminAnything is available for download. default permission restriction: OPs only
aa.checkplayercommands.own - Allows to display player's own commands available to them. default permission restriction: available to everyone
aa.checkplayercommands.admin - Allows administration of hidden commands in the /aa_playercommands listing. default permission restriction: OPs only child nodes auto-enabled by this permission:
aa.disablehelpcommand
aa.enablehelpcommand
aa.fulltabcomplete - Allows to see tab completions for all commands on the server that the server will disclose to this player. default permission restriction: OPs only
aa.allownickgui - Allows showing and using administrative chest GUI when a player clicks on other player's username in chat. default permission restriction: OPs only
Configuration
features this configuration section enables and disables features of AdminAnything to enable a feature, change its "enabled" parameter to "true" to disable a feature, change its "enabled" parameter to "false" please DO NOT update the "linked" sections
listcommandsDefaults these are the defaults for /aa_listcommands output - you can choose what exactly you want to see in that output when you perform this command without the need to explicitly use this command's parameters (i.e. instead of doing /aa_listcommands desc:yes aliases:yes ... you can set this up in this configuration section)
listCommandsSeparator if you'd like to import a list of all server commands into for example MS Excel via its CSV file import, this option will help you with that. By setting this to for example a pipe - | - you will be able to create output similar to this line: /aa_listcommands|[AdminAnything]|Lists all loaded commands for all plug-ins.|[/listcommands; /lc]|[aa.listcommands]
chatNickClickActions contains customizable actions that are displayed before player's name in chat to those with "aa.allowchatnickclick" permission when a player clicks on one of these actions, a command set up in this config will be executed default value for this configuration creates 2 actions - [P] and [C] which list current player permissions and commands, respectively:
... the "%PLAYER%" part of command will be replaced by the actual name of the player the command is executed for
chatNickGUI contains customizable actions that are displayed in a chest GUI when you click on a [A] chat action before player's name shown to players with "aa.allownickgui" permission when a player clicks on one of these actions in the GUI, a command set up in this config will be executed default value for this configuration creates 7 common actions:
... the "%PLAYER%" part of "command" and "title" will be replaced by the actual name of the player the command is executed for
chatJoinLeaveActions contains customizable actions that are displayed on player's join and leave events under their username in chat to those with "aa.allowjoinleaveclick" permission when a player clicks on one of these actions, a command set up in this config will be executed default value for this configuration creates 5 actions, 3 join and 2 leave messages
... the "%PLAYER%" part of command will be replaced by the actual name of the player the command is executed for
chatKickAfterIpBan when set to "true", anytime the "ban-ip" or "banip" command is used, all players on the server will be checked for their IP and kicked out of the server if their IP matches the currently banned one. Set to "false" to disable this functionality.
banIpCommands a list of commands on the server used to IP-ban a player. This is, so AdminAnything know when to kick IP-banned players out of the server when the chatKickAfterIpBan feature is enabled. default values are the obvious suspects:
Code (Text):
banIpCommands:
- banip
- ban-ip
pluginsWithFullWriteAccessViaAPI when enabled (via features.apifullaccess.enabled), other plugins that you allow in this config section will have the ability to alter AdminAnything's fixed, muted, disabled... commands lists completely. Use with care and only when strictly necessary. Always consider what this can cause to the stability of AdminAnything and subsequently your server if a plugin's author asks you to add their plugin into this list.
debugMode when turned on, debug information is outputted from some parts of AdminAnything. Turning this on is only relevant when AdminAnything's author asks you to do so to help them fix a bug you may be having. Defaults to false.
lang language identifier for the language file located in plugins/AdminAnything/languages. A file has to start on this identifier (for example en-gb-1.7.2.properties) in order for this file to be included in AdminAnything as a translation. You can use your own files to create your own translations. If you feel you can contribute them back, don't be shy to post them in the forum Defaults to "en-gb".
Advanced use of AdminAnything commands
show all available filters for /aa_listcommands /aa_listcommands ?
list commands for a specific plugin only /aa_listcommands plugin:Essentials
list commands only for multiple specific plugins /aa_listcommands plugin:Essentials,mcMMO
exclude specific plugins from commands listing /aa_listcommands plugin:-Essentials,-mcMMO
list a group of specific commands that start/end with a specific text /aa_listcommands search:ban* - will list "ban", "ban-ip", "bank" /aa_listcommands search:*ban - will list "ban", "unban", "tempban" /aa_listcommands search:*ban* - will list "ban", "unban", "tempban", "ban-ip", "bank"
search through commands and their descriptions /aa_listcommands search://paste /aa_listcommands search:"some more words"
include aliases in commands listing /aa_listcommands aliases:yes
include permissions in commands listing /aa_listcommands permissions:yes
hide permission descriptions from commands listing /aa_listcommands permissiondescriptions:no
hide descriptions from commands listing /aa_listcommands description:no
show command usage in the listing /aa_listcommands usage:yes
go to page X in the commands listing /aa_listcommands 3 /aa_listcommands page:3
disable / re-enable multiple commands at once /aa_disablecommand ban clear heal /aa_enablecommand ban clear heal
unfix multiple commands at once /aa_unfixcommand ban clear heal
filter through player permissions /aa_playerperms player1 fly - will bring up all permission nodes for player1 with the text "fly" contained in them
mute a sub-command /aa_mutecommand "say hello" - will mute "/say hello" and also "/say hello mum", "/say hello dolly" and anything else that follows the "/say hello" part of the sub command
add redirect to a command with parameters /aa_addredirect "help me" "say I could really use some help. Is an admin around?" - this will redirect "/help me" command to "/say I could really use some help. Is an admin around?" but will leave all other help commands (such as "/help", "/help tp" ...) intact
building automatic commands help for your players
de-op yourself and / or temporarily remove your admin rank from your player
give yourself the rank you're building the commands help for
give yourself (the user, not the rank) the permission aa.checkplayercommands.admin
execute /aa_playercommands and you'll see exactly what your players will see
click the [G] in chat to hide/show a command globally - i.e. hide it from everyone or show it back to everyone on the server
click the [P] in chat to hide/show a command for your current permission group only
remove the aa.checkplayercommands.admin permission from your user and check the /aa_playercommands output - this is exactly what your players will see
fine-tune using /aa_disablehelpcommand and /aa_enablehelpcommand from console or after op-ing yourself again, if necessary
adding commands into /aa_listcommands and /aa_playercommands which AA cannot find itself
update your permdescriptions.yml file with all commands that AA cannot list because they are actually parameters to a single command (such as "/pm help" or "/pm info") ... use the following structure to add these sub-commands into the file:
Code (YAML):
manualPermissions: # this is the first line of permdescriptions.yml, put your plugin name below it plugman: # this is the plugin name for which commands you want to add, indent it with 2 spaces and make sure the name is LOWERCASE plugman info: # this is the plugin command for which description and permissions you will be adding, indent it with 2 spaces again - $Displays information about plugins on your server.
# this is the command description, always first, always starts with $ - plugman.info=Allow use of the info command.
# this is the permission node for this command - at least one node is required - some.other.perm=If needed.
# this is another optional permission node for this command
Frequently Asked Questions:
Is this compatible with Spigot version XY? AdminAnything is being tested in Spigot / CraftBukkit starting version 1.7.10 and all the way up to the latest release. You can therefore consider it compatible with any stable-enough released version of Spigot, PaperSpigot and CraftBukkit in these versions.
Important PaperSpigot note: if you experience errors with AdminAnything, you might want to run your server directly rather than using "paperclip.jar", as this could prevent AA from working correctly on some MC versions and Java implementations. There is a file called "patched_[server-version].jar" located in a "cache" directory which is created via paperclip.jar... that's the actual PaperSpigot server and if you run it directly (java -jar patched_1.9.jar), all will work as expected.
I can't see permissions for some of the commands on my server. Because very few popular plugins actually do list their permission nodes for each command in the plugin.yml file, there is no place for AdminAnything to read these from. In a continued effort, I'm manually creating database of permissions and their descriptions from websites of popular plug-ins and using those to show you this information. If you're missing permission information from a plug-in, or find some information incorrect please let me know in the discussion section and I will include/fix this in the next plugin update.
I used PlugMan / some other plugin manager to load a plug-in dynamically but AdminAnything is not listing it. In such case, please use the /aa_reload command to reload AdminAnything, which will also clear any internal caches and thus reload list of currently active plugins on the server.
What's /aa_ignorecommand for? Plugins that already do what you want them to do (for example override Essentials' ping command by their own) would normally display in list of conflicting command when you run /aa_checkcommandconflicts. If, however these commands already do what you need, you can add them to a list of ignored commands and AdminAnything will not list them as conflicting anymore.
What about Bukkit's own commands override system? There is a working override system where you can define overrides in a similar manner to AdminAnything and even create your own commands. This has been in CraftBukkit for a while now and works well in certain cases but fails to work completely in others. For example, that system will not work for plugins that register their commands dynamically and do not use plugin.yml files. As a result, you can't use this system to redirect commands and make aliases pointing to WorldEdit, WorldGuard and many more plugins that register their commands on-the-fly. You can learn more about how this system works by using this Wiki link.
Can't Skript do all this? You can certainly do what AdminAnything does in more than one way. Bukkit's commands override is one of them (although has limited capabilities). Skript is a programming engine in which you can code what AdminAnything does to a point. You can, for example never mute commands via Skript as you can do with AdminAnything. Furthermore, you will need to learn another "programming language" in which you would need to basically write the whole AdminAnything logic again yourself. Also, it's worth noting that Skript is a plugin itself which means it's an interpreter for its own scripts - and as such it's bound to be slower and less optimized than most methods in AdminAnything. To conclude, coding AdminAnything in Skript is not impossible (apart for some of the functionality), but it does have its drawbacks. (I would like to thank @LimeGlass for pointing me to Skript and Bukkit's commands override system.)
This plugin utilizes
BStats metrics system. Various server information is collected and sent to bstats.org unless opted out. Opting out of this service can be done by changing the value of enabled from true to false in file Plugins/bStats/config.yml.
Bugs and suggestions Please don't post bugs or suggestions in the review section, but please ask on my Discord server or on the discussion page