New Feature
- Allows setting whether a player can use a disguise through permissions
- The permission follows the
xiamomc.morph.morph.as.<namespace>.<id>
pattern, and they should accepts wildcards(*
). - For example, the permission to prevent a player from disguising as a villager is
xiamomc.morph.morph.as.minecraft.villager
. - And the permission to prevent a player from disguising as another player is
xiamomc.morph.morph.as.player.<PlayerName>
- The permission follows the
Bug Fixes
- Fixed players not being able to display their own equipment when disguised as another player or Armor Stand since 0.10.0.01
Other
- Use feathermorph-protocols to communicate with clients
- Removed the
deny
command in protocols - Integrate bStats
New Features
- Update to 1.19.4
- Introduced disguise backends, allowing this plugin to continue working without LibsDisguises.
- LibsDisguises is the default and the only backend that supports displaying disguises on the server side.
- If no backends are available, we will fall back to NilBackend, allowing this plugin to continue initializing without displaying support for disguises.
- Clients will not be affected if they decide to display their disguise on the client side.
- These changes are still experiential, feel free to report issues on our GitHub!
Bug Fixes
- Can't grant a disguise of an offline player to another online player.
Other
- Make LibsDisguises a soft dependency.
Fix the plugin not loading because PluginBase
was not found on the server.
This library was already bundled within this plugin since 0.8.7 and is no longer required for the server to install
🐛 Bug Fixes
-
Crystal damage in the Ender dragon disguise's healing ability can be scaled with the current difficulty.
-
Players get unmorphed on death after a rejoin even if the unmorph_on_death option is off.
🌟 New Feature
- Ender Dragon disguise now can make players heal from End crystals by default
- Once connected to a crystal, the player will heal at 0.05 per tick (or half heart per second) and takes 10 damage (5 hearts) when the crystal gets destroyed.
🐛 Bug Fixes
- Mobs not targeting disguised players even if the player attacks them.
- InteractionMirror may trigger StackOverflowError when in
by_sight
mode. - Disguised equipment sometimes doesn't get copied from another disguise.
- Plugin not disconnecting clients while reloading or disabling.
- Unsupported entities (like arrow or boat) appearing in the
/fm manage grant
command.
🪶 Other
- Dropping items will no longer trigger InteractionMirror
This release contains some tweaks on how language fallback works.
Now this plugin will prefer to use English for most languages if they don't have localization for a message.
🐛 Bug Fixes
- Creeper disguises not syncing data for players before exploding, causing incorrect animation status when in creative mode
🪶 Other
- Prevent sending client commands to players if they don't have a compatible mod installed
- Move
default.json
toexample.json
in the messages directory since it doesn't participate in any parts of fallback - Prevent sending
reauth
command to clients when only messages got reloaded
🌟 New Features
- Warden and Iron Golem disguise now slows down player's movement and increases their knockback resistance by default
- Now you can choose which selection mode to use for InteractionMirror!
- Currently there are 2 modes available:
by_name
andby_sight
- We use
by_name
as default, which searches for the specific player who matches our target on the server. by_sight
will search for the nearest player who matches our target within 5 blocks in sight. A player disguised as our target can also be selected.
- Currently there are 2 modes available:
🐛 Bug Fixes
- Fixed creeper disguise doesn't have animation when exploding
🪶 Other
- Added
/fm
as an alias for command/feathermorph
🐛 Bug fixes
40f7b7a: Fix some disguises not visible for the disguiser itself when using server-side SelfView
🪶 Others
d59dba3: Bundle our PluginBase library inside the plugin
First release on Modrinth