when AA's config file is incorrectly formatted, it gets replaced by a default config which resets all values and removes all click and gui actions. This fix adds saving configuration into a backup file (config-file.yml.backup) on each load of AA, so you can salvage your old config and correct YAML errors in it. This way you don't loose your custom (albeit incorrect) values.
Explanation: Java 11 is soon to be the only way to run a Minecraft server. I've recently discovered that Java 11 fixed a bunch of security holes. These allowed us to directly adjust Minecraft server classes to stop sending messages to console and players. I tried my best to work around these fixed in Java 11 but I was unsuccessful. The only other way for me to try would be to learn how to work with byte-buddy-agent Java tool and utilize it to do what I previously did by hand. However, since my time is currently fairly limited by the job I'm paid for, I'm only willing to do this for a generous donation of at least $500 (refundable in case I'm unable to provide a working muting solution). Therefore, I'm sorry to say that so far, it seems that MC 1.16.X will be the last version to support commands muting. Muting will be still available for older servers, even in new AA versions. However, it will not be usable on 1.17+ servers with any accuracy anymore.
I'd like to thank
@Nysxl for helping me uncover the big bad bug with default configuration values being persistently re-added to AA despite user removing them from it.
Version 2.4.4 ============= Maintenance version
Fixed:
NullPointerException fixed while loading AA on servers that lag a lot during startup
AA always regenerating default sample config values for clickable chat nick actions, leaving users unable to remove them
Added:
text in language file can now contain color codes that will translate into real colors in chat
error during AA plugin load when the EasyChat plugin is not found on server
chest GUI did not open for OP but rather for the player who that OP ran /aa_gui command for :-DD
Updated:
moved tab-auto-complete routine into a separate thread, so it doesn't lag out servers with too many plugins (and therefore too many perms to check for players)
after the chest GUI update, servers without ProtocolLib experienced chat doubling and incorrect [A] prefix chat positioning on a line before the actual chat message
/aa_debug did not store debug state in the database when DB backend was used for configuration
Updated:
first update check after AA is enabled is now asynchronous, so it doesn't pause the server until that check finishes
As promised, a new way to
better handle all your chat traffic wih regard to the chat nick click actions has been added to AdminAnything. Sporting a nice little chat [A] prefix for all of your chat messages, please welcome - the
chest GUI!
This addition should make it easier to actually do what you need to do if you have many common commands that you ordinarily run for your bad behaving players (such as mute, ban, kick, freeze...)
Instead of having to fish for the correct action next to the nickname in chat, you can simply click the [A] next to it and run that command from this chest GUI - which doesn't move and is more visual to work with.
Enjoy!
Version 2.4.0 ============= New major version
Added:
a new nick-click GUI - there is a new [A] prefix in player chat next to player names which will execute the new /aa_gui command to present actions from your config in a nice chest GUI
a new command was added to open the chest GUI - /aa_gui <Player>, can be enabled or disabled separately to the nick click [A] chat prefix via features configuration option "chatnickguicommand"
new configuration sections: chatNickGUI, as well as new configuration feature section (so you can potentially disable the nick click [A] chat prefix): chatnickgui
new permission nodes: aa.allownickgui to show nick click [A] prefix actions in chat, aa.chatnickguicommand to allow access to the /aa_gui command
Fixed:
permissions for EssentialsSpawn and EssentialsXMPP modules of EssentialsX corrected in permdescriptions.yml file, as this has previously resulted in /spawn, /setspawn, /setxmpp, /xmpp and /xmppspy commands not showing in the auto-generated tab-complete menu for player-enabled commands
automatic tab-complete builder contained error, where commands unavailable to player could still be show in tab-complete if these commands were prefixed by a plugin name (essentials:ban etc.)
a random NullPointerException for automatic tab-completes disabler
NullPointerExceptions when server lags and AA is too slow to respond to ProtocolLib's packets sending to adjust chat with prefixes from config
After a while of maintaining status quo of AdminAnything, the first wave of some small but helpful changes has arrived
Namely, I've updated nick click actions to include an
optional per-action permission node as well as a more condensed chat display of those actions next to nicknames.
There is more coming soon, since for larger servers, chat links might be a bit of a challenge if you're trying to chase that exact clickable link for that single player who just spammed your whole chat... So, stay tuned for some goodies - soon!
Version 2.3.6 ============= Maintenance version
Added:
each clickable chat action can now have ana optional permission node assigned, so only those players with this node would be able to see that chat action link (configuration section updated: chatNickClickActions)
Updated:
clickable chat actions next to nicknames are now condensed into a single square bracket to save space in chat
Fixed:
AA failed to fix Core commands (give, ban, kick...) back to their server originals (minecraft:ban, minecraft:kick etc.) via /fixc give minecraft:give
listing commands via /aa_listcommands for plugin that contained no permissions returned "null" as permissions information
/aa_addredirect cmd1 cmd2 Param1 Param2 - was lowercasing parameters, which could result in an incorrect redirection (such as /aa_addredirect me "say Oh, what a great day!" redirecting to "say oh, what a great day")
/aa_addredirect failed to handle wrongly quoted commands to redirect to, such as /aa_addredirect me "it's all about me
/aa_addredirect wrongly redirected to empty command if the command to redirect to ended with a space, for example /addredirect about "say hello "
PlaceholderAPI plugin loads its expansions in a way that disables AA to check those commands for their owning plugin, resulting in AA crashing during startup
The guys who used AA before or asked me this question at least once would know that AA is made to be forward-compatible with all of the MC versions that don't break the code as badly as the 1.13 rewrite did. Therefore let me say this - AA was forward-compatible with 1.16 versions of MC even before they ever existed :-D
Now, since there's almost always something to optimize of polish due to how the Spigot API changes between versions, I used the opportunity to do just that. And so I'm releasing the officially 1.16.x-compatible version of AA for you all to enjoy
Version 2.3.4 =============
Maintenance version
Updated: * official compatibility with Spigot versions 1.16.x (although AA was already forward-compatible with 1.16 versions beforehand)
chat GUI for /aa_listcommands showed "PermDesc" as clickable filter option when not in multiline mode
it was not possible to disable any commands that start with // (usually WorldEdit commands) with /aa_disablecommand
the aa.bypassdeletecommand.all permission for disabling commands was actually being checked as aa.bypassdeletecommand.any, so checking for it did not work
internally checking for multiple bypass permissions (example: aa.bypassdeletecommand, aa.bypassdeletecommand.all and aa.bypassdeletecommand.say) did not always work as intended
adding a multi-level manual permission via /aa_addperm (say.badword) resulted in that permission being impossible to remove via /aa_delperm
So folks, from this version on, AdminAnything - as a really first plugin out there to do this - contains automatic tab-complete disabler.
Yes, there are free tab disablers which you can manually craft to disable command after command and they probably work fine (most that I tried don't on 1.13+ version though). But having it done automatically for you? How sweet is that!
This funcionality is tied to /aa_playercommands, so to manage the tab-complete list, please check out the Advanced use spoiler on AA's overview page.
There is a very small caveat on MC versions 1.13+, as the tab-complete code changed in those versions. It is therefore not possible to actually
add any commands to the tab-complete list, which excludes the possibility to add your own commands from the permdescriptions.yml file that you might have hand-crafted. These will still be visible via /aa_playercommands as well as on earlier versions of Minecraft.
This functionality - of course - comes with a bypass permission -
aa.fulltabcomplete - which can be used to show all commands regardless of the commands available to the player.
Version 2.3.0 ============= New major version
Fixed:
routine for handling clickable nick links in chat next to player names might have been initialized multiple times upon plugin reload, thus unnecessarily wasting some server resources when ProtocolLib was enabled
one more IllegalAccessError instance fixed for Minecraft 1.7 - looks like these only occur on plugin reload, which disables and then re-enables AA, so most of you guys should be safe from these by default
chat action links next to nicknames functionality was not being enabled (possibly for a long time now!), so please don't be surprised if you left this functionality on and didn't see anything special next to your player names because now you will
custom command definitions in the permdescriptions.yml file caused an ArrayOutOfBounds exception in certain situations
potential NullPointer Exception when player leaves the server and AA still tries to send them chat messages (i.e. a leave message)
Added:
Oh Wow! Automatic tab-complete disabler! Now, seriously... how cool is this?
With the help of AA's /aa_playercommands command, players can now see their own available commands. But until now, they would also see ALL of the server commands if they simply pressed TAB in chat. Well, not anymore they won't!
With this functionality, players now only see what they really have the permission for.
But please make sure you also DISABLE all the commands you don't want your players to use via /aa_disablecommand, such as the /? command (/aa_disablecommand ?). Otherwise - no matter what they'll see with tab-complete, they'll still be able to execute all of those "hidden" commands!
commands from permdescriptions.yml (added in version 2.2.0) are now shown in /aa_listcommands as well as /aa_playercommands.
This means that if you now have all PlugMan's commands set in permdescriptions.yml, you will finally be able to see them all in the full commands listing.
These commands, their permissions and descriptions are - of course - fully searchable and can be filtered using all /aa_listcommands filters
This has to be some breakthrough or something...
Changed:
tab-completion for /aa_fixcommand will now offer only relevant plugins to fix a command to so, a tab-complete for "/aa_fixcommand god" will potentially show you the plugins Essentials and WorldGuard
when tab-completing /aa_fixcommand with the relevant plugin name (for example "/aa_fixcommand god Essentials."), the tab-completion will automatically suggest the valid command name (i.e. "god" instead of asking you whether you want to list all 132 Essentials commands)
There don't seem to be a shortage of bug fixing and feature coding every time I get back to Java programming and revive the life of this plugin
So, without further ado, here's what I fixed this time
Version 1.9.3 ============= Maintenance version
Fixed:
/aa_fixcommand gave incorrect error message if the second parameter / command was not found in any of the plugins on server
/aa_fixcommand was unable to hard-wire commands from plugins back to server's own commands (for example, /aa_fixcommand time minecraft:time would fail)
Updated:
when the "permdesc" or "usage" filter is used with /aa_listcommands but "multiline" argument is missing, a warning about not showing these values in simple mode is added to the beginning of listing ... also apologies for leaving the "showpermissiondescriptions" set to "true" in the defaul config :-/ ... you might want to change that configuration and do /aa_reload to prevent the new message from showing if you're using the default config
command redirects when using console work as expected (previously it didn't work with parametrized commands, so redirecting "say" to "me" and typing "say hello" in console would not redirect)
command redirects work with parametrized commands to redirect to (adding a redirect failed if you used /aa_redirect say "me works")
commands disabling for WorldEdit's special commands (//sel, etc.) now works correctly
With the help of
@PawPawDude (thanks for all those detailed error logs again), I was able to identify and fix an error which prevented the
/aa_mutecommand to work on PaperSpigot versions 1.13 and later.
Wow, did it really take almost a year to code this?
Of course not! I've just been dragged over to some real life experiences... you know how it is.
But behold! The Database configuration backend functionality is now in (as is compatibility with Spigot 1.14 and 1.15 - sorry for this delay)!
Here's the changelog:
Version 1.9.0 =============
New major version
Breaking Change:
due to many problems trying to compile AdminAnything in Java 7 in my current IDE, this plugin is from this point on only compatible with Java 8+, meaning I'm dropping support for Minecraft versions 1.6 and earlier. Sorry guys, however it seems like the whole world now moved on to Java 8 in the meanwhile
Fixed:
compatibility with Spigot versions 1.14.4 and 1.15.1
all AA commands work for commands without parameters again
the initial blocking update check for AdminAnything was replaced by one that does not pause the server until AA gets response back from Spigot
default listing options for /aa_listcommands in the config file are no longer ignored
/aa_pluginperms now lists descriptions from the internal permissions file correctly (without an initial "=" sign)
Added:
AA configuration now supports MySQL databases. This means that you can share your AA config among multiple servers without the need to manually rewrite all config.yml files and do an /aa_reload on each of these servers afterwards.
File-based configuration is still supported, so you can choose which one to use.
Some rules that apply for DB-backends when upgrading your AA version:
plugin's config.yml file now only contains a single option: configBackend (set to "file" for file-based, "db" for db-based configs)
plugin's normal (file-based) configuration file is renamed to config-file.yml
if you want to use db-based configuration, set configBackend in the config.yml file to db and update your config-db.yml file with your connection settings
db-based config is basically a YAML file representation in the database, so you're free to edit it there and all instances of AdminAnything will pick it up every sync_check_interval_seconds seconds (option in config-db.yml)
all existing configs are automatically inserted into the database upon first run with db-based configuration enabled
you can update your config-db.yml and config.yml and simply do /aa_reload for all this to work, there's no need to restart your server
While working on new AA functionality, I've realized that the manually-crafted list of permission descriptions for plugins that do not implicitly provide them to us was out of date. This list is used in
/aa_listcommands command when you use the
multiline, permissions and
permissiondescriptions parameters to - for example - see list of permissions from Essentials. This was previously impossible to accomplish due to the lack of these permissions in the plugin.yml configuration file for Essentials, so I created a list which AA internally uses to provide them for you.
These out of date data were largely due to EssentialsX taking over the original Essentials development, and as such it has removed some of the original commands and permissions or introduced new ones.
All is now tip-top once again and you should start seeing correct descriptions and commands in your console for plugins such as Essentials AND EssentialsX once again
It seems that - eager as I was to release the last tab-completion update - this last update broke tab-completion for commands like
/aa_fixcommand. It caused these AA commands to generate errors when trying to tab-complete a list of plugins on the server. This is now fixed and all tab-complete-related functionality is restored in AA.
As promised, Tab Completion for the
/aa_listcommands has been implemented in this minor version.
Next step will be the inclusion of database support, so you can have your fixed, muted, disabled commands etc. on multiple servers at once by using the same DB-backed configuration, instead of having to copy that same config files to each of the servers separately. Get ready for this
After long time of AA working as intended without the need to update it for every single new Minecraft / Spigot version, I've came across a few bugs and simple unfinished stuff. So, I decided to release an update today. Enjoy
Version 1.8.0 =============
New major version
Fixed:
languages with apostrophes will have these displayed correctly from the language file (they were doubled /''/ before)
chat nick click actions functionality now works as intended when enabled without ProtocolLib
commands muting didn't work since the 1.7.0 rewrite, so it's back
Added:
tab completion for every AA command, except for /aa_listcommands (that one will take a bit more time coding due to all possible filtering options and their combinations)
Sorry about this one guys, I didn't run a full check after implementing translations and it seems there were some edge case scenarios I missed. Please
delete your AdminAnything/languages/en-gb-1.7.2.properties file (if that file exists) when upgrading to this version. Thank you.
Version 1.7.3 =============
Maintenance version
Fixed:
errors were appearing in console when debug mode was enabled and /aa_reload was being run
apostrophes in language file caused text not to appear and translate correctly
/aa_listcommands failed with an exception when the "perm" parameter for showing permission was present and no permissions for a command in the custom permissions dictionary were found
Yes, they arrived! Translations have finally arrived after waiting 7 months for the completion of code rewrite. My apologies to everyone who's been
waiting for this feature that long. You can create your own translations and even put
color codes in quite easily! (see the
main page for details - search for "translations")
Please note that CraftBukkit's UTF-8 (international characters handling) can be fairly strange, so if you're seeing strange letters in your console, then please check your Minecraft game client as well before reporting it as a bug. If it works on the client, it's the Server's fault, not this plugin's. Thanks
Also, it's now also possible to pay for AdminAnything with BitCoins or LiteCoins and get it for some discounted price (these virtual currencies are pretty volatile, so you can get AA for REALLY cheap if you buy at the correct moment
)
Version 1.7.2 =============
New major version.
Fixed:
statistical data are being sent to bStats with correct keys now
configuration enabling/disabling option added for /aa_debug please note: this is turned OFF by default now, so if your /aa_debug shows nothing, please make sure you have this feature enabled in your config file ;-)
Added:
translations!
this includes a configuration "lang" value which you can set to whatever prefix your language file has in order for AdminAnything to use it
There haven't been too many bugs after the rewrite but there were some. So here's what's been discovered thanks to our new testing and static analysis procedures
Version 1.7.1 =============
New major version.
Fixed:
/aa_mutecommand could attempt to modify server classes twice when ran for the first time after a server restart and there are some commands muted already
/aa_addperm did not show confirmation message on successful permission creation
/aa_addperm did not check for existence of the command we are adding permissions for
/aa_addredirect did not check for existence of commands
/aa_fixcommand and /aa_addredirect will now correctly add commands to overrides/redirects lists when these commands are provided with strange letter case. Example: /aa_addredirect GoD help -> is now same as writing /aa_addredirect god help (would not allow to remove the GoD redirect before, as it wouldn't find it on the server)
removed some forgotten debug lines from AdminAnything's output
Added:
missing features added to the configuration, so you can enabled/disable them as all the others. Added were config options for /aa_actions, /aa_reload and /aa_version commands.
new configuration section "banIpCommands" was added that holds list of all commands used on the server to IP-ban players. This is used when the "kick after IP-ban" feature is enabled, so AdminAnything knows after which command(s) to kick a player out.
on old servers (prior to Minecaft 1.6), all of the clickable chat link features will be auto-disabled on first run to prevent showing unnecessary warning messages, since these features will never work there
new configuration section "pluginsWithFullWriteAccessViaAPI" with an appropriate enabling config option "features.apifullaccess.enabled" was added (disabled by default). What this does is it allows other plugins to access custom events of AdminAnything that are used to update lists of fixed, muted, disabled... commands. In other words - when this is 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.
Updated:
the second parameter of /aa_fixcommand can now be the plugin name itself - no need to write the full "PluginName.commandName" crap if we know we're fixing "god" to "Essentials:god" Example: /aa_fixcommand god Essentials -> this now is the same writing /aa_fixcommand god Essentials.god
This version is a major step forward in security, stability and expandability of AdminAnything. It contains everything from previous versions + brand new
documented API which can be used by other plugin developers to utilize some functionality of AdminAnything.
Additionally, this finally allows me to work on the more interesting features, some of which will soon (really!) include:
translations
tab completions
artificial intelligence, checking all the stuff you had to use commands for automatically for you
This version - being a complete rewrite and still extensively tested - might still have some bugs to iron out, so if you find any, please do let me know and I'll promptly get to fixing these for you
Finally, let's look at the changelog.
Version 1.7.0 =============
New major version.
Fixed:
/aa_listcommands no longer eats up all chat space when a plugin description is too big (such as is the case with PermissionsEx)
/aa_playercommands and /aa_pluginperms did not show additional permissions from the internal manually-crafted permissions file which contains permissions of popular plugins that forgot to add them to their plugin.yml description file
Added:
/aa_pluginperms can be used to search for permissions for the given plugin in the same way /aa_playerperms works Example: /aa_pluginperms essentials -> will list all permissions for Essentials /aa_pluginperms essentials tp -> will list all permissions for Essentials that have "tp" in their name
Version 1.6.1 ==============
New maintenance version.
Fixed:
/aa_fixcommand works properly again when a core command hijacked by a plugin (ban, pardon, say...) needs to be fixed back to the core command (minecraft:ban, minecraft:say ...)
/aa_fixcommand will list all usable plugins when a player tries to use "Core" as plugin to hard-wire a command to. Example: /aa_fixcommand ban Core:ban -> will show list of plugins that can be used (i.e. Essentials, minecraft), so you can rewrite that to: /aa_fixcommand ban minecraft:ban
/aa_addredirect will now correctly display an error message when the second argument is missing
Updated:
updater now checks the new, officially supported Spigot API URL to determine new AdminAnything version availability
Added:
/aa_fixcommand with a single parameter (i.e. /aa_fixcommand ban) will now show clickable list of plugins to which that command can be hard-wired, so you can do that by simply clicking the right plugin in chat. This is also the case if "Core" was used as a command (see fix #2 above).
A few notes on the rewrite of this plugin: it's slowly progressing alongside of my other projects, notably an open-source clone of the Travian game. That was kinda my focus until today but is now stable enough, so I can return to AA on a little more full-time basis and continue improving it. Apologies for the long delay in bringing you guys new and fantastic functionalities, such as AA always brought
OK guys, this is a prelude to some more cool changes in the near future. It's rather a big update with a smaller plugin size and better compatibility. Stay tuned, AA is transforming into something... interesting
Version 1.6.0. ==============
New major version.
Fixed:
/aa_listcommands now shows all Core commands for versions prior to 1.7 (they don't get registered the usual way, bah)
as promised in version 1.55, nick click actions (including PLAYER LEAVE ones ) are now customizable... sorry to only cater for join messages before! ... with this update, the config changes slightly in that it now contains a "type" value for each command - this can be either "join" or "leave", depending on when you want that action to be displayed in chat. your config will be updated automagically config section in the description page was also updated to reflect these latest changes now
when nick click actions in chat are enabled and ProtocolLib is missing, AA will also display this information on each /aa_reload now
in MC version 1.12, a new part was added to the server code that could be sending messages to players and was not being muted via /aa_mutecommand until now. That's now fixed and no more leaked messages for muted commands will occur anymore
Updated:
versioning has changed to a more concise format. The first number (1) will outline a major version with possible breaking changes and incompatibilities with previous versions. The second number (6) marks a version with big new features added in. The last number (0) will outline maintenance versions (mostly bugfixes, but sometimes also small features).
plugin size ... I'm actually working on some refactoring (i.e. refurbishing of the insides), so the code is more readable and easier to build upon. This is the first such update which removed a whooping 200kb of code. Cleanup time everyone!
Added:
AdminAnything is now compatible with Bukkit server versions from 1.2.5 onwards. Since a LOT of people still tend to play these old versions AA will continue in the good spirit of backwards MC compatibility and now starts supporting MC 1.2.5 and higher. Hooray! (I actually tried to push it as low as 1.0... but CraftBukkit wasn't really ready for us yet in 2011 and using it was kinda programming creative nightmare)
Version 1.57 =============
New maintenance version.
Fixed:
/aa_listcommands failed to recognize "minecraft" as a valid plugin and thus refused to list built-in commands when run as "/aa_listcommands plugin:minecraft"
/aa_listcommands did not list all core commands (spigot, craftbukkit, minecraft) when "core" was used in plugin name search (i.e. "/aa_listcommands plugin:core")
new commands added after 1.8 versions, such as /advancement, /locate, /recipe, /teleport and others are now properly recognized as internal server commands
Thanks to the amazingly active users of AA, 2 bugs have been fixed today. One of them could log you out of the server if you use /aa_playerperms on a player with huge permission list, so I definitely recommend this upgrade
Version 1.56 =============
New maintenance version.
Fixed:
/aa_addredirect no longer causes errors when quotes are used for commands without parameters (such as /aa_redirect "command" "redirect_here")
/aa_playerperms no longer disconnects player who entered the command when the target player has a huge permissions list
As requested by a very nice chap and a fellow server admin, here comes another batch of goodies that should help you guys in your server administration even further. Enjoy!
Version 1.55 =============
New major version.
Added:
new /aa_pluginperms command added that lists all permissions for a given plugin (along with their descriptions). As a result, "pp" and "perms" aliases were removed from AA to prevent ambiguity.
nick click actions in chat (the clickable [A]) can now be further customized in config.yml. You can set up multiple letters, words, smileys or anything else your mind can create. These can be custom-colored and each can have its own command assigned. If you already used the [A] action, this will be preserved upon config upgrade in this version. Also, 2 new options will be added when this version runs for the first time - [C] and [P] to list player's accessible commands and permissions, respectively.
join and leave chat actions are now customizable the same way as nick click actions
Updated:
format of join and leave chat action links was slightly updated, so actions are now visibly divided by a comma as well as color
Fixed:
the command in "Ban Ip" chat link action was set to "banip" which didn't work with latest Spigot versions. It's been corrected to "ban-ip" but you can overwrite it to whichever command you prefer, as it's now all configurable
Version 1.54a =============
New maintenance version.
Fixed:
clicking on plugin name next to a command in the chat UI now correctly keeps selected filters (i.e. show aliases, show descriptions, multiline output...)
AA no longer shows an error in console when a player issues invalid command (such as "/" or "/ ")
/aa_addperm command now uses a configuration option "playerpermscaseinsensitive". This turns on ignoring letter case in command parameters given by a player. This way, adding a virtual permission for "/kit starter" command will also add that permission to "/kit Starter", "/kit STArTer" and other variants of the same parameter. The option is ON by default now.
to see help page with options for /aa_listcommands, you can now type "/aa_listcommands ?" as well as "/aa_listcommands help"
Fixed:
added React compatibility for chat nick click action (the action that's performed when you click on the blue [A] before a nickname) ... this also adds compatibility for other plugins that use chat packets in a hackish way to display text in the Minecraft client which don't adhere to the (JSON) specifications for those chat packets
updated code to not use any more deprecated server functionality (makes AA forward-compatible with new MC versions without the need for additional updates)
Seems like
AsyncWorldEdit Premium version really does things in a weird hackish but also very logical way, allowing the developer to code for Bukkit, Cauldron, Forge and whatever-else. Due to this, AA wasn't able to discover the owner of the
/awe command and was failing its conflict checks.
This has now been fixed thanks to the amazing
@Ac3dUd3 who helped me to debug and provided valuable feedback. Thank you, dear Sir, you have saved our days
Version 1.53 =============
New maintenance version.
Added:
* new /aa_debug command added to operatively (i.e. upon calling this command) enable/disable debug mode. This mode can be used to provide more information to the plugin author when needed (for example when something in the plugin breaks). There is also a "debug" config option to turn this mode on/off by default upon plugin load.
Fixed:
* /aa_checkcommandconflicts now works with the latest version of AsyncWorldEdit
* /aa_checkcommandconflicts will now correctly show conflicting commands for WorldEdit when other plugins (namely AWE) are extending its functionality
After my long world-wide travels, I'm back and AdminAnything for 1.10 is here. Sorry for the delay in releases. I'll be gradually updating all my other non-functioning plugins to 1.10 as well (including AA free version and the popular WorldEdit Visualiser).
Version 1.52 =============
New maintenance version.
Fixed:
* added compatibility for Minecraft 1.10, where fancy chat messages in-game broke chat
Version 1.51 =============
New maintenance version.
Fixed:
* commands that do not get prefixed by their plugin name or can't be otherwise found in any other rational way
should now being correctly recognised by AdminAnything by using a little brute force on finding out their origin
Added:
* /aa_mutecommand can now mute sub-commands
Example: /aa_mutecommand "say ahoj" -> this will mute "/say ahoj" but will not mute "say hello" or any other parameter to the /say command
IMPORTANT: this functionality is greedy by default, meaning that muting "say hello" will also mute "say hello mum", "say hello dolly"
and anything else that follows the "say hello" command. This is to accommodate commands with player names, world names, etc. as parameters.
For example doing '/aa_mutecommand "minigame kick"' and executing "/minigame kick player1" may prevent displaying
message about a kicked-out abusive player from game for everyone in the game and help players concentrate
on the game itself.
Added:
* /aa_addredirect command was added to AdminAnything which allows to redirect one command to another
Example: /aa_redirect shop "warp shop" -> whenever a player does "/shop", "/warp shop" will be executed instead
* /aa_delredirect command was added which allows to remove command redirects that were added via aa_addredirect
Fixed:
* muting commands that start on double-slash (such as WorldEdit's //setbiome) now works correctly
* when muting a command and this command could not be found on the server, a warning is displayed (there was no message before)
Added:
* kick-after-ban feature usage added to Metrics
* a "Full Info" link added to the list of available actions for a command in chat GUI when you click on one.
It will bring up a full-blown multiline output of the command, including its plugin, aliases, usage and permissions.
* added Vault support (which fixes issue with invalid permissions and commands being shown for player via aa_playerperms & aa_playercommands)
Fixed:
* invalid permissions in aa_playerperms & aa_playercommands are no longer shown in the output
With this version, a couple of new features made it into AdminAnything, as well as some explanation videos on YouTube. Apologies for the voice quality but I wasn't able to record the narration myself this time
Version 1.37 =============
New minor version.
Added:
* a clickable "undo" action text added to player chat where an action can be undone
(such as disabling, muting and fixing commands, adding permissions... MC 1.7+)
* added an option to auto-kick a player from the server after an ip-ban (item chatKickAfterIpBan in the config.yml file)
It has been reported that the nick-click feature which allows for running a command set in config.yml when you click on a nickname in chat, was interfering with some other chat plugins, namely DeluxeChat.
This fix adds support for ProtocolLib, which will add a prefix before the actual player's nick instead of rewriting the whole chat line, thus preserving original chat formatting.
Version 1.36 =============
New minor version.
Updated:
* because the click-on-nick functionality, where you can click on a nickname in chat to perform action set up in
AdminAnything configuration, has the potential to break other chat plugins, it has been updated to optionally
use ProtocolLib. This allows for adjusting the chat line sent to the client instead of rewriting it completely.
If you don't have ProtocolLib and this feature is not conflicting with your chat plugins, you will still be able
to use it as you did before, although an informational warning will be generated when the feature is enabled.
Remember, you can always switch this feature off in the config.yml file if you don't need it or don't want to
use ProtocolLib on your server via the "features.chatnicklinks.enabled" setting.
The saga continues
This time, I would like to thank
@Shane and
@Zayeir from helping me discover a couple of bugs introduced in the 1.35 rewrite. Thank you people, you're great!
Version 1.35b =============
Maintenance version.
Fixed:
* /aa_version no longer generates an error when run from the in-game chat
* updated algorithm for finding plugin of installed commands (prevents errors when a command starts on a colon, for example :morning)
1.35 was a big rewrite, and as such, it brought a few bugs here and there which I discovered as I was preparing some how-to YouTube videos for AdminAnything. Sooooo... as per Notch's example, here comes the hotfix 1.35a version for you all :-D
Version 1.35a =============
Maintenance version.
Fixed:
* filter options for /aa_listcommands fixed (aliases can now be turned off again)
* filtering by plugin works again
* search filter now correctly searches for words in command descriptions when a wildcard is used
* /aa_listcommands and /aa_fixcommand once again show core commands with their origin (i.e. "Core - minecraft:help" instead of just "Core")
* removed a "test123" debug message from /aa_addperm
* fixed /aa_ignorecommand and /aa_unignorecommand, so that /aa_checkcommandconflicts now correctly recognises ignored commands
* /aa_playerperms now correctly hides permissions for OPs
Added:
* /aa_version command which shows AdminAnything version as well as checks for a new version online, if enabled
Updated:
* automatic updates checker now runs every 2 hours as opposed to only at server startup (for server that are always on) and they can also be disabled in the config
Fixed:
* custom metrics name adjusted for player join&leave events (mcstats didn't like the slash in it)
* /aa_addperm now once again works correctly for event-based commands (like /ping from CheckMyInventory)
* /aa_addperm fixed for cases when command line argument started with a slash to accommodate special commands, such as //cut (i.e. "/aa_addperm test /cut")
* fixed a very uncommon situation where fixed and disabled commands may have been still run by the server randomly
* a lot of code cleanup, mostly to remove duplication but also to speed up certain tasks by adding caches and co.
Today, I decided to go through the code and do a little spring cleaning. And it totally paid out - there were config bugs preventing features of AdminAnything to be disabled as per config settings.
Here comes the latest update!
Version 1.34 ============
Maintenance version.
Added:
* added a bunch of new metrics to show what features of AdminAnything are being used by servers
Fixed:
* reloading configuration of AdminAnything now works properly
* default configuration name for /aa_ignorecommand fixed
* enabling and disabling of features via config now works correctly for all features
* the "search" option no longer appears in /aa_listcommands listing when running from console
* search filter option explanation added to the "/aa_listcommands ?" help menu
* the "Downloading javassist library into the 'lib' folder..." message now only appears in player chat if the library is actually really being downloaded
* fixed disabled commands getting re-enabled on AdminAnything config file reload
New features:
* added automatic update check during AdminAnything load time
* added click actions (kick, ban, banip, unban, unbanip) for player joins and leaves (MC 1.7 and above)
New features:
* search for commands and in descriptions is now streamlined. You can now simply use "search:copy" in /aa_listcommands
and it will bring up both, commands that contain the word "copy" in description and in the command itself (for example //copy)
... you can also use wildcards in search now (using "search:copy*" will for example bring up "/copyme" and commands that contain "copying" in their description)
* added option to perform arbitrary action when a person (with the right permission) clicks on a nick in chat (MC 1.7+)
New features:
* pagination arrows added to player commands and permissions listing
* filtering options added to the top of /aa_listcommand listing
* search functionality in /aa_listcommands now also searches for command name in addition to command descriptions
Fixed:
* pagination fixed for the "previous page" arrow
* pagination arrows hidden when using server version < 1.7
* /aa_playerperms command no longer confuses pagination parameter for a search term (pagination must, however come as the LAST parameter)
* WorldEdit commands (starting with //) can now be searched for by using either "cmd:/cut" or "cmd://cut" filter option
* fixed sending out text for server 1.6 versions
If you're using AdminAnything in-game, it should now be easier to do so, thanks to a chat GUI (Minecraft 1.7+). You can now click various parts of AdminAnything's output to perform actions directly instead of a need to type commands manually for each of these. Here's an example:
Version 1.30 ============
New major version.
New features:
* added the possibility to click on commands and plugins in chat when using AdminAnything commands (Minecraft 1.7+)
Fixed:
* muting a command from chat for the first time will show the "downloading javassist library" message in chat as well
(was only shown in the console, so players would think the command didn't work)
Updated:
* since /aa_mutecommand is a very case-specific command and does adjust core server functionality,
these adjustments will only be done when at least one command is actually muted (these changes were performed on every
load of AdminAnything, which could have been counter-productive for servers which did not need this functionality)
Fixed:
* AdminAnything no longer breaks timings pasting functionality
Version 1.24 ============
New minor version.
New features:
* it's now possible to display permissions that contain a certain text
example: /aa_playerperms player1 fly -> this will bring up all permission nodes for player1 with the text "fly" contained in them
New features:
* you can now set defaults for the /aa_listcommands listing in AdminAnything's config file
(so if you want to see aliases, descriptions but no permissions by default when you run the command, you are now able to set this up)
* added the possibility to filter output of /aa_listcommands by searching in command descriptions
example: /aa_listcomands search:"highest block" -> will come up with Essentials' own /top command as a result
Fixed:
* muting vanilla commands will be disabled in case of AdminAnything fails to adjust CraftBukkit and Minecraft during its load time (it just threw an error message until now and stopped working, as this is not supported by CraftBukkit builds)
added the possibility to disable specific functionality (commands) of AdminAnything in its config file. There was a single case where AdminAnything could have been a cause for server freeze. I suspect this might have something to do with adjusting Minecraft's and CraftBukkit's classes at runtime for the purposes of muting commands on your server. Should you experience anything like this on your server or you simply don't need one of the features that come with AdminAnything, you can now disable them in the config.yml file in AdminAnything's config folder (plugins/AdminAnything/config.yml)
Sorry, forgot to remove a debug line from /aa_addperm in the last release. Also, the wording of that command was changed to reflect its nature a little more.
New features:
* added the possibility to allowing players to bypass disabled commands and allow them to still run those, if they have sufficient permissions.
Permissions "aa.bypassdeletecommand", "aa.bypassdeletecommand.any" or "aa.bypassdeletecommand.[command_name]" can be used, where "[command_name]" if the actual command you want the player to have access to
* added /aa_addperm and /aa_delperm commands to allow for virtual permissions adding. Using these commands, you will be able to create permission
for any command on your server, including its parameters and disable access to anyone who won't have this permission. For example, you can stop
people from executing "/help 2" unless they have a "help.special" permission. Please note that all newly-added virtual permissions are restrictive
by default, meaning a player will have to have that permission assigned to access the command for it.
Fixed:
* commands fixed via /aa_fixcommand now have their PlayerCommandPreprocessEvent priority changed correctly on AdminAnything startup, so they don't accidentally use that event before AdminAnything can
* routine to change the priority of PlayerCommandPreprocessEvent on AdminAnything start was optimized, so it doesn't try to adjust priority of the same command multiple times (i.e. a command found in 2 of the fixed, disabled and muted lists)
* trying to fix a command that was already fixed will now show an error message
Fixed:
* reverted PaperSpigot's paperclip.jar fix, as it could have had unforseen consequences (and wouldn't still fix PaperSpigot running via paperclip.jar in some instances)
* fixed a rare ClassNotFound exception related to commands muting
It seems that not adding pagination to
/aa_playerperms was not such a good idea after all. If a player had loads of permissions, it would actually kick you out of game for exceeding the maximum allowed characters that can be send to a player (or console).
Also, PaperSpigot's paperclip.jar seems to have its own head and would override the class-loading hierarchy of MC server, as opposed to running patched-1.9.jar file directly from the cache. This has been fixed as well now
Thanks a lot,
@Shane, as always - you're an invaluable bug finder for this project!
Version 1.2a ============
Maintenance version.
Fixed:
* fixed /aa_mutecommand for PaperSpigot started via paperclip.jar instead of using the real client JAR file to start
* fixed NullPointer exceptions when requested page in any pagination was <= 0
* added pagination to /aa_playerperms, so it won't generate a "text too long" exceptions when too many permissions are assigned to a player
At first, I though - why not? Sounds simple enough.
Well.. 4 days and some hardcore hacking of Java Virtual Machine later, I'm banging my head against the table just before I finally got a working solution for this. Takeaway: never ever promise anything to be released with the next version.
Version 1.2 ============
New major version.
New features:
/aa_fixcommand and /aa_disablecommand now also work for plugins that use event listeners to register their commands as opposed to the standard CommandMap registration, which was ignoring our command cancellation method
added /aa_mutecommand and /aa_unmutecommand to mute output of your commands (i.e. the command will still do its job but nobody will see any message in case it will try to send one) PLEASE NOTE that this functionality is somewhat experimental, since it involves hacking both CraftBukkit and Minecraft server while it is actually running (all modifications are done in memory, your JAR files remain intact). Although highly unlikely, it might be incompatible with custom CB, Spigot, PaperSpigot and other builds that modify any of the "sendMessage()" methods found thorough CB and MC code. Please send any errors this plugin might generate as a consequence, so I can fix them promptly
ability to fix, disable or mute commands of AdminAnything itself was disabled, as it could lead to inability to revert these changes in-game (i.e. if you disabled /aa_reload and /aa_unfixcommand, you wouldn't have a way to restore fixed commands without editing the config file manually and restarting your server)
added /aa_playerperms which will list all permissions of a currently online player and group them by first permission prefixes (i.e. aa.* permissions will be displayed together as well as towny.* ones and factions.* ones etc.)
added /aa_playercommands which will list all commands available for the given online player
added permission descriptions for WorldEdit and WorldGuard plugins
added /aa_ignorecommand and /aa_unignorecommand to add conflicting commands into an ignore list, so you won't see them in the output of /aa_checkcommandconflicts output. This can be useful in cases when a plugin on your server is already overriding other plugins for a certain command (let's say /ping) and thus the wanted functionality is there. In such case, AdminAnything will still list those commands as conflicting. By using /aa_ignorecommand, you will be able to suppress these commands from showing up in the list of conflicts.
Fixed:
moved /aa_fixcommand code to its own thread, so it will not potentially lag the server if many plugins are installed
fixed output of /aa_disablecommand, /aa_enablecommand & /aa_unfixcommand for instances when the same command was given as a parameter multiple times
fixed /aa_disablecommand for 1.6 server versions
fixed incorrect permission check for permissions essentials.tpdeny and essentials.kit.others
removed /cc alias for the /aa_clearchat command - I didn't realize it's so close to /ccc (/aa_checkcommandconflicts)
Possible breaking change:
all permission nodes changed to lowercase (i.e. clearChat changed to clearchat)
Now that it looks like fixing commands work as if should (even in Java 7 after today, yay!), it's time for something more interesting. This update can help you setting up servers and permissions faster and without the distraction of browsing away from your Minecraft console. Here goes the changelog...
Version 1.1 ============ New major version.
New features:
case sensitivity does not matter anymore when filtering commands by plugins example: /aa_listcommands plugin:Essentials = /aa_listcommands plugin:eSSenTiaLs
new multiline experimental output added that can be turned on by using "multiline:yes" filter example: /aa_listcommands multiline:yes
permissions can now be shown in commands listing where provided. Please note that some plugins will not provide permission information in their plugin description file. For some of these, I'll be providing permissions manually in directly in AdminAnything with the help of these plugins' websites and Wikis. There is also an option to turn permission descriptions on/off in the new multiline listing if it's making your chat/console too crowded. example1: /aa_listcommands permissions:yes example2: /aa_listcommands permissions:yes permdescriptions:no
added the possibility to use "yes", "y", "true" or "no", "n", "false" in filters (i.e. alias:yes, alias:y, alias:true)
new filter to show command usage in the listing - "usage" example: /aa_listcommands usage:yes
new filter to show only a single command in the listing - "command" ... you can use an asterisk (*) at the beginning or at the end as a wildcard example1: /aa_listcommands command:ban - will only match the command "ban" example2: /aa_listcommands command:ban* - will match commands like "ban", "bank", "ban-ip" example3: /aa_listcommands command:*ban - will match commands like "ban", "unban", "deban" example4: /aa_listcommands command:*ban* - will match commands like "ban", "unban", "deban", "bank", "ban-ip"
added /aa_clearchat commands that will basically add 120 empty lines, effectively clearing up player chat or making space in the console
Fixed:
removed a forgotten debug line that was spamming console when /aa_fixcommand was used
commands fixed via /aa_fixcommand no longer display the "Fixed" message in /aa_listcommands for the same plugin they are hard-wired to
fixed error in /aa_listcommands when a plugin did not contain any command
Well, I thought I did make this compatible with Java 7 - but I was wrong. This was only compatible with Java 8 so far, so I'm making it Java 7 compatible now
New features:
* commands disabled via /aa_disablecommand will no longer appear as conflicting in the /aa_checkcommandconflicts listing
* commands fixed via /aa_fixcommand or disabled via /aa_disablecommand will no longer appear as overriding default functionality in the /aa_checkcommandconflicts listing
* /aa_enablecommand will now list all disabled commands when used without a parameter
* /aa_unfixcommand will now list all fixed commands when used without a parameter
* both, /aa_unfixcommand and /aa_enablecommand will now allow to unfix/enable multiple commands as once
example: /aa_unfixcommand ban op clear -> this will unfix commands ban, op and clear
* /aa_disablecommand will now also accept multiple commands to be disabled at once
example: /aa_disablecommand ban op clear -> this will disable commands ban, op and clear
Fixed:
* fixed incorrect plugins being sometimes displayed for commands in /aa_fixcommand, /aa_listcommands and /aa_checkcommandconflicts
(WorldEdit and WorldGuard got mixed up mostly)
... this also optimized the routine by which these were being retrieved, resulting in performance improvement
* fixed error in the console that appeared when the system incidentally did not contain any errors or conflicts
* fixed situations when plugins would register commands that start on colon (for example /
ing)
New features:
* added help for /aa_listcommands, accessible via /aa_listcommands ?
Fixed:
* fixed incorrect handling of commands hard-wired to their core functionality (for example Essentials:ban rewired back to the original Minecraft:ban)
Even before the plugin was approved, I was busy testing, re-resting, fixing and improving AdminAnything. Here's the changelog of last 4 versions after 1.0:
Version 1.0d
============
Maintenance version
Fixed:
* fixed an exception that was thrown when a commands run began with a space
* fixed commands parsing error, where 1-letter commands would register as invalid and were always cancelled
Version 1.0c
============
New minor version.
New features:
* added the possibility to use exclusions and multiple plugins in the "plugin" filter for /aa_listcommands
To show only commands from Essentials and mcMMO do /aa_listcommands plug:Essentials,mcMMO
To hide commands from Essentials in the listing do /aa_listcommands plug:-Essentials
* the ability to use simple page number in /aa_listcommands was restored, making the following possible again:
/aa_listcommands 2 -> will display second page of commands listing
Updates to functionality:
* maximum commands per page for console listing lowered from 150 to 100 due to unpredictable results when too much text gets displayed
* aliases are now being hidden by default in /aa_listcommands listing to save some space and give out less clutter
Version 1.0b
============
New minor version.
New features:
* added the possibility to use filters in /aa_listcommands.
To show only commands from Essentials without their descriptions do /aa_listcommands plug:Essentials desc:no
You can use the following set of filters:
- page OR pg
- plugin OR plug OR pl
- showdescriptions OR showdescription OR description OR desc
- showaliases OR aliases OR al
Version 1.0a
============
Maintenance version.
Fixed:
* you can now hard-wire commands to their original core counterparts (for example /ban handled by Essentials can be hard-wired back to original Minecraft /ban command)