Lib's Disguises [Premium]

Plugins Lib's Disguises [Premium]

Version: 11.0.18
This is a hotfix build to fix older versions of Minecraft not loading with the recent release 11.0.17.
A fair amount of changes crept into this one, I had hoped to get a larger rewrite of the plugin done before this, unfortunately the MineSkin issue & recent MC releases have transpired against me.

* Adds support for 26.1, 26.1.1, 26.1.2
* Bumped required PacketEvents
* Improved the ability to customize sounds, including replacing specific sounds - You way want to regenerate that config?
* Fixed MineSkin not working correctly
* LD will no longer send "Colorize" as a placeholder for scoreboard teams, but an empty string
* Adds some skin detection to better handle when a weird skin is being uploaded that may not behave as expected
* Fixed skin models not working as expected
* Some minor API changes for async, this doesn't introduce support, but better exposes if the event could have been async
* Improved some build logic
* Improved LD failing to startup, to be less spammy
Small update, fixes a few bugs.

* Added Illager Spells to parameters
* Added way to disable scoreboard handling
* Fixed packetevents not being installed on first start
* Fixed interact with self with custom hitboxes
Kia ora and welcome to another round of needed bugfixes and updates!

The coolest change of this has to be the addition of /disguiseselector, /disguisemodifyselector, /undisguiseselector and /disguiseanimationselector.
These should work exactly like you would expect a Minecraft selector to work. https://minecraft.fandom.com/wiki/Target_selectors

/disguiseselector @r[c=2] sheep - for example!

This however, is limited to premium.

Full changes are as follows:

* Registries are now optional and disabled by default, you'll want to re-enable this if you add new items / mob variants
* Disguises on entities are now saved when entering a portal
* Fixed incorrect permission defined in plugin.yml and some other missing permissions
* Added getDisguiseUUID() so you can always differnate a disguise via api
* Improved logic flow for disguise removal
* Fixed issue with metadata being cancelled when it should not
* Expanded custom name length to a more modern length
* Added underscores as valid for a MineSkin API - Thanks @Luq-dude!
* Added a way to disable fancy hidden tabs in protocol.yml
* Fixed armor attribute not being sent to the client
* Fixed clients being able to trick themselves into thinking they effected an allay with a bucket
* Fixed /dhelp not working properly with parameters containing a space
* Add /disguiseselector, /disguisemodifyselector, /undisguiseselector and /disguiseanimationselector for premium users
* Fixed voice chat support not working fully
* Expanded allowed Minecraft versions to allow "1.21.11 - CUSTOM" and so on, even though it's mostly going to break anyways.
* Cleaned up inconsistent uses of schedulers, and converted all disguises having their own schedulers, to one scheduler for all disguises
* Added wiki links for particles & bounding boxes as they're a bit tricky
This marks the release of Lib's Disguises 11.0.14!

If you are running paper 1.21.11, please make sure you are running #54 or newer. Older versions of paper 1.12.11 will not work.

* Added 1.21.11 support
* Fixed error on 1.12 servers
* Added VoiceChat compatibility, voice chat now works with disguises
* Added fake bounding boxes feature (allows a bounding box on eg block display, it does not modify existing bounding boxes. Use '/dhelp InteractiveBox' for more)
* Bumped required PacketEvents...
More changes creeped in than I thought, a release was long overdue!

The most notable change is some disguises now play animations when previously they did not, such as iron golem's arm swing.
As part of this, the /disguiseanimation, /disguiseplayeranimation, etc, premium commands were added.

Also fixed the plugin not working on 1.12 and 1.13. People born in the same year as 1.12 are now turning 8, just saying.

