Skip to content

Releases: libraryaddict/LibsDisguises

Release 26.8.13

Choose a tag to compare

@libraryaddict libraryaddict released this 12 Aug 23:52
c77589e

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

Full Changelog: v11.0.18...v26.8.13

Release 11.0.18

Choose a tag to compare

@libraryaddict libraryaddict released this 18 May 21:46
ba73faa

Hotfix build to fix issues with older versions of Minecraft not loading.

Full Changelog: v11.0.17...v11.0.18

Release 11.0.17

Choose a tag to compare

@libraryaddict libraryaddict released this 17 May 04:26
259ecc5

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

Choose a tag to compare

@libraryaddict libraryaddict released this 13 Mar 07:23
5fb890c

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

Choose a tag to compare

@libraryaddict libraryaddict released this 28 Feb 09:54
45e68bc

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

  • Add underscores as a valid MineSkin API key character by @luq-dude in #826

New Contributors

Full Changelog: v11.0.14...v11.0.15

Release 11.0.14

Choose a tag to compare

@libraryaddict libraryaddict released this 27 Dec 00:51
c93e045

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

Choose a tag to compare

@libraryaddict libraryaddict released this 07 Nov 07:54
e48e4d4

Hotfix for outdated packetevents.

Full Changelog: v11.0.12...v11.0.13

Release 11.0.12

Choose a tag to compare

@libraryaddict libraryaddict released this 06 Nov 23:10
8056e9d

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

Choose a tag to compare

@libraryaddict libraryaddict released this 30 Oct 05:41
281109d

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

Choose a tag to compare

@libraryaddict libraryaddict released this 26 Oct 03:47
bfd00e8

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