Releases: libraryaddict/LibsDisguises
Release list
Release 26.8.13
This release marks two major things, firstly a change to the versioning system, we'll be using the Year.Month.Day format. So 13/08/2026 -> 26.8.13
Secondly, the plugin now supports Folia, which is sponsored by MinePeak! - https://minepeak.org/
A huge thanks to them!
As part of this, the plugin has undergone a significant change in some of the underlying details, but no issues are expected on behalf of developers or users.
- Added 26.2 support
- Fixed interactive bounding box being sent to self disguises
- Folia support
- Added setParticles to LivingWatcher
- Added setServerBoundingBox to Disguise, and deprecated setModifyBoundingBox, a thanks to @BerSerK Agent
- Fixed bossbars not being removed on player quit
- Fixed entity positions not being resolved from the packet where possible
- Fixed some entities being visually bucketable, when they shouldn't be
- Fixed death events not being handled as gracefully as they should be
- Fixed negating a permission, violating the expected behavior for explicit permissions
There's other bugfixes to be sure, but those were isolated to dev builds.
Happy disguising all!
New Contributors
- @linze0721 made their first contribution in #836
- @bridgelol made their first contribution in #838
Full Changelog: v11.0.18...v26.8.13
Release 11.0.18
Hotfix build to fix issues with older versions of Minecraft not loading.
Full Changelog: v11.0.17...v11.0.18
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
Full Changelog: v11.0.16...v11.0.17
Release 11.0.16
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
Full Changelog: v11.0.15...v11.0.16
Release 11.0.15
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.
- 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
- Fixed empty action bar still being sent when the translated string is empty
What's Changed
New Contributors
Full Changelog: v11.0.14...v11.0.15
Release 11.0.14
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 to 2.11.1
- Fixed PacketEvents updater not resolving correctly
- Fixed 1.12 servers getting an error for equipment
- Added some error catching for packets when the bukkit player is not real
- Text display no longer uses vehicle/passenger, which was an odd design choice to begin with
- Changing name display type in config will now require a re-disguise or restart for the disguises to show the new display type.
- Fixed some incorrect comments in the configs
- Status packet is no longer cancelled as a conflicting packet, proper support needs to be introduced at a later date, but it's a minor issue
- Added compatibility with vulcan, velocity checks are no longer triggered when disguised
Release 11.0.13
Hotfix for outdated packetevents.
Full Changelog: v11.0.12...v11.0.13
Release 11.0.12
This update is largely a bugfix update, as well as better threading support and some consistency changes.
You can read more about this after the changelog
- Fixed 1.12 to 1.18 encountering an error
- Minor internal rewrite to improve threaded operations
- Fixed wrong string being used in git hash
- Minor improvement to animal colors (notably sheep, wolf and cat) where it was either broken in 1.12, or was a bit unexpected in behavior
- Third party plugins that set null values on watchers will now see more consistent behavior
For threading changes, this doesn't change anything from the endpoint of the developer or user, the plugin is used as normal. It's an internal change that can be summed up as atomic operations, and a switch from a normal Map to a ConcurrentMap. However, the map doesn't allow for null values, which is why the next change happened.
For consistency changes, this should only impact other plugins hooking into its api, and only if those plugins were passing nulls to the watchers.
Previously, the behavior would either set the null internally, or replace the null with the equivalent for that method, eg, item -> air.
When the null was stored as a null, the plugin would handle it by simply not sending that metadata through.
That behavior has now been changed. Now you must set a non-null if you want to set a flag on the disguise. Otherwise it will fall back to the normal metadata that would be sent. Which is either the default metadata, or the passed through metadata if they share a common ancestor (eg, if entity is on fire). Basically, a null will now reset the flag to "passthrough" state.
The behavior may be slightly inconsistent for some methods, which will be an oversight. There's quite a lot of code to go through. Unfortunately primitives do not have nulls (int, boolean, float, etc) and are not included in this change. Unfortunately, I don't have a good solution without changing them all from "boolean" to "Boolean" which will likely break every single plugin. As such, currently watcher.setUnsafeData(MetaIndex.FLAG_NAME, null) is the only solution. But, this is very niche and I don't expect anyone to be impacted by this.
A reminder that Lib's Disguises will return the default value of the metadata flag if it has not been set on the disguise, it should never return the actual underlying metadata of the entity. Calling "isBurning" doesn't tell you if the actual entity is on fire or not, it just tells you what the disguise has it set to, or the default if it was not set.
This consistency change is somewhat minor, and I don't expect anyone to be significantly impacted.
Full Changelog: v11.0.11...v11.0.12
Release 11.0.11
This is mostly a bugfix update for the skins issue.
- Fixed skins not downloading correctly in older versions of MC
- Arrows that are disguised, will have their movements smoother again for 1.21.5+ (Can be disabled in the config dangerous.yml)
- Some internal cleanup of code
Full Changelog: v11.0.10...v11.0.11
Release 11.0.10
This is an update for 1.21.10
Two things of note, other than the changelogs.
1. Maven and Jenkins has moved.
For quite a number of years Lib's Disguises has been hosted by md_5 on his own servers, which was very kind of him. This was both jenkins and the repository.
However it's time for the plugin to move to my own servers, which has happened in the last few weeks as you may have noticed.
Jenkins: https://ci.lib.co.nz/
Repository: https://mvn.lib.co.nz/
If you are a developer, you should change the repository url from https://repo.md-5.net/content/repositories/public/ to https://mvn.lib.co.nz/public
The old repository will remain available for the foreseeable future, but it will not receive any new updates. Old builds are available on the repository.
2. Deprecation of old minor versions
I hope to, in the future, remove support for 1.18 to 1.18.1, 1.19 to 1.19.3, 1.20 to 1.20.2 as those versions are older without any reason to stay on them.
This is not a removal of support for 1.18.2, 1.19.4, 1.20.4
I do want to remove support for 1.21 to 1.21.3 but that will be quite a while away.
Brief changelog
There are quite a few notable changes in this, in the interest of being brief
- 1.21.10 update, and better support for older versions
- Lots of bugfixes
- A few tiny performance boosts
- Sounds can now have their category controlled
Verbose changelog
- Update for 1.21.10
- A fix for metadata issues, took me long enough to come up with a decent solution!
- Sound categories can now be controlled for volume sliders in clients, default category is what the disguise type would be (eg, zombie = hostile)
- Fixed 1.12 not working properly
- Fixed cache being rebuilt too often on older versions
- Disguise animation cache is now built on start, not later
- Added warning that'll take effect in a month for plugins that should be using DisguiseAPI.disguiseNextEntity, basically helps prevent a "flicker" of the real mob for newly spawned mobs
- Cleaned up some comments in a config file or two that were confusing
- Added ability to have placeholders in the name above heads, using PlaceholderAPI
- Fixed a check for 'disguise already in use' not being right
- Tried to fix an extremely rare and I'm not sure they'd be able to reproduce it, bug with sound packet
- Cleaned up skin resolution handling for player skins
- Updated grab head command, now works reliably across multiple versions
- Cleaned up some stuff for slight performance boosts, such as file checks and entity.isValid
- Fixed some messages being logged as an error when it should be a warning
- Fixed some parameters not being converted back to short form, eg, entity variants. Instead it was doing long json form for no gain
- Saved disguises will no longer require permissions for their arguments, arguments in a saved disguise are skipped.
- Relocated from md_5's jenkins and repo to my own
- Remove saved disguises folder if its unused and unneeded
- Bumped required packetevents
- Added method to Undisguise event to see if it can be cancelled by another plugin
- Separated 1.18 nms enum into two enums, 1.18.0-1 and 1.18.2. This is for consistency.
- Updated some messages for warning about old versions of Minecraft
Full Changelog: v11.0.9...v11.0.10