* New permission "libsdisguises.selfdisguises", default of true, control if a player can see a self disguise or not. Needs premium.
* Bumped required packetevents
* Minor change to packet handling in inventories
* Minor config relocation and config loading issues fix
* Fixed terrible grammer in 4 to 5 messages, mostly about "disguise on right click"
* Added /disguiseanimation and other commands, which adds animations for some disguises such as attacks or particles
* Added automatic animation plays where it is relevant, such as iron golem arm swings
* Fixed mappings being loaded when the plugin is being unloaded
* Fixed rabbit hops being fired when there's no real movement from the disguised entity
* Improved error message sent to players when a method is disabled in config, saves server admins the stress of figuring out why it is not working
* Improved disguise parsing, only impacts plugins that used Libs Disguises as an API. Largely MythicMinotaurs or whatever its called. Now skips permission checks when the api was called without providing a commandsender. Which is most DisguiseParser usage.
* Scoreboard teams are no longer set on disguises when team color is white, not a player disguise, and collisions are turned off. This addresses this very niche issue https://bugs.mojang.com/browse/MC/issues/MC-56533
* Fixed player disguises in clients not being properly destroyed
* Admins disguising will no longer trigger an update reminder
* Fixed the plugin not working on 1.12 and 1.13
* Improved some warning messages which were confusing when they occured
* Attempt to resolve a working backend for skins, mojang has some issues in their configuration for quite some time now...
* Added four new placeholderapi placeholders, has_notify_bars, has_self_disguises, has_notify_bar_preference, has_self_disguise_preference
* Added ability to randomize mushroom cow variant
* Fixed explicit permissions not working correctly as a configuration setting - I forgot about this, should've pushed a release faster.. Thanks Jamplifier for raising awareness! I thought it was working correctly!
* Fix error on text display names when only using one line
* Start deprecating the newly added 'flying' permission node
* Bumped required packetevents
* Minor fix for art parameter parsing
* Added setting to have verbose logging, this mostly is just for startup messages, help identify why LD may be slow to load in rare cases. Found in LibsDisguises.yml
* Try to update packetevents smarter, may help modern servers on paper having issues with multiple packetevents jars..
* Added placeholderapi support on disguise nametags, may need to add a config setting to disable this?
* Added setAdvText to text display, don't think its accessible via command however. Only api
* Update notifications will now only run once on join/start, no scheduler/timer.
This is a build that fixes a few issues and adds a feature some of you have been asking for.

* Fixes an error on older versions of Minecraft
* Fixed an error for certain itemstacks in disguises
* Clarified how PacketEvents needs to be updated (eg, if it needs dev builds)
* Bumped required PacketEvents
* Added config option in protocol.yml to play idle sounds, when the base entity does not play those sounds by default
This update adds support for 1.21.5 paper servers, along with a few improvements.

Changes:
* 1.21.5 paper support
* LD configs will try to migrate again if legacy file is found (eg, features.yml)
* Disguise names (Generally what you see in the hotbar) are now handled more thoroughly for certain disguises
* Fixed translation configs leaving unneeded comments behind when updating
Kia ora!

This update provides a few bug fixes and adds support for 1.21.5.
Please note that Paper has not released 1.21.5, this was tested with Spigot.

* Added 1.21.5 support
* Bumped required PacketEvents version (It'll update automatically, but will need server to restart, LD will likely break until it restarts)
* Added 'flying' permission group, eg "libsdisguises.disguise.flying" would get you bat, parrot, so on. Not enderdragon!
* Fixed issue with option permissions when used on a disguise with an underscore in its name
* Fixed issue when disguises provided via configuration or external plugins had trailing spaces and did not parse properly
* Fixed an issue with some disguises not saving properly
* Fixed periods (.) not being escapable via backslash (\)
* Fixed disguise scaling not updating properly
* Fixed saved disguises loading even if disabled
* Fixed saved disguises not saving even if enabled
* Fixed Lib's Disguises not throwing an error for unsupported versions of Minecraft
* Fixed wrong message displaying when PacketEvents was not up to date
* Fixed 'setReplaceSounds' not existing as a parameter, this toggles if a disguise has its sounds replaced or not
* Internal improvements and handling of very minor importance, largely in relation to the 1.21.5 update