FeatherMorphСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачатьСкачать
ВЕРСИИ (178)
release
2.8.1
2.8.13 мая 2026 г.6,8 тыс.Minecraft: 1.21.11folia, paper
Что нового
## Bug Fixes
- Removed debug logging in ByNameExecutor
- Executing the *dash* skill makes everyone in the same world hear the activation sound.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0...2.8.1
release
2.8.0
2.8.030 мар. 2026 г.1,9 тыс.Minecraft: 1.21.11folia, paper
Что нового
## New Features
- **The icon of the current disguise is now displayed when disguising**
- **Entities with tag `feathermorph_nogrant` now won't unlock the relevant disguise for the player when being killed.**
- **It's now possible to extract the built-in language file using the `/fm extract language <lang>` command**
- Permission for this command is `feathermorph.admin`.
- If there's already a matching file on the disk, the extracted file will install to `messages/<lang>.fmnew.json` by default
- You can overwrite it by using `/fm extract language <lang> true`. This operation requires you to confirm by executing again
- Triggering Interaction Mirror for mannequins now requires the player to have permission to trigger Interaction Mirror
- Slaves in the Instance Network now request data for the player when they join, instead of the master server loading and syncing all data to slaves upon startup.
- It's now possible to get the relevant `DisguiseState` instance in `PlayerUnMorphEvent`.
- Third-party plugins are now able to add their `SingleProperty` instances to `DisguiseProperties` on bootstrap, which would allow automatic assignment from player inputs.
- Added support for Zombie Nautilus's variant property.
- Now an instance of `DisguiseProperty` can declare that it's invisible for the client mod
- FeatherMorph doesn't have properties that require this feature yet; it's mainly made for other plugins' development.
- Added `readString` method for InputHandles.
- The plugin will now attempt to show the exception's message if it occurred while updating or has been forwarded to the `DisguiseState`.
- Bring the ability for async player data loading in Instance Network to `IManagePlayerData`.
- Currently, only when the Instance Network is enabled, and the current server is a Slave Server in the network, the async loading feature is fully utilized.
- If supported, when a player enters the configuration state, the plugin will attempt to load their data async, and wait for up to 150ms per player, then allow them to keep logging in after the timeout, and notify their client when the data finishes loading.
- ~~*We wait for up to 150ms is to make sure that the disguise unlock data can immediately be available after the player logs in on fast machines.*~~
- ~~*And maybe this waiting feature would be removed in the next (edit: next or future) releases, as it literally conflicts with the **async** concept...* 🤯~~\
- **Slave servers no longer wait for up to 150ms for the master server to respond to our lookup request**
- Added abilities for Nautilus and Zombie Nautilus
- Disguising as Nautilus now gives the player the ability to breathe underwater and dryout in the air
- Disguising as Zombie Nautilus would additionally make the player burn under the sun if not equipped with a helmet.
- Added Dash skill
- Disguising as Camel/Camel Husk now can dash on the ground or underwater
- Disguising as Nautilus/Zombie Nautilus now can dash underwater
- backport: Allow server to disable disguise waypoints via config
## Bug Fixes
- **Backport a workaround from `1.21.11/feature-next` branch, to prevent bad component input from applying and kicking viewing players out of the server**
- But I'm not sure if this issue should be triaged to FeatherMorph though...
- Fixed a regression where trying to disguise as a player when facing others disguised as another player could copy their properties, ignoring whether the disguise target is the same.
- Potential error when checking whether the current code is on an Entity's tick thread.
- Mannequin disguises' description property is now correctly set up when the target mannequin does not have a description
- Cache for SkinStorage is not being updated after dropping/caching a skin
- Fixed a regression where disguised players can still get selected as an Interaction Mirror target when using the `by_name` selector.
- Fixed a regression where disguised players can't get selected as an Interaction Mirror target if the controlling player is disguised as the same player they disguise.
- Package Version not saved after initial skill configuration setup
## Others
- **Removed usage of `feathermorph.disguise_use_real_uuid` permission**
- **Active disguises will now save to disk when the server shuts down**
- **Offline Disguise now saves disguise properties**
- **Skin Storage and Offline Disguise Storage are now directory-based.**
- This improves performance a lot when we read/write for a single skin/disguise if there's a large amount of data stored.
- We will try to migrate previously stored skins; offline disguises will not get migrated, as we don't have a NBT -> Disguise Properties conversion.
- Mannequins would now be normally selected by Interaction Mirror Executors, instead of being treated as specials.
- `by_sight` mirror mode now respects the maximum affect distance set in the config
- Gradle task `runFolia` is now available
- The actionbar message for disguise is now handled by `DisguiseState`.
- `readRotations` from `InputHandles` now throws an error when the player gives more than 3 elements
- This means that giving more than 3 elements for various rotation properties for the Armor Stand disguise will now result in an error message.
- Migrated configuration definition from plugin's own `ConfigOption` enum to `ConfigOption` class from PluginBase
- Simplified exception handling in some places.
- The message `morph.error_while_disguising_user_fault` in the language file has been renamed to `morph.error_parsing_property`.
- The interval of batching player data requests has been changed from 10 ticks to 2 ticks, to adapt to the new `IManagePlayerData#loadPlayerDataAsync` method
- Plugin now checks for `Paper` or `Folia` platform for update, depending on the server spec.
- Offline Disguises is now called Saved Disguises
## What's Changed
* 2.8.0 from 1.21.11/feature by @MATRIX-feather in https://github.com/NiFeather/FeatherMorph/pull/61
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.2...2.8.0
beta
2.8.0-rc.6
2.8.0-rc.625 мар. 2026 г.327Minecraft: 1.21.11folia, paper
Что нового
## Bug Fix
- Package Version not saved after initial skill configuration setup
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-rc.5...2.8.0-rc.6
beta
2.8.0-rc.5
2.8.0-rc.58 мар. 2026 г.853Minecraft: 1.21.11folia, paper
Что нового
## New Feature
- backport: Allow server to disable disguise waypoints via config
## Other
- Merged 2.8.0 into `1.21.11/main`
- 2.8.0 from 1.21.11/feature by @MATRIX-feather in https://github.com/NiFeather/FeatherMorph/pull/61
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-rc.3...2.8.0-rc.5
beta
2.8.0-rc.3
2.8.0-rc.328 февр. 2026 г.448Minecraft: 1.21.11folia, paper
Что нового
So I'm back updating this resource, as I still wish to have this on a tiny server that I play with my friends for the upcoming 26.1 and later. 😄
## Bug Fixes
- Cache for SkinStorage is not being updated after dropping/caching a skin
- Fixed a regression where trying to disguise as a player when facing others disguised as another player could copy their properties, ignoring whether the disguise target is the same.
- Fixed a regression where disguised players can still get selected as an Interaction Mirror target when using the `by_name` selector.
- Fixed a regression where disguised players can't get selected as an Interaction Mirror target if the controlling player is disguised as the same player they disguise.
## Other
- **Backport a workaround from `1.21.11/feature-next` branch, to prevent bad component input from applying and kicking viewing players out of the server**
- Not sure if this issue should be triaged to FeatherMorph though...
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-beta.4...2.8.0-rc.3
beta
2.8.0-rc.1
2.8.0-rc.117 февр. 2026 г.537Minecraft: 1.21.11folia, paper
Что нового
## Bug Fix
- Mannequin disguises' description property is now correctly set up when the target mannequin does not have a description
## Other
- **Removed usage of `feathermorph.disguise_use_real_uuid` permission**
- **Active disguises will now save to disk when the server shuts down**
- **For slave servers in the instance network, we no longer wait for up to 150ms for the master server to respond to our lookup request**
- **Offline Disguise now saves disguise properties**
- **Skin Storage and Offline Disguise Storage are now directory-based.**
- This improves performance a lot when we read/write for a single skin/disguise if there's a large amount of data stored.
- We will try to migrate previously stored skins; offline disguises will not get migrated, as we don't have a NBT -> Disguise Properties convertion exists.
- Plugin now checks for `Paper` or `Folia` platform for update, depending on the server spec.
- Offline Disguises is now called Saved Disguises
beta
2.8.0-beta.4
2.8.0-beta.420 дек. 2025 г.2,2 тыс.Minecraft: 1.21.11folia, paper
Что нового
This is a build on `1.21.11/feature`.
**We suggest that everyone on the `1.21.11/feature` branch using the Instance Network feature update to this version on all Slave Servers.**
## Bug Fix
- **Instance Network: Slave Servers not cleaning the existing data before applying new data synced from the master server**
- This issue can also trigger another issue where the string command sent to the player is too large
- This doesn't affect builds on `1.21.11/main` as they don't have the partial sync feature
- Disguising on Folia has a rare chance to fail about `... this.revealingHandler is null.`
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-beta.2...2.8.0-beta.4
alpha
2.6.0-alpha.4
2.6.0-alpha.420 дек. 2025 г.626Minecraft: 1.21.10paper
Что нового
This is a build on `1.21.10/feature`.
**We suggest that everyone on the `1.21.10/feature` branch using the Instance Network feature update to this version on all Slave Servers.**
## New Feature
- The Fake Equip skill has been extended to more mobs
## Bug Fix
- **Instance Network: Slave Servers not cleaning the existing data before applying new data synced from the master server**
- This issue can also trigger another issue where the string command sent to the player is too large
- This doesn't affect builds on `1.21.10/main` as they don't have the partial sync feature
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.6.0-alpha.3...2.6.0-alpha.4
beta
2.8.0-beta.2
2.8.0-beta.217 дек. 2025 г.127Minecraft: 1.21.11folia, paper
Что нового
## New Features
- Added abilities for Nautilus and Zombie Nautilus
- Disguising as Nautilus now gives the player the ability to breathe underwater and dryout in the air
- Disguising as Zombie Nautilus would additionally make the player burn under the sun if not equipping a helmet.
- Added Dash skill
- Disguising as Camel/Camel Husk now can dash on the ground or underwater
- Disguising as Nautilus/Zombie Nautilus now can dash underwater
## Bug Fix
- Potential error when checking whether the current code is on an Entity's tick thread.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-alpha.2...2.8.0-beta.2
release
2.7.1
2.7.117 дек. 2025 г.1,4 тыс.Minecraft: 1.21.11folia, paper
Что нового
## Bug Fix
- Potential error when checking whether the current code is on an Entity's tick thread.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.7.0...2.7.1
alpha
2.8.0-alpha.2
2.8.0-alpha.210 дек. 2025 г.171Minecraft: 1.21.11paper
Что нового
## Bug Fix
- Debug message `Text icon for <...> is <...>` spamming in console if any usage of disguise text icon is invoked
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.8.0-alpha.1...2.8.0-alpha.2
alpha
2.6.0-alpha.3
2.6.0-alpha.310 дек. 2025 г.151Minecraft: 1.21.10paper
Что нового
## New Features
- Now an instance of `DisguiseProperty` can declare that it's invisible for the client mod
- FeatherMorph doesn't have properties that require this feature yet; it's mainly made for other plugins' development.
- Added `readString` method for `InputHandles`.
- The plugin will now attempt to show the exception's message if it occurred while updating or has been forwarded to the `DisguiseState`.
- Bring the ability for async player data loading in Instance Network to `IManagePlayerData`.
- Currently, only when the Instance Network is enabled, and the current server is a Slave Server in the network, the async loading feature is fully utilized.
- If supported, when a player enters the configuration state, the plugin will attempt to load their data async, and wait for up to 150ms per player, then allow them to keep logging in after the timeout, and notify their client when the data finishes loading.
- *We wait for up to 150ms is to make sure that the disguise unlock data can immediately be available after the player logs in on fast machines.*
- *And maybe this waiting feature would be removed in the next (edit: next or future) releases, as it literally conflicts with the **async** concept...* 🤯
## Other
- Simplified exception handling in some places.
- The message `morph.error_while_disguising_user_fault` in the language file has been renamed to `morph.error_parsing_property`.
- The interval of batching player data requests has been changed from 10 ticks to 2 ticks, to adapt to the new `IManagePlayerData#loadPlayerDataAsync` method
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.6.0-alpha.2...2.6.0-alpha.3
alpha
2.8.0-alpha.1
2.8.0-alpha.110 дек. 2025 г.49Minecraft: 1.21.11paper
Что нового
This is a release on the `1.21.11/feature` branch.
## New Feature
- [2.7.0] Added new debug command `/debugForValue`, for listing all registered `SingleValue` in the given value set.
- Added support for Zombie Nautilus's variant property.
## Other
- [2.7.0] We are now 1.21.11
- [2.7.0] Bumped PacketEvents to 2.11.0
- [2.7.0] Added a workaround not to send the packet if we have a huge data body.
- This prevents exceptions from being thrown when trying to send a huge amount of available disguise or a huge disguise data.
- Currently, I have no idea how to solve the problem, so let's not sync the list for now. Players can still select the disguise using the `/morph` command, and other features would still work... Unless the data still exceeds the limit.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.6.0-alpha.3...2.8.0-alpha.1
release
2.7.0
2.7.010 дек. 2025 г.160Minecraft: 1.21.11paper
Что нового
This is a release on the `1.21.11/main` branch. For the upcoming new features, see https://github.com/NiFeather/FeatherMorph/pull/61
## New Feature
- Added new debug command `/debugForValue`, for listing all registered `SingleValue` in the given value set.
## Other
- We are now 1.21.11
- Bumped PacketEvents to 2.11.0
- Added a workaround not to send the packet if we have a huge data body.
- This prevents exceptions from being thrown when trying to send a huge amount of available disguise or a huge disguise data.
- Currently, I have no idea how to solve the problem, so let's not sync the list for now. Players can still select the disguise using the `/morph` command, and other features would still work... Unless the data still exceeds the limit.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.2...2.7.0
alpha
2.6.0-alpha.2
2.6.0-alpha.24 дек. 2025 г.223Minecraft: 1.21.10paper
Что нового
## New Features
- Now applying the Interaction Mirror for mannequins also requires the player to have the normal Interaction Mirror permission
- On new installations, the Icon for the current disguise is now shown in the actionbar by default
- Killing mobs with `feathermorph_nogrant` tag will now not unlock the relevant disguise for the player
- Refactored how the plugin sends messages to players
- It's now possible to extract the built-in language file using the `/fm extract language <lang>` command
- Permission for this command is `feathermorph.admin`.
- If there's already a matching file on the disk, the extracted file will install to `messages/<lang>.fmnew.json` by default
- You can overwrite it by using `/fm extract language <lang> true`, this operation requires you to confirm by executing again
- Slaves in the Instance Network now request data for the player when they join, instead of the master server loading and syncing all data to slaves upon startup.
- It's now possible to get the relevant `DisguiseState` instance in `PlayerUnMorphEvent`.
- Third-party plugins are now able to add their `SingleProperty` instances to `DisguiseProperties` on bootstrap, which would allow automatic assignment from player inputs.
## Other
- Mannequins would now be normally selected by Interaction Mirror Executors, instead of being treated as specials.
- `by_sight` mirror mode now respects the maximum affect distance set in the config
- Gradle task `runFolia` is now available
- The actionbar message for disguise is now handled by `DisguiseState`.
- `readRotations` from InputHandles now throws an error when the player gives more than 3 elements
- This means that giving more than 3 elements for various rotation properties for the Armor Stand disguise will now result in an error message.
- Migrated configuration definition from plugin's own `ConfigOption` enum to `ConfigOption` class from PluginBase
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.2...2.6.0-alpha.2
release
2.5.2
2.5.24 дек. 2025 г.523Minecraft: 1.21.10paper
Что нового
This is a maintenance release for the 2.5 series. For the upcoming new features, see 2.6 alpha at: https://github.com/NiFeather/FeatherMorph/pull/59
## Bug Fixes
- The Extra Knockback ability always adds 0.345584025 for Y Motion changes, and does not apply knockback resistance for X and Z Motion changes.
- Disguise waypoint not getting removed when the binding player quits.
- Make `MorphBasicAvoidPlayerGoal` ignore when the player to avoid is in a different world
- This fixes the AI throwing error under some weird situations.
## Other
- Handle invalid protocol level in `MIC2SLoginCommand`
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.1...2.5.2
release
2.5.1
2.5.127 нояб. 2025 г.361Minecraft: 1.21.10paper
Что нового
*Starting from 2025/11/3 (YYYY/MM/DD), we have split the 1.21.10 branch to 1.21.10/main and 1.21.10/feature.*
*If you cloned the repo before, you might want to delete the locally stored 1.21.10 branch before pulling any updates!*
---
# Changes in 2.5.1
## Bug Fix
- Empty input for `entity/equipment` would cause unhandled exceptions
---
# Changes in 2.5.0
## New Features
- **It's now possible for players to save their disguise and apply their locally stored disguises**
- This requires players to use 0.16.0-beta.5 or higher version of the client mod!
- Added permission `feathermorph.custom_text` for `entity/custom_name`, `mannequin/description`, and `mannequin/hide_description` property, and it's available for players by default
- Added permission for using disguise properties: `feathermorph.disguise_properties.use`
- Added permission for setting a custom skin profile for items in `entity/equipment` property, restricted to ops by default: `feathermorph.disguise_properties.custom_skin_on_items`
- Added support for Mannequin disguise
- Mannequin disguise is not collectable using the Magic Bottle by default
- Mannequin disguises have the Fake Equip skill, like Armor Stand and Player disguise
- `mannequin/skin` property is restricted to ops by default. You can set `feathermorph.custom_skin` permission for players so they can use this property.
- Added support for Copper Golem disguise
- Copper Golem disguise is collectable using the Magic Bottle by default
- Added Weather State property for Copper Golem disguise
- Initial compatibility(?) for Ping Wheel
- Using the official Ping Wheel plugin **will work**, but pinging while disguising doesn't mask the pinger
- ...So I made a custom plugin to temporarily solve the problem, which can be found at https://github.com/MATRIX-feather/pingwheel-plugin-forked
- Initial support for players with permission `feathermorph.mirror.mannequin` to mirror their sneaking actions to mannequins that have the same name and description as their disguise
- For BY_NAME executor, mannequins within a range are selected, while setting the affect distance to -1 would disable the range limit
- For BY_SIGHT and BY_RANGE, the targeting mannequin within 5 blocks of sight will be selected
## Bug Fixes
- Several bugs with Player Disguises when `feathermorph.disguise_use_real_uuid` permission is given
- Players got removed from their TAB view when undisguising
- Disguise not presenting when teleported from far away, or switching gamemode from spectator
- `slime_magma/size` property has a wrong random range
- Nobody is calling `BaseLivingEntityProperties#setupPropertiesFromEntity` in the override methods
- This makes disguises that have extra properties not copy the target entity's custom name.
## Other
- **We are planning to remove the BY_RANGE mirror executor in the future, as it's causing chaos when we have players with bad networking**
- Some exceptions thrown will now be forwarded to DisguiseState and will undisguise the player
- Tweaked how Server Renderer rebuilds entity metadata packets sent from the server
- Removed disguise NBT blacklist configuration
- As they are not being used anymore
- `entity/custom_name` and `mannequin/description` now accept JSON text component starting with `{`
- Moved some disguise validation to early disguise preparation
beta
2.5.0-rc.5
2.5.0-rc.59 нояб. 2025 г.658Minecraft: 1.21.10paper
Что нового
*Starting from 2025/11/3 (YYYY/MM/DD), we have split the 1.21.10 branch to 1.21.10/main and 1.21.10/feature.*
*If you cloned the repo before, you might want to delete the locally stored 1.21.10 branch before pulling any updates!*
---
## Bug Fixes
- Added SkinPatch support for `ResolvableProfile`, which fixes some skin setups not presenting properly on the client.
- Explicitly declare whether a `MorphResolvableProfileStruct` is presenting a dynamic `ResolvableProfile`, which fixes some skin not displaying on the client side.
- These two fixes above require players to update their client mod to `0.16.0-beta.6`!
- `entity/custom_name` always copies from the target entity, ignoring the entity's type
- Nobody is calling `BaseLivingEntityProperties#setupPropertiesFromEntity` in the override methods
- This makes disguises that have extra properties not copy the target entity's custom name.
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.0-rc.4...2.5.0-rc.5
release
2.4.6
2.4.62 нояб. 2025 г.952Minecraft: 1.21.8folia, paper
Что нового
*Starting from 2025/11/3 (YYYY/MM/DD), we have split the 1.21.10 branch to `1.21.10/main` and `1.21.10/feature`.*
*If you cloned the repo before, you might want to delete the locally stored 1.21.10 branch before pulling any updates!*
## Bug Fix
- StackOverflow when a player has a locale that is "en_US" rather than "en_us"
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.4.5...2.4.6
beta
2.5.0-rc.4
2.5.0-rc.42 нояб. 2025 г.264Minecraft: 1.21.10paper
Что нового
*Starting from 2025/11/3 (YYYY/MM/DD), we have split the 1.21.10 branch to `1.21.10/main` and `1.21.10/feature`.*
*If you cloned the repo before, you might want to delete the locally stored 1.21.10 branch before pulling any updates!*
## Bug Fixes
- Player disguise always copies the target player's skin, not checking conditions
- `StackOverflow` when a player has a locale that is "en_US" rather than "en_us"
## Other
- Allow bukkitEntity is null for `FoliaThreadUtils#isTickThreadFor`
- Make `ServerBackend#disguise` and `SpawnPacketHandler#onEntityAddPacket` fail softly if timed out waiting for the player's thread.
- In `beta.6`, some exceptions are forwarded to the player's `DisguiseState`, including waiting timeouts when building virtual entity packets
- Once timed out, the player will get unmorphed once ticked, even if it only affects the virtual entity displaying
- This may improve player experience when the server is lagging
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.0-rc.3...2.5.0-rc.4
beta
2.5.0-rc.3
2.5.0-rc.320 окт. 2025 г.450Minecraft: 1.21.10paper
Что нового
## Bug Fix
- **In previous 2.5.0 beta releases, sometimes the disguise reporting it fails to update and (may) cause nearby players to disconnect with a protocol error**
## Other
- Catch JSON error when parsing client `entity/equipment` input and wrap it as a ParseErrorException, to tell players that the data is malformed
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.0-rc.2...2.5.0-rc.3
release
2.4.5
2.4.520 окт. 2025 г.216Minecraft: 1.21.8folia, paper
Что нового
## Bug Fix
- **Skill execution event not triggering**
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.4.4...2.4.5
beta
2.5.0-rc.2
2.5.0-rc.220 окт. 2025 г.41Minecraft: 1.21.10paper
Что нового
*We are now slowly migrating our wiki to the `docs/` directory under the repository. You can have a look if interested!*
## New Feature
- [rc.1] Added permission for using disguise properties: `feathermorph.disguise_properties.use`
- [rc.1] Added permission for setting a custom skin profile for items in `entity/equipment` property: `feathermorph.disguise_properties.custom_skin_on_items`
## Bug Fix
- [rc.2] Disguising as other entities can also trigger the Interaction Mirror for mannequins
- [rc.2] The Interaction Mirror for mannequins triggers ignoring the difference in NPC description
## Other
- [rc.1] Moved some disguise validation to early disguise preparation
- [rc.1] Bump PacketEvents to 2.10.0
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.0-beta.6...2.5.0-rc.2
beta
2.5.0-beta.6
2.5.0-beta.617 окт. 2025 г.117Minecraft: 1.21.10paper
Что нового
## New Feature
- **Players with permission `feathermorph.mirror.mannequin` are now able to apply the sneaking mirror to mannequins that have the same name as their disguise**
- For `BY_NAME` executor, mannequins within a range are selected, while setting the affect distance to -1 would disable the range limit
- For `BY_SIGHT` and `BY_RANGE`, the targeting mannequin within 5 blocks of sight will be selected
- Bump API to 17
- It's now possible for client mods to include property inputs in the C2S Morph command
- Setting the Interaction Mirror Affect Distance (Control distance) in-game is now possible with `/fm option mirror_control_distance`
## Bug Fix
- **Skill execution event not triggering**
- `slime_magma/size` property has a wrong random range
## Other
- We are planning to remove the `BY_RANGE` mirror executor in the future, as it's causing chaos when we have players with bad networking
- Some exceptions thrown will now be forwarded to `DisguiseState` and will undisguise the player
- Tweaked how Server Renderer rebuilds entity metadata packets sent from the server
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.5.0-beta.5...2.5.0-beta.6
release
2.4.4
2.4.412 окт. 2025 г.218Minecraft: 1.21.8paper
Что нового
## New Features
- Initial compatibility for Ping Wheel
- Currently requires a custom plugin, which can be found at https://github.com/MATRIX-feather/pingwheel-plugin-forked
## Bug Fixes
- **Disguise status synced from slave servers doesn't really apply to the master server**
- Players got removed from their TAB view when undisguising, when `feathermorph.disguise_use_real_uuid` is set to true
beta
2.5.0-beta.5
2.5.0-beta.512 окт. 2025 г.110Minecraft: 1.21.10paper
Что нового
## Bug Fix
- **Disguise status synced from slave servers doesn't really apply to the master server**
## Other
- We are now 1.21.10
- We now compile against PacketEvents 2.10.0-SNAPSHOT dev build
- So that CI is working again!
beta
2.5.0-beta.3
2.5.0-beta.36 окт. 2025 г.357Minecraft: 1.21.9paper
Что нового
## New Feature
- Added permission `feathermorph.custom_text` for `entity/custom_name`, `mannequin/description`, and `mannequin/hide_description` property, and it's available for players by default
- **Mannequin and Copper Golem disguise is now available for Server Renderer**
- Would require PacketEvents built from [This PR](https://github.com/retrooper/packetevents/pull/1361)
## Other
- **Several disguise property changes, players will need to update their mod to 0.16.0-beta.2!**
- **Merged `mannequin/skin_internal` and `mannequin/skin` property. `mannequin/skin` property is now used for skin input and property syncing**
- **Changed how plugin syncs `mannequin/skin` to the player**
- `entity/custom_name` and `mannequin/description` now accept JSON text component starting with `{`
- `player/skin` now accepts `GameProfile` compound string
- `mannequin/skin` now accepts a valid string for `MorphResolvableProfileStruct` starting with `{`
beta
2.5.0-beta.2
2.5.0-beta.230 сент. 2025 г.191Minecraft: 1.21.9paper
Что нового
This is a beta release for 1.21.9. Please note that this release **may not support displaying Mannequin and Copper Golem disguise using Server Renderer** as PacketEvents haven't been updated yet.
## New Features
- **API version is now 16**
- Skin for player disguise and Equipment for any entity disguise are now managed as disguise properties
- Compatibility for clients that don't support disguise properties will end at 2026, or when 1.22 comes out
- Added support for Mannequin disguise
- Mannequin disguise is not collectable using the Magic Bottle by default
- Mannequin disguises have the Fake Equip skill, like Armor Stand and Player disguise
- `mannequin/skin` property is restricted to ops, as the plugin will try to fetch and cache skin from the given input. You can set `feathermorph.custom_skin` permission for players so they can use this property.
- Added support for Copper Golem disguise
- Copper Golem disguise is collectable using the Magic Bottle by default
- Added Weather State property for Copper Golem disguise
- Initial compatibility for Ping Wheel
- Currently requires a custom plugin, which can be found at https://github.com/MATRIX-feather/pingwheel-plugin-forked
## Bug Fixes
- Several bugs with Player disguises when `feathermorph.disguise_use_real_uuid` is set to true
- Players got removed from their TAB view when undisguising
- Disguise not presenting when teleported from far away, or switching gamemode from spectator
## Other
- Removed disguise NBT blacklist configuration
- As they are not being used anymore
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.4.3...2.5.0-beta.2
release
2.4.3
2.4.322 сент. 2025 г.534Minecraft: 1.21.8folia, paper
Что нового
## This release may require some manual operations
Disguise Tool and Magic Bottle's recipe is now registered using a datapack. While this can allow you to customize even more, you would need to install a recipe management plugin if you wish to disable one of them specifically.
If you have already disabled recipes using a management plugin, then no operations would be required. (As the datapack is using the same recipe ID as the old behavior)
You might also want to read the 2.4.1 changelog if you are updating from older versions.
---
## New Features
- **The collected result for the empty Magic Bottle is now a loot table**
- By default, the plugin will process all output items that come from the loot table
- You can set custom data `feathermorph:skip_magic_bottle_setup` to `true` to make the plugin skip a specific item
- For more details, see the [Loot table datapack](https://github.com/NiFeather/FeatherMorph/tree/1.21.8/src/main/resources/datapacks/loot_tables/data/feathermorph/loot_table)
- **Due to a limitation, not all loot table types are supported. Currently, `empty` and `entity` are tested to work well**
- Added permission `feathermorph.acquire_morph` to control whether a specific player can unlock disguises via gameplay
- Added permission `feathermorph.disguise_use_real_uuid` to control whether a disguise should use the player's real UUID for the virtual entity
- This may help to improve compatibility with Simple Voice Chat, etc.
- However, this should be tricked as a *hack* or *workaround*
- Players are now able to discard their unlocked disguises using the `/discard-morph` command
## Bug Fixes
- Cat and Wolf disguises don't have collar color property applied if targeting a valid entity
- `/fm make_disguise_tool` command not registering
- **AI Modification failed to inject and caused a log spam for some setup**
## Other
- **AI Modification is now disabled by default for new installations**
- We now use NMS to inject goals again, as using the API is causing issues...
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.4.2...2.4.3
release
2.4.2
2.4.216 сент. 2025 г.238Minecraft: 1.21.8folia, paper
Что нового
## This release may require some manual operations
Disguise Tool and Magic Bottle's recipe is now registered using a datapack. While this can allow you to customize even more, you would need to install a recipe management plugin if you wish to disable one of them specifically.
If you have already disabled recipes using a management plugin, then no operations would be required. (As the datapack is using the same recipe ID as the old behavior)
**This version is known to have issues with AI modification on Folia. We recommend disabling this feature on Folia servers ASAP**
---
## Bug Fix
- Some mobs don't panic from players where they should
- Cats and Ocelots are missing an attack goal for players' disguise
- Tamed mobs still run the custom attack goal
## Other
- **Removed debug output (*"ToAvoid is xxxxx"*) spamming in `MorphBasicAvoidPlayerGoal`**
- Ensure that the target entity is on the same thread as the running mob in `MorphBasicAvoidPlayerGoal`
- Nobody reported relevant issues before, but just in case :D
release
2.4.1
2.4.116 сент. 2025 г.54Minecraft: 1.21.8folia, paper
Что нового
## This release may require some manual operations
Disguise Tool and Magic Bottle's recipe is now registered using a datapack. While this can allow you to customize even more, you would need to install a recipe management plugin if you wish to disable one of them specifically.
If you have already disabled recipes using a management plugin, then no operations would be required. (As the datapack is using the same recipe ID as the old behavior)
---
*We made a lot of changes in this release, while we made our best to eliminate bugs, there may still be some that we haven't found!*
## New Features
- **Disguising with invalid property inputs will now throw error messages to the player and refuse to disguise, instead of using the default values**
- **Property inputs are now included in `PlayerMorphEarlyEvent`**
- Added support for Cat/Wolf collar color property
- Implemented Guardian disguise skill
- *Requires a mod update for players to see their skill target in their sight*
- Dolphin and Axolotl disguises will now give players extra air
- Added `#feathermorph:magic_bottle_collectable` entity tag
- Mobs in this tag will be available for collecting the disguise using the Magic Bottle
- Empty Magic Bottle items with more than 1 amount are also available to collect disguises now
## Bug Fixes
- **Collected Magic Bottles no longer working**
- `snow_golem/pumpkin`, `zoglin/is_baby`, and `zombie/is_baby` property don't have a TAB-completion list where they should
- `burns_under_sun` no longer working
## Other
- **We have changed our licence from MIT to GPLv3**
- **Open source licence is now included in the Jar file**
- **Disguise Tool and Magic Bottle's recipe is now registered using a datapack**
- **Reworked skill/ability configuration read/write**
- **Reworked skill handling**
- If you are experiencing issues with skill/ability configuration loading, please let me know!
- **Reworked Mob AI modifying for less dependence on NMS**
- **Removed Mob AI recovery methods**
- Please restart the server once the relevant config is changed
- **Icons in the server-side disguise selection GUI now use Snowball + Item Model to present**
- **`potion_on_attack` ability now requires potion ID, instead of their Spigot enum name**
- Changed translations for zh_CN
- Replaced usage of *伪装* with *变形*/*形态*
- It's now possible to enable debug commands by creating `cmd_debug.txt` in the plugin's data folder
- **Warning! This feature is not intended for use in a production environment. Enabling this feature will cause issues!**
- The night vision ability no longer applies the potion particle to the player
- `entity/custom_name` property now has a limit of 256 characters for user input, and a 50-character limit for the final text
- `entity/custom_name` now no longer accepts empty inputs
- Disguise Bossbar will now read texts from the `entity/custom_name` property if it has been set
- Player disguises now no longer accept `entity/custom_name` inputs
- However, the Ender Dragon disguise still accepts, and currently this is an intended feature :D
- The default value for `armor_stand/show_arms` will now be set to the configured value in the config again
- `DisguiseState` instances will now update themselves, instead of updating from `MorphManager`
- `We are not connected with master server! Refusing to update unlock state...` message is now logged as errors instead of warnings
## API
- **Property inputs are now included in `PlayerMorphEarlyEvent`**
**Full Changelog**: https://github.com/NiFeather/FeatherMorph/compare/2.4.0...2.4.1
release
2.4.0
2.4.019 авг. 2025 г.1,1 тыс.Minecraft: 1.21.8folia, paper
Что нового
## New Feature
- **Replaced usage of NBT with Disguise Property in disguises by @MATRIX-feather in https://github.com/NiFeather/FeatherMorph/pull/46**
- This affects disguise building and syncing
- This feature allows players to customize their disguise more without needing to create an entity first.
- Players will need to upgrade their client mod. Support for clients implementing legacy APIs that use NBT to sync disguise is planned to end when 1.22 arrives or we reach 2026
- Permission control for customizing properties is currently not implemented.
- For more details, please check https://github.com/NiFeather/FeatherMorph/pull/46
- For Residence integration:
- Players inside a residence without the `place` permission will no longer be able to leave a snow trail when disguised
- Players inside a residence without the `use` permission will no longer be able to activate their disguise skill
## Other
- Tweaked the listening priority of PlayerRegisterChannelEvent in CommonEventProcessor
- To shut someone up, making them not spam me in dm about HuskSync broke mod features again
release
2.3.5
2.3.517 авг. 2025 г.153Minecraft: 1.21.8folia, paper
Что нового
## New Feature
- It's now possible to set the player disguise's main hand by setting the `main_hand` property
- Players can now consume any item with valid components to unlock new disguises.
- `/fm query` command now accepts multiple players as the argument
- `/request send` command now accepts multiple players as the argument
## Bug Fixes
- **Fixed a long-existing issue where toggling the `Modify Boundingboxes` option doesn't notify clients to reconnect correctly**
- Sometimes the server's emote GUI doesn't display emote names.
- Offline disguise always fails the UUID check
- Fixed a potential issue where Player Disguises' waypoint doesn't get removed when the player logs out
## Other
- **We now use `addTransientModifier` to add attribute modifiers**
- Which means that the modifier we add will no longer get saved by the game anymore.
- Disguises with `morph:fake_equip` skill now always copy to display the valid target entity's equipment by default, even if it's empty.
- Use `getListeningPluginChannels` to check the player's registered plugin channels
## API
- API level is now 5
- Now it's possible to get the plugin's preferred and all supported plugin channels via the API
- It's now possible to listen to whether the plugin panicked
- Currently, only when the Minecraft version is not supported, this plugin will panic
- Replaced usage of `runWhenAPILoaded` to `getApiFuture`, which returns a `CompletableFuture <FeatherMorphAPI>`
- Added `PlayerConnection`, which can be used to listen for player client login, get their implementing API, or disconnect them. Disconnecting a client now requires an `Exception` as a reason.
release
2.3.4
2.3.41 авг. 2025 г.652Minecraft: 1.21.8folia, paper
Что нового
This release aims to address several issues with disguise waypoints.
## Bug Fixes
- **Server crash when traveling between worlds if disguised as a player, when MorphAzimuthWaypointConnection is being used**
- MorphAzimuthWaypointConnection has a relatively large deviation
- Disguise waypoint doesn't follow when players travel between worlds
release
2.0.3
2.0.328 июл. 2025 г.1,4 тыс.Minecraft: 1.21.4folia, paper
Что нового
## Bug Fix
- ~~**Server crash when disguising as a player, if PacketEvents is not installed**~~ 1.21.4 is not affected
## Other
- **Added language file ru_ru.json**
- Some attempt to fix potential thread-safety issues
release
2.3.3
2.3.328 июл. 2025 г.144Minecraft: 1.21.8folia, paper
Что нового
## Bug Fix
- **Server crash when disguising as a player, if PacketEvents is not installed**
## Other
- **Some attempt to fix potential thread-safety issues**
release
2.3.2
2.3.224 июл. 2025 г.239Minecraft: 1.21.8folia, paper
Что нового
## Other
- **Removed Sentry Logger**
- **[#43](https://github.com/NiFeather/FeatherMorph/issues/43): Added ru_ru translate**
release
2.3.0
2.3.018 июл. 2025 г.192Minecraft: 1.21.8folia, paper
Что нового
## Bug Fixes
- Fixed some potential issues
## Other
- **Added Sentry Logger**
- Sentry Logger is a kind of telemetry, and we use it to upload errors that occur in FeatherMorph automatically
- This feature is disabled by default, you can check the config file for more details
release
2.2.2
2.2.211 июл. 2025 г.790Minecraft: 1.21.7folia, paper
Что нового
**We recommend upgrading to this hotfix release to prevent a potential bug in AI modification that can cause entities to be removed by the server.**
## New Feature
- Disguising as Happy Ghast now allows players to fly
## Bug Fix
- **Fixed a bug where MorphManager#getDisguiseStateFor(Player) would throw an unexpected exception, which can cause FeatherMorphNearestAttackableGoal to fail and related entities to disappear**
release
2.0.2
2.0.211 июл. 2025 г.267Minecraft: 1.21.4folia, paper
Что нового
**We recommend upgrading to this hotfix release to prevent a potential bug in AI modification that can cause entities to be removed by the server.**
## Bug Fix
- **Fixed a bug where `MorphManager#getDisguiseStateFor(Player)` would throw an unexpected exception, which can cause `FeatherMorphNearestAttackableGoal` to fail and related entities to disappear**
release
2.2.1
2.2.11 июл. 2025 г.417Minecraft: 1.21.7folia, paper
Что нового
Please note that stepping on players disguised as Happy Ghasts for a while might result in being kicked by the server for flying. Enabling `allow-flight` in the` server.properties` might help resolve the issue.
You might also want to check the [2.2.0 changelog](https://modrinth.com/plugin/feathermorph/version/2.2.0).
## Other
- We are now 1.21.7
release
2.2.0
2.2.025 июн. 2025 г.644Minecraft: 1.21.6folia, paper
Что нового
**Please note that stepping on players disguised as Happy Ghasts for a while might result in being kicked by the server for flying. Enabling `allow-flight` in the `server.properties` might help resolve the issue.**
*You might need the latest 2.9.0 PacketEvents development build, which can be found on their description page.*
## New Feature
- Implemented Disguise Waypoint feature
- This will replace the player's waypoint while they are disguising themselves
- Added support for Ghastling variant for Happy Ghast
## Bug Fix
- Zombie villager watcher using the wrong value set when applying the villager type and profession
release
2.0.0
2.0.015 июн. 2025 г.604Minecraft: 1.21.4folia, paper
Что нового
*Changelog translated via DeepSeek, with some manual proofreading*
## New Features
- **Implemented new mod communication protocol**
- V2 (1.21.3 ~1.21.4) and V1 (1.21.3-) are still supported by the plugin
- **Added *Magic Bottle***
- Can collect disguises of friendly mobs and other players
- Can be crafted using *Redstone* and *Glass Bottle*, sneak and interact an entity to collect
- Corresponding permission nodes: Use (`feathermorph.magic_bottle.use`) and Exclude(`feathermorph.magic_bottle.exclude`)
- "Use" node determines if a player can use the Magic Bottle functionality
- "Exclude" node determines if a player can be targeted for form collection
- Particle effects now appear when players unlock new disguises
- Added mod/resource pack localization support for new plugin items
- Added variant support for Pigs, Cows, and Chickens in 1.21.5
- Added aggressive animation for the evoker skill
- Added **experimental** interaction mirror controller `BY_RANGE`
- For players using client integration, we recommend installing the latest 1.21.5 mod version (≥ 0.11.2) to avoid potential issues
- When enabled, actions will sync to both the original target and nearby players disguised as that target
- If a player isn't disguised, actions will sync to nearby players disguised as them
- `/fm stat` command now displays the current player data backend
## Bug Fixes
- Evoker ability fixes:
- Fixed Fangs not spawning on slabs or spawning at incorrect positions
- Fang spawning is no longer affected by player pitch/yaw
- Quick disguise can be attempted on non-LivingEntity entities
- Fixed console command autocomplete spamming `This command is currently only available to players.`
## Miscellaneous
- **Migrated from ProtocolLib to PacketEvents**
- Now FeatherMorph requires PacketEvents 2.8.0 or later to use the Server Renderer!
- **Removed ModelEngine support**
- **Changed behavior for Instance Network**
- **Notice!** Version 2.x instance networks are INCOMPATIBLE with 1.x versions!
- Sub-instance servers will now sync player data from the main server upon connection, rather than reading from local plugin directories
- **Moved API events to `xyz.nifeather.morph.api.events`**
- API version is now 3
- Added new API event `DataStoreSwitchEvent`
- Triggers when `MorphManager` sets a new data storage backend
- **Added some workarounds for Towny integration issues on Folia**
- **Plugin will now attempt to revert changes made to the player when they leave the server**
- **Attempted fix for `java.net.BindException: Address already in use` during instance network restarts on Linux**
- **Tweaked Evoker ability implementation:**
- The plugin will now attempt to keep vexes summoned near the summoner
- Summoned vexes will now attempt to attack the target more aggressively
- Players can always summon Vexes by sneaking when the server difficulty is Peaceful
- A maximum of 6 Vexes can be summoned per player
- Summoned Vexes are removed when the player undisguises
- **Removed player list modification functionality**
- Adjusted attack animation trigger conditions
- Improved implementation of the Disguise Selection server GUI
- Player head disguise no longer includes cancel-disguise behavior
- Bumped Java-WebSocket from 1.5.7 to 1.6.0
- Re-migrate attribute modifiers in skill configurations to resolve Windows migration bugs
- Update checks now return more detailed results
release
2.1.0
2.1.015 июн. 2025 г.916Minecraft: 1.21.5folia, paper
Что нового
*Changelog translated via DeepSeek, with some manual proofreading*
## New Features
- **Implemented new mod communication protocol**
- V2 (1.21.3 ~1.21.4) and V1 (1.21.3-) are still supported by the plugin
- **Added *Magic Bottle***
- Can collect disguises of friendly mobs and other players
- Can be crafted using *Redstone* and *Glass Bottle*, sneak and interact an entity to collect
- Corresponding permission nodes: Use (`feathermorph.magic_bottle.use`) and Exclude(`feathermorph.magic_bottle.exclude`)
- "Use" node determines if a player can use the Magic Bottle functionality
- "Exclude" node determines if a player can be targeted for form collection
- Particle effects now appear when players unlock new disguises
- Added mod/resource pack localization support for new plugin items
- Added variant support for Pigs, Cows, and Chickens in 1.21.5
- Added aggressive animation for the evoker skill
- Added **experimental** interaction mirror controller `BY_RANGE`
- For players using client integration, we recommend installing the latest 1.21.5 mod version (≥ 0.11.2) to avoid potential issues
- When enabled, actions will sync to both the original target and nearby players disguised as that target
- If a player isn't disguised, actions will sync to nearby players disguised as them
- `/fm stat` command now displays the current player data backend
## Bug Fixes
- Evoker ability fixes:
- Fixed Fangs not spawning on slabs or spawning at incorrect positions
- Fang spawning is no longer affected by player pitch/yaw
- Quick disguise can be attempted on non-LivingEntity entities
- Fixed console command autocomplete spamming `This command is currently only available to players.`
## Miscellaneous
- **Migrated from ProtocolLib to PacketEvents**
- Now FeatherMorph requires PacketEvents 2.8.0 or later to use the Server Renderer!
- **Removed ModelEngine support**
- **Changed behavior for Instance Network**
- **Notice!** Version 2.x instance networks are INCOMPATIBLE with 1.x versions!
- Sub-instance servers will now sync player data from the main server upon connection, rather than reading from local plugin directories
- **Moved API events to `xyz.nifeather.morph.api.events`**
- API version is now 3
- Added new API event `DataStoreSwitchEvent`
- Triggers when `MorphManager` sets a new data storage backend
- **Added some workarounds for Towny integration issues on Folia**
- **Plugin will now attempt to revert changes made to the player when they leave the server**
- **Attempted fix for `java.net.BindException: Address already in use` during instance network restarts on Linux**
- **Tweaked Evoker ability implementation:**
- The plugin will now attempt to keep vexes summoned near the summoner
- Summoned vexes will now attempt to attack the target more aggressively
- Players can always summon Vexes by sneaking when the server difficulty is Peaceful
- A maximum of 6 Vexes can be summoned per player
- Summoned Vexes are removed when the player undisguises
- **Removed player list modification functionality**
- Adjusted attack animation trigger conditions
- Improved implementation of the Disguise Selection server GUI
- Player head disguise no longer includes cancel-disguise behavior
- Bumped Java-WebSocket from 1.5.7 to 1.6.0
- Re-migrate attribute modifiers in skill configurations to resolve Windows migration bugs
- Update checks now return more detailed results
beta
2.0.0.rc5
2.0.0.rc511 июн. 2025 г.132Minecraft: 1.21.4folia, paper
Что нового
This release fixes a critical bug that may occur on Folia and causes invisible disguises in the previous 2.0.0 beta/rc releases.
Glad we caught this before the final 2.0.0/2.1.0 release :v
beta
2.1.0.rc5
2.1.0.rc511 июн. 2025 г.189Minecraft: 1.21.5folia, paper
Что нового
This release fixes a critical bug that may occur on Folia and causes invisible disguises in the previous 2.0.0 beta/rc releases.
Glad we caught this before the final 2.0.0/2.1.0 release :v
beta
2.0.0.rc4
2.0.0.rc45 июн. 2025 г.173Minecraft: 1.21.4folia, paper
Что нового
## New Feature
- Current player datastore is now included in `/fm stat` output
## Bug Fix
- Server Renderer throws `NullPointerException` upon shutdown if there's any offline player registered
beta
2.1.0.rc4
2.1.0.rc45 июн. 2025 г.175Minecraft: 1.21.5paper
Что нового
## New Feature
- Current player datastore is now included in `/fm stat` output
## Bug Fix
- Server Renderer throws `NullPointerException` upon shutdown if there's any offline player registered
beta
2.0.0.rc3
2.0.0.rc330 мая 2025 г.167Minecraft: 1.21.4folia, paper
Что нового
## Other
- **Attempt to fix `java.net.BindException: Address already in use` from throwing when restarting Instance Network on Linux**
- Migrate attribute modifier abilities again in order to solve the failure from previous releases happened on Windows
beta
2.1.0.rc3
2.1.0.rc330 мая 2025 г.188Minecraft: 1.21.5paper
Что нового
## Other
- **Attempt to fix `java.net.BindException: Address already in use` from throwing when restarting Instance Network on Linux**
- Migrate attribute modifier abilities again in order to solve the failure from previous releases happened on Windows
beta
2.1.0.rc1
2.1.0.rc127 мая 2025 г.163Minecraft: 1.21.5paper
Что нового
## Bug Fix
- **When using Instance Network, host server throws `java.lang.IllegalStateException: A master server should have both master and slave instances active!` when player unlocks or lost disguise**
## Other
- **Plugin will now attempt to undo changes made to player when they leave the server**
- Added use (`feathermorph.magic_bottle.use`) and exclude (`feathermorph.magic_bottle.exclude`) permission for Magic Bottle
- "use" controls whether a player can use the feature
- "exclude" controls whether a player's disguise can be collected using the bottle
- Bump Java-Websocket from 1.5.7 to 1.6.0
beta
2.0.0.rc1
2.0.0.rc127 мая 2025 г.98Minecraft: 1.21.4folia, paper
Что нового
## Bug Fix
- **When using Instance Network, host server throws `java.lang.IllegalStateException: A master server should have both master and slave instances active!` when player unlocks or lost disguise**
## Other
- **Plugin will now attempt to undo changes made to player when they leave the server**
- Added use (`feathermorph.magic_bottle.use`) and exclude (`feathermorph.magic_bottle.exclude`) permission for Magic Bottle
- "use" controls whether a player can use the feature
- "exclude" controls whether a player's disguise can be collected using the bottle
- Bump Java-Websocket from 1.5.7 to 1.6.0
beta
2.0.0.beta6
2.0.0.beta623 мая 2025 г.163Minecraft: 1.21.4folia, paper
Что нового
**Notice! This Release comes with API and major Instance Network changes!**
## Bug Fix
- Sometimes FeatherMorph will process its own *WrapperPlayServerEntityEquipment* packet
## Other
- **Added some workarounds for the Towny Integration on Folia servers**
- Currently, it resolves the problem where the fly ability's state is not updated when the player being teleported to/from a town
- **Changed behavior for Instance Network**
- **Please note that this change makes this and future 2.x releases INCOMPATIBLE with 1.x!**
- Now "Client" servers will no longer use their local player data once they finish the setup successfully
- Improved implementation of the Disguise Selection server GUI
- Headmorph for player heads now no longer undisguise the player when the skin is equal between current disguise and the item
## API Changes
- **Moved API events to `xyz.nifeather.morph.api.events` package**
- Added `DataStoreSwitchEvent`
- Called when `MorphManager`'s data storage is being switched
- Added events about the Magic Bottle
- `PlayerCollectMagicBottleEvent` and `PlayerConsumeMagicBottleEvent`
- FeatherMorph API version has bumped to *3*
beta
2.1.0.beta6
2.1.0.beta623 мая 2025 г.188Minecraft: 1.21.5paper
Что нового
**Notice! This Release comes with API and major Instance Network changes!**
## Bug Fix
- Sometimes FeatherMorph will process its own *WrapperPlayServerEntityEquipment* packet
## Other
- **Added some workarounds for the Towny Integration on Folia servers**
- Currently, it resolves the problem where the fly ability's state is not updated when the player being teleported to/from a town
- **Changed behavior for Instance Network**
- **Please note that this change makes this and future 2.x releases INCOMPATIBLE with 1.x!**
- Now "Client" servers will no longer use their local player data once they finish the setup successfully
- Improved implementation of the Disguise Selection server GUI
- Headmorph for player heads now no longer undisguise the player when the skin is equal between current disguise and the item
## API Changes
- **Moved API events to `xyz.nifeather.morph.api.events` package**
- Added `DataStoreSwitchEvent`
- Called when `MorphManager`'s data storage is being switched
- Added events about the Magic Bottle
- `PlayerCollectMagicBottleEvent` and `PlayerConsumeMagicBottleEvent`
- FeatherMorph API version has bumped to *3*
beta
2.1.0.beta3
2.1.0.beta310 мая 2025 г.488Minecraft: 1.21.5paper
Что нового
Things that may not work: Cross-Server data sync (Instance Service)
### **Starting from 2.0.0, FeatherMorph will require PacketEvents 2.8.0 or later to enable Server Renderer! You can download [here](https://ci.codemc.io/job/retrooper/job/packetevents/)**
## New Features
- Added *Magic Bottle* that can be used to collect disguise from other players or friendly mobs
- *Yes, it's acturally called Magic Bottle*
- Can be crafted using *Redstone* and *Glass Bottle*, sneak and interact an entity to collect
- For recipe configuration, see *recipe.yml*
- Added **experimental** Interaction Mirror Controller `BY_RANGE`
- **Notice!** If player has installed client integration, we suggest using the latest 1.21.5 release ( ≥ 0.11.2 ), otherwise something might go weird...
- Once enabled, interactions will be mirrored to the target and nearby players disguised as the target
- If the player is not disguised, interactions will still be mirrored to nearby players disguise as the player
## Bug Fixes
- `Cannot register channel. Too many channels registered!` is thrown when a player join the server ([#37](https://github.com/NiFeather/FeatherMorph/issues/37))
- Console logs `This command is currently only available to players.` when completing commands
## Others
- We now spawn particles nearby the player when they unlocked disguises
- Added Mod/Resourcepack i18n support for Disguise Tool and Magic Bottle for new plugin installations
- If you wish to use this feature on an existing installation, remove/move away the old recipe configuration (`recipe.yml`) to let the plugin generate a new one, and it should good to go!
beta
2.1.0.beta2
2.1.0.beta22 мая 2025 г.352Minecraft: 1.21.5paper
Что нового
### **Starting from 2.0.0, FeatherMorph will require PacketEvents 2.8.0 or later to enable Server Renderer! You can download [here](https://ci.codemc.io/job/retrooper/job/packetevents/)**
## New Feature
- Implement mod protocol V3
- V2 (1.21.3 ~ 1.21.4) and V1 (1.21.3-) is still supported meanwhile
- Added aggressive animation for the evoker skill
## Bug Fixes
- Bug fixes for the evoker skill
- Fixes fangs not spawning on slabs or spawns at the wrong location
- Fangs are no longer affected by player pitch
- After *2.1.0.beta1*, players can reset their Mob Reveal by re-joining the server
- Trying to activate quick disguise for non-living entities is allowed
## Other
- Tweaked the evoker skill
- The plugin will now attempt to keep vexes summoned near the summoner
- Summoned vexes will now attempt to attack the target as soon as possible
- When the server difficulty is not Peaceful, players can now always summon vexes by sneaking
- Players can now only have up to 6 vexes summoned at once
- Summoned vexes will now get cleared once the summoner is undisguised
- Removed player list modification feature
- Tweaked trigger condition for attack animation
beta
2.1.0.beta1
2.1.0.beta124 апр. 2025 г.346Minecraft: 1.21.5paper
Что нового
### **Starting from 2.0.0, FeatherMorph will require PacketEvents 2.8.0 or later to enable Server Renderer! You can download [here](https://ci.codemc.io/job/retrooper/job/packetevents/)**
## New Feature
- Added support for Pig, Cow, and Chicken variants
## Bug Fix
- Trying to fix UpdateHandler again
## Other
- **Migrate from ProtocolLib to PacketEvents**
- So now FeatherMorph requires PacketEvents 2.8.0 or later to use the Server Renderer
- But they haven't released 2.8.0 yet, so here comes the beta build
- **Removed ModelEngine support**
- Tweaked the behavior of Mob Revealing
- Plugin will now attempt to filter players' attribute packets to prevent log spam on clients
- Checking updates via the command will now display more check status, rather than only notify about new updates/already the latest
release
1.5.9
1.5.916 апр. 2025 г.1,1 тыс.Minecraft: 1.21.4folia, paper
Что нового
## Bug Fixes
- The riding workaround for the Creaking disguise doesn't work on Folia and causes error spam
- Migrating attributes for skills throw errors on Windows
- Obviously, I forgot to test it on Windows :>
release
1.5.8
1.5.87 апр. 2025 г.474Minecraft: 1.21.4folia, paper
Что нового
A hotfix release to fix some client integration issues.
**Attention!** 1.5.8 now requires the latest Paper build, which you can download at [https://papermc.io/downloads/paper](https://papermc.io/downloads/paper)
## Bug Fixes
- 1.21.1 FMC clients are unable to activate the client integration
- Plugin throws Plugin must be enabled to send messages error on shutdown
## Other
- Can't use client integration on recent versions of Paper
release
1.3.10
1.3.107 апр. 2025 г.1,4 тыс.Minecraft: 1.21.1folia, paper
Что нового
A hotfix release to fix some client integration issues.
## Bug Fixes
- 1.21.1 FMC clients are unable to activate the client integration
- Plugin throws `Plugin must be enabled to send messages` error on shutdown
release
1.3.8
1.3.85 апр. 2025 г.149Minecraft: 1.21.1folia, paper
Что нового
This release backported some changes from the 1.21.4 branch
## New Feature
- Added experimental FeatherMorphAPI
- Currently, we only have a few utilities, and a FeatherMorphDirectAccess to allow people to access the plugin's internal components...
- Added new Towny integration command `town_morph_flags`, which can be used for setting town settings about morphs
- **Notice! This replaces the original `toggle-town-morph-flight` command and its settings, also now residents and trusted players can always fly in the town.**
- Currently, there are two flags available for tweak
- `allow_outsiders_flight`: Whether to allow outsiders to fly in town
- `allow_outsiders_use_skill`: Whether to allow outsiders to activate skills in town
- Abilities currently are not controlled by the flags, but they will be in the future
## Bug Fixes
- Some management commands don't filter disguises using the input ID correctly
- Disabling client integration when running causes all 1.21.4 players using FMC to disconnect
- Sometimes the plugin doesn't process new players' data correctly, and *java.lang.IllegalStateException* is thrown.
- `HealsFromEntityAbility` throws `Accessing LegacyRandomSource from multiple threads` on recent versions of Folia
- Player's max health not scaling when switched from one disguise to another
- Admins' client integration isn't aware when a player rejoins the server with disguise
## Other
- Update PluginBase
- Attempt to patch a possible memory leak
- When Headmorph is disabled, trying to activate this feature will no longer receive the feedback about it being disabled
- Tweaked the implementation of Interaction Mirror
- Some minor performance optimize
- The plugin will now attempt to align the disguise's facing direction along with the bed when the "Lay" action is played
release
1.5.7
1.5.721 мар. 2025 г.862Minecraft: 1.21.4folia, paper
Что нового
## New Feature
- Added new Towny integration command `town_morph_flags`, which can be used for setting town settings about morphs
- **Notice! This replaces the original `toggle-town-morph-flight` command and its settings, also now residents and trusted players can always fly in the town.**
- Currently, there are two flags available for tweak
- `allow_outsiders_flight`: Whether to allow outsiders to fly in town
- `allow_outsiders_use_skill`: Whether to allow outsiders to activate skills in town
- Abilities currently are not controlled by the flags, but they will be in the future
## Other
- Some minor performance optimize
- The plugin will now attempt to align the disguise's facing direction along with the bed when the "Lay" action is played
## API
- API version is now bumped to *2*
- **Moved *SkillType* and *AbilityType* to the API, and renamed them to *SkillNames* and *AbilityNames***
release
1.5.6
1.5.64 мар. 2025 г.829Minecraft: 1.21.4folia, paper
Что нового
## New Feature
- The plugin will now attempt to avoid players sitting on others disguised as Creaking
## Bug Fixes
- Player's max health not scaling when switched from one disguise to another
- Admins' client integration isn't aware when a player rejoins the server with disguise
## Other
- The *Dig down* action for Warden no longer makes players vanish, instead they'll just become invisible
## API
- `FeatherMorphDirectAccess#requestManager` will now return `IManageRequests` rather than `RequestManager`
- Fixed calling `FeatherMorphDirectAccess#requestManager` throws `NullDependencyException`
- *Someone used a wrong type*
- Added `APIMeta`, can be used to lookup some API metadata
- Currently only API version
- Added `UtilitiesAlpha#lookupDisguiseUUIDFromPlayer` and `UtilitiesAlpha#isServerBackend`
- `lookupDisguiseUUIDFromPlayer` can be used to lookup for someone's disguise's virtual entity UUID, if the server is running ServerBackend
- ...And `isServerBackend` can be used to check if the server is running ServerBackend
release
1.5.5
1.5.519 февр. 2025 г.709Minecraft: 1.21.4folia, paper
Что нового
## New Feature
- Added experimental FeatherMorphAPI
- Currently, we only have a `FeatherMorphDirectAccess` to allow people to access the plugin's internal components, and a `UtilitiesAlpha` that only has two functions 🧐
## Bug Fixes
- `HealsFromEntityAbility` throws `Accessing LegacyRandomSource from multiple threads` on recent versions of Folia
- The distance for Interaction Mirror is hard-coded to 100 blocks, rather than the distance configured in the config file
## Other
- We no longer try to recover AI modifications on server shutdown
- Tweaked the implementation of Server Renderer
release
1.5.4
1.5.45 февр. 2025 г.741Minecraft: 1.21.4folia, paper
Что нового
A hotfix release for the plugin throws IllegalStateException for new players in some cases ( Like killing mobs, or logout )
## Bug Fix
- **Sometimes the plugin doesn't process new players' data correctly**
release
1.5.3
1.5.32 февр. 2025 г.196Minecraft: 1.21.4folia, paper
Что нового
## Bug Fix
- Some management commands don't filter disguises using the input ID correctly
- Disabling client integration when running causes all 1.21.4 players using FMC to disconnect
## Other
- When Headmorph is disabled, trying to activate this feature will no longer receive the feedback about it being disabled
- Update PluginBase
- Attempt to fix a possible memory leak
- Tweaked the implementation of Interaction Mirror
release
1.3.5
1.3.519 янв. 2025 г.2,3 тыс.Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
## **NOTICE!**
Support for the legacy permission nodes is now **ended**!
Please make sure **ALL** related permissions are moved to the new prefix `feathermorph.XXX` before updating!
## New Features
- **Added initial support for specifying disguise properties (variants)**
- Currently only through the disguise command!
- The usage is: `/morph <id> <properties>`
- For example, to disguise as an Armor Stand with arms: `/morph minecraft:armor_stand [armor_stand_show_arms=true]`
- For multiple properties: `/morph foo:bar [property1=value1, property2=value2, ...]`
- It's now possible to specify worlds that disabled the disguise feature through the config
- `config.yml > world_option > disabled_worlds`
- Wither Skeleton disguise now can make the player immune from the wither effect
- Added new placeholder `feathermorph_state_provider_is?<namespace>`, to identify the category (**The namespace**) of the player's disguise
- For example, to identify whether a player is using a player disguise: `feathermorph_state_provider_is?player`
- To identify whether a player is disguised as a mob: `feathermorph_state_provider_is?minecraft`
- Added new placeholder `feathermorph_state_id_is?<id>`, to identify whether a player is using a specific disguise.
- For example, to identify whether a player disguises as Creaking: `feathermorph_state_id_is?minecraft:creaking`
## Bug Fixes
- **Client session not being cleared after player disconnects**
- Placeholder expansions are no longer available after `/papi reload`
- The plugin doesn't download Minecraft language file that matches the currently running version
- Towny integration tries to process an offline player when it has been added to a town
## Other
- **We're now a pure Paper plugin!**
- That means Spigot servers are no longer able to load this plugin
- **Support for legacy permission nodes (`xiamomc.morph.XXX`) is now DEPRECATED! Please move to the new permission node (`feathermorph.XXX`)!**
- For example, `xiamomc.morph.chat_override` is now `feathermorph.chat_override`
- **Changed placeholder names from `morph_...` to `feathermorph_...`**
- **Changed how FeatherMorph communicates with client mods**
- Tweaked Placeholder expansions' behavior
- Now returns more specific feedback if the parameter is not valid or the player is not disguised
- Player disguises no longer have a Custom Name metadata
- We now use Brigadier to register commands
release
1.5.1
1.5.119 янв. 2025 г.655Minecraft: 1.21.4folia, paper, purpur
Что нового
## **NOTICE!**
Support for the legacy permission nodes is now **ended**!
Please make sure **ALL** related permissions are moved to the new prefix `feathermorph.XXX` before updating!
## New Features
- **Added initial support for specifying disguise properties (variants)**
- Currently only through the disguise command!
- The usage is: `/morph <id> <properties>`
- For example, to disguise as an Armor Stand with arms: `/morph minecraft:armor_stand [armor_stand_show_arms=true]`
- For multiple properties: `/morph foo:bar [property1=value1, property2=value2, ...]`
- It's now possible to specify worlds that disabled the disguise feature through the config
- `config.yml > world_option > disabled_worlds`
- Players can now unlock the Creaking disguise by breaking a natural and active Creaking Heart
- Added two actions for Creaking disguise
- Illagers will now attempt to avoid players disguised as Creaking
- Wither Skeleton disguise now can make the player immune from the wither effect
- Added new placeholder `feathermorph_state_provider_is?<namespace>`, to identify the category (**The namespace**) of the player's disguise
- For example, to identify whether a player is using a player disguise: `feathermorph_state_provider_is?player`
- To identify whether a player is disguised as a mob: `feathermorph_state_provider_is?minecraft`
- Added new placeholder `feathermorph_state_id_is?<id>`, to identify whether a player is using a specific disguise.
- For example, to identify whether a player disguises as Creaking: `feathermorph_state_id_is?minecraft:creaking`
## Bug Fixes
- **Client session not being cleared after player disconnects**
- Placeholder expansions are no longer available after `/papi reload`
- The plugin doesn't download Minecraft language file that matches the currently running version
- Towny integration tries to process an offline player when it has been added to a town
## Other
- **We're now a pure Paper plugin!**
- That means Spigot servers are no longer able to load this plugin
- **Support for legacy permission nodes (`xiamomc.morph.XXX`) is now DEPRECATED! Please move to the new permission node (`feathermorph.XXX`)!**
- For example, `xiamomc.morph.chat_override` is now `feathermorph.chat_override`
- **Changed placeholder names from `morph_...` to `feathermorph_...`**
- **Changed how FeatherMorph communicates with client mods**
- Tweaked Placeholder expansions' behavior
- Now returns more specific feedback if the parameter is not valid or the player is not disguised
- Player disguises no longer have a Custom Name metadata
- We now use Brigadier to register commands
beta
1.5.0.rc4
1.5.0.rc412 янв. 2025 г.361Minecraft: 1.21.4folia, paper
Что нового
## **NOTICE!**
Support for the legacy permission nodes is now **ended**!
Please make sure **ALL** related permissions are moved to the new prefix `feathermorph.XXX` before updating!
## New Feature
- Now it's possible to specify worlds that disabled the disguise feature through the config
- `config.yml > world_option > disabled_worlds`
## Bug Fixes
- Placeholder expansions are no longer available after `/papi reload`
- Some options are no longer tweakable through the `/fm option` command after moving to brigadier
## Other
- **Support for legacy permission nodes (`xiamomc.morph.XXX`) is now DEPRECATED! Please move to the new permission node (`feathermorph.XXX`)!**
- For example, `xiamomc.morph.chat_override` is now `feathermorph.chat_override`
- Tweaked Placeholder expansions' behavior
- Now returns more specific feedback if the parameter is not valid or the player is not disguised
beta
1.5.0.rc3
1.5.0.rc33 янв. 2025 г.431Minecraft: 1.21.4folia, paper
Что нового
## New Feature
- **Added initial support for specifying disguise properties (variants)**
- Currently only through the disguise command!
- The usage is: `/morph <id> <properties>`
- For example, to disguise as an Armor Stand with arms: `/morph minecraft:armor_stand [armor_stand_show_arms=true]`
- For multiple properties: `/morph foo:bar [property1=value1, property2=value2, ...]`
## Bug Fixes
- *Cannot get key of Legacy Material* happens when initializing Disguise Tool's recipe
- Opening GUI crashes the server if running recent versions of Paper
## Other
- We're now a pure Paper plugin!
- That means Spigot servers are no longer able to load this plugin
- All child commands under `/fm manage` now accepts entity selectors (`@a`, `@p`, etc.)
- `/fm reload` can be run without arguments once again (And it reloads config and language, just like before)
beta
1.5.0.rc2
1.5.0.rc219 дек. 2024 г.486Minecraft: 1.21.4folia, paper
Что нового
## Other
- Creaking disguise now can only unlock by destroying a **naturally generated and active** Creaking Heart
- Tweaked Mob AI modification implements
beta
1.5.0.rc1
1.5.0.rc113 дек. 2024 г.243Minecraft: 1.21.4folia, paper, purpur
Что нового
## New Feature
- Illagers will now attempt to avoid players disguised as Creaking
## Bug Fix
- `UnMorphCommand` throws errors when tab-completing any commands from the console
beta
1.5.0.beta1
1.5.0.beta17 дек. 2024 г.155Minecraft: 1.21.4folia, paper, purpur
Что нового
Yes, 1.21.3 is skipped :P
## Bug Fix
- Towny integration tries to process an offline player when it has been added to a town
## Other
- We are now 1.21.4
- Player disguises no longer have a Custom Name metadata
- Use Brigadier to register commands
beta
1.4.0.beta1
1.4.0.beta130 нояб. 2024 г.689Minecraft: 1.21.3folia, paper
Что нового
## New Features
- Players can now unlock the Creaking disguise by breaking an activated Creaking Heart
- The state of the Creaking Heart can be found at `F3 -> Targeted Block -> "creaking: ..."`
- Added two actions for Creaking disguise
- Used for toggling eye glowing
## Bug Fixes
- **Client session not being cleared after player disconnects**
- The plugin doesn't download Minecraft language file that matches the currently running version
## Other
- Ignore Transient Creaking, and remove it from known disguises
release
1.3.3
1.3.329 нояб. 2024 г.1 тыс.Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
Reupload because some baka uploaded the wrong artifact :)
## New Features
- Added new placeholder `feathermorph_state_provider_is?<namespace>`, to identify the category (**The namespace**) of the player's disguise
- For example, to identify whether a player is using a player disguise: `feathermorph_state_provider_is?player`
- To identify whether a player is disguised as a mob: `feathermorph_state_provider_is?minecraft`
- Added new placeholder `feathermorph_state_id_is?<id>`, to identify whether a player is using a specific disguise.
- For example, to identify whether a player disguises as Creaking: `feathermorph_state_id_is?minecraft:creaking`
## Bug Fix
- When using certain plugins, attacking others in regions that disabled PVP will still apply effects to them
## Other
- **Renamed placeholders from `morph_...` to `feathermorph_...`**
- Added warnings for hot load and reload
alpha
1.4.0.alpha4 (Reupload)
1.4.0.alpha429 нояб. 2024 г.67Minecraft: 1.21.3folia, paper
Что нового
Reupload because some baka uploaded the wrong artifact :)
This version also comes with some changes in 1.3.2, for more details, see [1.3.2 changelog](https://modrinth.com/plugin/feathermorph/version/1.3.2)
## New Feature
- Wither Skeleton disguise now can make the player immune from the wither effect
- Added new placeholder `feathermorph_state_provider_is?<namespace>`, to identify the category (**The namespace**) of the player's disguise
- For example, to identify whether a player is using a player disguise: `feathermorph_state_provider_is?player`
- To identify whether a player is disguised as a mob: `feathermorph_state_provider_is?minecraft`
- Added new placeholder `feathermorph_state_id_is?<id>`, to identify whether a player is using a specific disguise.
- For example, to identify whether a player disguises as Creaking: `feathermorph_state_id_is?minecraft:creaking`
## Bug Fixes
- Yaw/Pitch convert error with Ender Dragon and Phantom disguise in server renderer
- When using certain plugins, attacking others in regions that disabled PVP will still apply effects to them
## Other
- **Changed placeholder names from `morph_...` to `feathermorph_...`**
- **Changed how FeatherMorph communicates with client mods**
- Legacy mods are still supported at least until the 1.22 update!
- Added warnings for hot load and reload
- Tweaked Creaking disguise's max health to 20
release
1.3.2
1.3.25 нояб. 2024 г.860Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
## Bug Fix
- Fixed multiple Instance Network issues, including:
- It never starts
- The WebSocket server isn't closed upon configuration reload
- The WebSocket client doesn't get handled correctly upon configuration reload
- The client tries to reconnect multiple times on fail
## Other
- Added workarounds for health modifiers
- Trying to solve some mysterious issues with health scaling
- **Also, if you are using *HuskSync* or something else like it, you may want to add these attribute modifiers to the ignore list:**
- `feathermorph:health_modifier`
- `feathermorph:fm_health_modifier`
- **And also for these in case something strange happens:**
- `minecraft:health_modifier`
- `minecraft:fm_health_modifier`
alpha
1.4.0.alpha2
1.4.0.alpha24 нояб. 2024 г.255Minecraft: 1.21.3paper
Что нового
## Bug Fix
- ~~Instance Network doesn't start~~
- It starts, but it's broken, still not usable now
## Other
- **Update to 1.21.3**
release
1.3.1
1.3.128 окт. 2024 г.402Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
## If your server has experimental features enabled, we suggest updating this version to avoid a dupe glitch!
**Also if you're updating from 1.2.x, please also check the 1.3.0 changelog**
## Bug Fixes
- Quick disguise triggers ignoring the item held
- Disguises constructed from entities still apply random properties
## Other
- **Bump InventoryGUI**
- Fixes an item dupe glitch
release
1.3.0
1.3.024 окт. 2024 г.367Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
## **This version includes some changes related to permissions, please attention!**
- Permissions will now use `feathermorph` as the prefix instead of `xiamomc.morph`, while other usages remain unchanged.
- Support for legacy permission nodes will be removed in 1.5.0.
- Which is expected to be released with the 1.22 winter drop.
### We recommend updating ProtocolLib to version 5.3.0, which you can download [here](https://github.com/dmulloy2/ProtocolLib/releases).
## New Features
- **Inventory GUI for Disguise Action selection**
- **Added Disguise Tool**
- This replaces the old skill item.
- By default, the disguise tool can be obtained through crafting using *Feather* + *Redstone*. The recipe can be configured in `recipes.yml`.
- ---
- *Assuming we are using the default keybinds:*
- Players can open the disguise selection GUI with *Sneak + RMB*, and unmorph themselves with *Sneak + LMB*.
- When disguising, use *RMB* to activate skills, and *LMB* to open disguise action selection.
- ---
- You can also execute the command `/fm make_disguise_tool` while holding an item to make it a Disguise Tool.
- **Towny Integration**
- It is now possible to set whether flying is allowed in the wilderness in worlds with Towny enabled.
- Players can also set whether their town allows flying through the command `/toggle-town-morph-flight`. By default, flying is allowed in all towns.
- The permission node for this command is `feathermorph.toggle_town_fly`
- ---
- Players can fly in towns that allow flying if they meet any of the following conditions:
- The player is a resident/mayor of the town.
- The player is trusted by the town.
- The player and the town belong to the same nation.
- The player's town is allied with the target town.
- **Note!** Due to the mysterious teleport event trigger conditions of Folia, there may be **bypass issues** on these servers.
- It is currently known that using the vanilla teleport command will not trigger the event, so avoid using this command to teleport others whenever possible.
## Bug Fixes
- The packet that hides a player from other's TAB list is also sent to the hidden player
- And causes the hidden player’s client don't display their skin.
- Armor stand disguises do not correctly present the source entity’s pose.
- Creeper disguises do not have charged variants.
## Other
- **Changed permission prefix**
- Permission nodes have changed from `xiamomc.morph.XXX` to `feathermorph.XXX`.
- **Changed package name**
- Package name has changed from `xiamomc.morph.XXX` to `xyz.nifeather.morph.XXX`.
-
- **Tweaked Skill Configuration and Player Data Storage**
- Skill configurations are now distributed in the `skills` directory, stored as `<namespace>/<id>.json`.
- For example, the skill configuration for `minecraft:sheep` is located at `skills/minecraft/sheep.json`.
- Player configurations are now stored in the `playerdata` directory as `<UUID>.json`.
- The original `data.json` and `skills.json` will be renamed to `data.json.old` and `skills.json.old`.
- **Added profile request batching**
- Requests for player profiles in the plugin will now be processed in batches at intervals to prevent Mojang API from rejecting them with' 429 Too Many Requests` when many requests are made.
- Warden disguises will now become invisible after the digging animation finishes.
- Removed TAB integration
- It is no longer needed.
release
1.2.7
1.2.75 окт. 2024 г.891Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
## Bug Fix
- Disguises having random variants doesn't randomize upon disguising, instead it prints warnings to the console. (`The given property '...' doesn't exist`)
release
1.2.6
1.2.630 сент. 2024 г.318Minecraft: 1.21, 1.21.1folia, paper, purpur
Что нового
## New Features
- ***(Experimental)*** Allow hiding disguised players from the TAB list
- ***(Experimental)*** Allow displaying player disguises on the TAB list
## Other
- **Removed suggestion about using the client mod**
- **Allow 1.21 servers for using this**
- *That said, we still suggest upgrading your server to 1.21.1 since 1.21 is no longer supported by Paper and we target the latest 1.21.1 API in the dev environment*
- Tweaked some disguise's icon on the selection GUI
- The disguise selection GUI will now play sound when opening and flipping pages
- The UUID of the disguise now has a more specific rule to generate
- But the client still doesn't have much chance to crack it, as long as they don't have access to the plugin configuration
release
1.2.5 (1.21.1)
1.2.517 сент. 2024 г.626Minecraft: 1.21.1folia, paper, purpur
Что нового
## New Features
- **Added Inventory GUI for disguise selection**
- You can open it using the `/morph` command! With no arguments, it will open the GUI instead of complaining that there are not enough arguments.
- <iframe width="560" height="315" src="https://www.youtube-nocookie.com/embed/t34tOnvE21c" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
- Now can configure whether players can fly in water/lava in different worlds
## Bug Fix
- ServerSetEquipCommand doesn't construct the client command correctly
- And cause the client can't see the disguise's equipment
## Other
- The undisguise operation now plays the same sound as the disguise op
- Avoid modifying the mob's AI twice
- I don't know why a modified mob could get passed to the plugin again, so let's make a workaround for this...
release
1.2.1 (1.21.1)
1.2.117 авг. 2024 г.2,5 тыс.Minecraft: 1.21.1folia, paper, purpur
Что нового
## New Feature
### **Disguise Actions**
*Or Disguise Emotes/Animations*
You can play the action using the client mod >= 0.6.4 or `/play-action` command.
The permission node for the action is `xiamomc.morph.emote.<DisguiseID>.<ActionID>`
- You can check the Action ID using the `/play-action` command.
- For example, the node of Allay Dancing action is `xiamomc.morph.emote.minecraft.allay.dance`
- **The node for Player disguises is `xiamomc.morph.emote.player.all.<ActionID>`**
Currently, these actions only have visual effects, they don't interact with the environment.
1.2.1 comes with these actions bundled:
| Disguise | Action(s) |
| --- | --- |
| Allay | Dance |
| Warden | Roar, Sniff, Dig down, Appear |
| Armadillo | Roll up |
| Cat | Lay, Sit |
| Fox | Sit, Sleep |
| Frog | Eat(Use tongue) |
| Panda | Sit |
| Piglin | Dance |
| Player | Lay, Crawling |
| Pufferfish | Inflate, Deflate |
| Shulker | Peek, OPen |
| Sniffer | Sniff |
| Wolf | Sit |
## Bug Fix
- Disguises are not recovered after reloading configuration
## Other
- **Tweaked the node of abilities and skills for player disguise**
- It's now `xiamomc.morph.skill.player.all.<SkillID>`
release
1.1.5 (1.21.1)
1.1.510 авг. 2024 г.284Minecraft: 1.21.1folia, paper, purpur
Что нового
## Other
- Update to 1.21.1
release
1.1.4 (1.21)
1.1.42 авг. 2024 г.1,3 тыс.Minecraft: 1.21folia, paper, purpur
Что нового
This release mainly fixed several issues when running on Folia.
## Bug Fixes
- Zombie Villager disguise doesn't have random variants
- Rabbit disguise doesn't have the Killer Bunny variant
- Fixed several issues with Folia, this includes:
- Can only disguise in overworld
- InteractionMirror may throw `async getEntities` when players are in different regions
## Other
- Move the process of random variants from the server disguise renderer to MorphManager
release
1.1.3 (1.21)
1.1.327 июл. 2024 г.401Minecraft: 1.21folia, paper, purpur
Что нового
## New Feature
- **Allow changing whether to modify mobs' AI to make them react to the disguise**
- **For your sanity, we don't recommend using `/reload` or any method that loads/unloads this plugin when this option is turned on!**
- Toggling this option requires a server restart!
## Bug Fix
- Skills and abilities are not re-applied upon the player's join
## Other
- Removed several internal dependencies
- And make the plugin file ~50% smaller!
- Attempt to optimize HUD display performance
- Lowered the frequency of revealing value sent to the client
release
1.1.2 (1.21)
1.1.221 июл. 2024 г.363Minecraft: 1.21folia, paper, purpur
Что нового
## Other
- Make this plugin work on Paper Build #106
- And it's not backward compatible, you will need to update Paper to use!
release
1.1.1 (1.21)
1.1.117 июл. 2024 г.288Minecraft: 1.21folia, paper, purpur
Что нового
A small release to fix an annoying problem.
*PS: If you encountered an issue with updating disguise or MorphManager, please try [this build](https://github.com/XiaMoZhiShi/FeatherMorph/actions/runs/9986222865) on our GitHub!*
## Bug Fix
- **The maximum health does not update when switching from mob disguises to player disguises**
release
1.1.0 (1.21)
1.1.016 июл. 2024 г.1 тыс.Minecraft: 1.21folia, paper, purpur
Что нового
## New Features
- **Horse disguise now can make players step on one-block height**
- **Added toggle to switch if flying in fluids is allowed**
- This can nerf some behavior, like mining Ancient Debris in lava in the Nether
- Add permissions for abilities
- Now every ability from a disguise will have a matching permission node.
- The node format is `xiamomc.morph.ability.<DisguiseID>.<AbilityID>`
- For example, the Night Vision ability for Enderman disguise is `xiamomc.morph.ability.minecraft.enderman.morph.night_vision`
- **Because the permission check has a high performance impact, we added an option to disable it. You can disable this feature through the config file or using the `/fm option ability_check_permissions` command to toggle.**
## Bug Fixes
- Projectiles launched by players having a wrong speed
- Armor Stand disguise has a different arm status between the client and the server
- Some mobs don't avoid players like expected after updating `1.1.0-beta.4`
- Slime and Magma Cube disguises have a wrong size on the server side
- Slime and Magma Cube disguises are always at a fixed size when bounding box modification is disabled
## Other
- **Vexes summoned by a player will now attack the mob that the player attacks or attacked by the player**
- Iron Golem disguise will now throw mobs higher on attack
beta
1.1.0-beta.8 (1.21)
1.1.0-beta.86 июл. 2024 г.435Minecraft: 1.21folia, paper, purpur
Что нового
*I guess we are close to the stable release?*
## Bug Fix
- Armor Stand disguise has a different arm status between the client and the server
## Other
- **Only send attributes that are needed for a disguise**
beta
1.1.0-beta.7 (1.21)
1.1.0-beta.73 июл. 2024 г.176Minecraft: 1.21folia, paper, purpur
Что нового
## Bug Fixes
- **Waking up when disguised will cause clients nearby to disconnect with protocol error**
- Fixed multiple errors with the Client Disguise Renderer
- **It's recommended to install ProtocolLib to use the Server Disguise Renderer, CDR is now half-broken, and we plan to remove it in the future.**
- The ability doesn't get removed first upon reapplying
## Other
- Send attribute packets, again.
- Yes, it's needed. For example, the player's scale :(
beta
1.1.0-beta.6 (1.21)
1.1.0-beta.618 июн. 2024 г.664Minecraft: 1.21folia, paper, purpur
Что нового
## Bug Fixes
- **Llama disguise can cause a network protocol error on the client**
- Slime and Magma Cube disguises have a wrong size on the server side
- Slime and Magma Cube disguises are always at a fixed size when bounding box modification is disabled
- Player disguise will still try to create a virtual entity even if the bound player is offline
## Other
- **We are now 1.21**
- Prevent sending packets that are not needed
beta
1.1.0-beta.5 (1.20.6, Folia 1.20.6)
1.1.0-beta.511 июн. 2024 г.820Minecraft: 1.20.6folia, paper, purpur
Что нового
## Bug Fixes
- **Cat disguise with Server Renderer would cause exceptions on the server side**
- **Traveling through worlds while disguised would make players nearby disconnect with "Network Protocol Error"**
- Plugin throws an exception about can't send plugin messages while disabling
## Other
- Forcing disguise someone no longer searches for which mob they're looking at
beta
1.1.0-beta.4 (1.20.6, Folia 1.20.6)
1.1.0-beta.49 июн. 2024 г.128Minecraft: 1.20.6folia, paper, purpur
Что нового
## New Features
- Initial support for multiple backends working at once
- *Merged from 1.20.4, also brings ModelEngine4 support if possible*
- Add permissions for abilities
- Now every ability from a disguise will have a matching permission node.
- The node format is `xiamomc.morph.ability.<DisguiseID>.<AbilityID>`
- For example, the Night Vision ability for Enderman disguise is `xiamomc.morph.ability.minecraft.enderman.morph.night_vision`
- **Because the permission check has a high performance impact, we added an option to disable it. You can disable this feature through the config file or using the `/fm option ability_check_permissions` command to toggle.**
## Other
- **Vexes summoned by a player will now attack the mob that the player attacks or attacked by the player**
- Iron Golem disguise will now throw mobs higher on attack
- Changed the method used to modify mobs' ai in the world
- Completed the hostility and avoidance relationship between creatures and disguises
beta
1.1.0-beta.3 (1.20.6, Folia 1.20.6)
1.1.0-beta.330 мая 2024 г.301Minecraft: 1.20.6folia, paper, purpur
Что нового
## New Feature
- **Horse disguise now can make players step on one-block height**
## Bug Fixes
- **Wolf variants are not synced to the client**
- **Frog variants are not written to packets using the correct type**
- And causes some errors
- InteractionMirror doesn't process predicates correctly
release
1.0.17 (1.20.4, Folia 1.20.4)
1.0.1717 мая 2024 г.1,5 тыс.Minecraft: 1.20.4folia, paper, purpur
Что нового
## New Features
- **Initial support for multiple backends working at once**
- I'm calling it *initial* because it changes some core components, and I'm not sure if other components would work as expected
- **Initial support for ModelEngine4**
- The disguise ID is `model4:<model name>`
beta
1.1.0-beta.2
1.1.0-beta.210 мая 2024 г.323Minecraft: 1.20.6folia, paper
Что нового
It seems that ProtocolLib for 1.20.6 is now usable, you can install it to use the Server Renderer.
## Bug Fix
- Frog variants are unable to display with the Server Renderer
## Other
- Added Wolf variant support
- This doesn't sync to the client but will come in future releases.
- Fixed effect particle for disguises
beta
1.1.0-beta.1
1.1.0-beta.17 мая 2024 г.135Minecraft: 1.20.6paper
Что нового
PS: Because ProtocolLib doesn't support 1.20.6, the Server Renderer will not work now.
## Other
- Initial 1.20.6 support
- Client Renderer may not fully work.
release
1.0.15 (1.20.4, Folia 1.20.4)
1.0.156 мая 2024 г.243Minecraft: 1.20.4folia, paper, purpur
Что нового
## Bug Fix
- Triggering InteractionMirror between two different regions would throw an exception
## Other
- Disabled ChatOverride and InteractionMirror on new installations by default
- These features are originally made for fun, and not considered to keep this long... So I'm planning to remove these in the future.
release
1.0.14 (1.20.4, Folia 1.20.4)
1.0.1410 апр. 2024 г.621Minecraft: 1.20.4folia, paper, purpur
Что нового
## Bug Fixes
- Disguising as disguises that have variants like Panda and Villager will cause other clients to have a lag spike
- The sonic boom skill couldn't be used on Folia
- Trader Llama disguise has an invalid hurt sound
release
1.0.13 (1.20.4, Folia 1.20.4)
1.0.1325 мар. 2024 г.531Minecraft: 1.20.4folia, paper, purpur
Что нового
## Bug Fix
- **Exceptions are thrown upon disguise grant or revoke if the instance network is disabled**
## Other
- **Folia support**
- It has been a while, and we don't see any further errors on our server, so let's merge it into the mainline!
beta
1.0.12+folia.1 (Folia 1.20.4)
1.0.12+folia.123 мар. 2024 г.81Minecraft: 1.20.4folia
Что нового
## New Feature
- **(Beta) Added instance network**
- This can sync players' disguise unlock statements across multiple FeatherMorph instances.
- Check the config for more information! (`root -> multi_instance`)
## Bug Fixes
- Teleport skill finds an incorrect destination to teleport sometimes
- Creeper disguise doesn't have a powered variant
release
1.0.12 (1.20.4)
1.0.1223 мар. 2024 г.241Minecraft: 1.20.4paper, purpur
Что нового
## New Feature
- **(Beta) Added instance network**
- This can sync players' disguise unlock statements across multiple FeatherMorph instances.
- Check the config for more information! (`root -> multi_instance`)
## Bug Fixes
- Teleport skill finds an incorrect destination to teleport sometimes
- Creeper disguise doesn't have a powered variant
release
0.13.20 (1.20.2)
0.13.208 мар. 2024 г.356Minecraft: 1.20.2paper, purpur
Что нового
## New Features
- **Added [TAB](https://modrinth.com/plugin/tab-was-taken) integration. Players' custom tags will be hidden when they disguise**
- Added some fly-related permissions
- To allow a player to fly, it needs `xiamomc.morph.can_fly` permission. (Allowed by default)
- Flag `xiamomc.morph.can_fly.in.<world_id>` as false if you don't wish someone to fly in a specific world, where `world_id` is the world's name, like `world_nether` or `world_the_end`
- `xiamomc.morph.can_fly.always` is used to determine if someone could always fly ignoring any other conditions (Hunger, World permission, etc.). The only way to block is to disable the flight
## Bug Fix
- `drop` subcommand under `/fm skin_cache` only accepts alphabets in lowercase for Tab completion
## Other
- Declared some permissions' default value
- Tweaked default config for new installations
- Add wildcard (`*`) to the Tab completion for `/fm manage unmorph` command
beta
1.0.10+folia.1 (Folia 1.20.4)
1.0.10+folia.18 мар. 2024 г.94Minecraft: 1.20.4folia
Что нового
## New Features
- **Added [TAB](https://modrinth.com/plugin/tab-was-taken) integration. Players' custom tags will be hidden when they disguise**
- Added some fly-related permissions
- To allow a player to fly, it needs `xiamomc.morph.can_fly` permission. (Allowed by default)
- Flag `xiamomc.morph.can_fly.in.<world_id>` as false if you don't wish someone to fly in a specific world, where `world_id` is the world's name, like `world_nether` or `world_the_end`
- `xiamomc.morph.can_fly.always` is used to determine if someone could always fly ignoring any other conditions (Hunger, World permission, etc.). The only way to block is to disable the flight
## Bug Fix
- `drop` subcommand under `/fm skin_cache` only accepts alphabets in lowercase for Tab completion
## Other
- Declared some permissions' default value
- Tweaked default config for new installations
- Add wildcard (`*`) to the Tab completion for `/fm manage unmorph` command
release
1.0.10 (1.20.4)
1.0.108 мар. 2024 г.390Minecraft: 1.20.4paper, purpur
Что нового
## New Features
- **Added [TAB](https://modrinth.com/plugin/tab-was-taken) integration. Players' custom tags will be hidden when they disguise**
- Added some fly-related permissions
- To allow a player to fly, it needs `xiamomc.morph.can_fly` permission. (Allowed by default)
- Flag `xiamomc.morph.can_fly.in.<world_id>` as false if you don't wish someone to fly in a specific world, where `world_id` is the world's name, like `world_nether` or `world_the_end`
- `xiamomc.morph.can_fly.always` is used to determine if someone could always fly ignoring any other conditions (Hunger, World permission, etc.). The only way to block is to disable the flight
## Bug Fix
- `drop` subcommand under `/fm skin_cache` only accepts alphabets in lowercase for Tab completion
## Other
- Declared some permissions' default value
- Tweaked default config for new installations
- Add wildcard (`*`) to the Tab completion for `/fm manage unmorph` command
alpha
1.0.9-folia.2 (Folia 1.20.4)
1.0.9-folia.24 мар. 2024 г.82Minecraft: 1.20.4folia
Что нового
## Bug Fix
- Fixed another bunch of thread errors:
- Disguising as Chicken with Fox around will spam error in the console and finally make the plugin stop working
- Disguising in The End or Nether will throw a thread error
- Sometimes disguising will cause errors when doing attribute modification or initializing ambient sound
- `/fm reload` throws off-main thread error after reloading data
alpha
1.0.9+folia.1 (Folia 1.20.4)
1.0.9+folia.129 февр. 2024 г.83Minecraft: 1.20.4folia
Что нового
Another test build for making Folia support!
If you meet any issues, please report them on our [GitHub issue tracker]([https://github.com/XiaMoZhiShi/FeatherMorph/issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues))!
## Bug Fixes
- **Several off-main thread exceptions that prevent players from disguising themselves**
- Processing meta packets throws `async getEntities()` exception
## Some features from the dev branch
*These features are still pending and may change in future!*
- Added permission to allow players to use the fly ability (`xiamomc.morph.can_fly`)
- Allow players with permission to ignore the flying conditions and always fly(`xiamomc.morph.can_fly.always`)
- Fixed `skin drop` only accepts lower alphabet for Tab Completion
- Added wildcard (`*`) to `manage unmorph` command that can undisguise all disguised players
release
0.13.19 (1.20.2)
0.13.1923 февр. 2024 г.184Minecraft: 1.20.2paper, purpur
Что нового
## New Features
- **Added `skin_cache` command**
- Used to interact with the skin cache, like fetch, delete, copy, and rename, also can view a cached skin by disguising.
- **Players disguised as Warden no longer trigger Sculk Sensors when moving around**
- *This includes walking, jumping, and running, but not including riding. If someone tries to mount or dismount, it will still get heard from sensors*
- Can also not get heard by other Warden when performing included actions above
- **Play disguise sound when a disguised player gets hurt**
- Warden and Iron Golem disguise now gives the player attack damage buff but also decreases their attack speed
## Bug Fixes
- Llama Spit launches too slow
- Reconnecting the server can cause the attribute modifiers to apply multiple times
- The idle sound for Wolf disguise is incorrect
- Ender Dragon and Warden disguise lacking some extra sounds
- Ender Dragon and Warden disguise has an incorrect idle sound volume
## Other
- Fixed this plugin cannot be imported via Jitpack
- Simplified permission requirements
- `/fm option` and all its subcommands now only require `xiamomc.morph.toggle` permission to use
release
1.0.9 (1.20.4)
1.0.923 февр. 2024 г.365Minecraft: 1.20.4paper, purpur
Что нового
## New Features
- **Added `skin_cache` command**
- Used to interact with the skin cache, like fetch, delete, copy, and rename, also can view a cached skin by disguising.
- **Players disguised as Warden no longer trigger Sculk Sensors when moving around**
- *This includes walking, jumping, and running, but not including riding. If someone tries to mount or dismount, it will still get heard from sensors*
- Can also not get heard by other Warden when performing included actions above
- **Play disguise sound when a disguised player gets hurt**
- Warden and Iron Golem disguise now gives the player attack damage buff but also decreases their attack speed
## Bug Fixes
- Llama Spit launches too slow
- Reconnecting the server can cause the attribute modifiers to apply multiple times
- The idle sound for Wolf disguise is incorrect
- Ender Dragon and Warden disguise lacking some extra sounds
- Ender Dragon and Warden disguise has an incorrect idle sound volume
## Other
- Fixed this plugin cannot be imported via Jitpack
- Simplified permission requirements
- `/fm option` and all its subcommands now only require `xiamomc.morph.toggle` permission to use
release
0.13.18 (1.20.2)
0.13.187 февр. 2024 г.199Minecraft: 1.20.2paper, purpur
Что нового
## Bug fixes
- Disguises always display the holder's equipment no matter what setting is when entering other players' sight
- Throwable projectiles (Like Snowball, Potion, etc.) launching too slow
- Player Disguises always display new skin fetched from the skin storage ignoring the one already cached
- Stopping the server while someone is disguising may print warnings to the console
## Other
- Play a sound when a player disguises itself
release
1.0.8 (1.20.4)
1.0.87 февр. 2024 г.391Minecraft: 1.20.4paper, purpur
Что нового
## Bug fixes
- Disguises always display the holder's equipment no matter what setting is when entering other players' sight
- Throwable projectiles (Like Snowball, Potion, etc.) launching too slow
- Player Disguises always display new skin fetched from the skin storage ignoring the one already cached
- Stopping the server while someone is disguising may print warnings to the console
## Other
- Play a sound when a player disguises itself
alpha
1.0.7+folia.1 (Folia 1.20.4)
1.0.7+folia.14 февр. 2024 г.80Minecraft: 1.20.4folia
Что нового
Our second attempt at making Folia support! Hope we won't meet some thread-safety problems XD
If you meet any issues, please report them to [this PR](https://github.com/XiaMoZhiShi/FeatherMorph/pull/7)!
## Bug Fixes
*These changes will soon released along with 1.0.8 next week*
- Disguise displaying player's equipment when displaying to other players in certain situations
- Throwable projectiles (Snowball, Potion, etc.) launched too slow
## Other
- **Folia support, we are here, again.**
release
0.13.17 (1.20.2)
0.13.173 февр. 2024 г.95Minecraft: 1.20.2paper, purpur
Что нового
## Bug fix
- **Unable to disguise as the player you looking at**
release
1.0.7 (1.20.4)
1.0.73 февр. 2024 г.167Minecraft: 1.20.4paper, purpur
Что нового
## Bug fix
- **Unable to disguise as the player you looking at**
release
0.13.16 (1.20.2)
0.13.163 февр. 2024 г.85Minecraft: 1.20.2paper, purpur
Что нового
## New feature
- **`CustomName` support for disguises**
## Bug fixes
- **Projectiles launched by players are moving too fast**
- **Localization missing for "Not enough space to disguise"** ([#6](https://github.com/XiaMoZhiShi/FeatherMorph/issues/6))
- And causes this message to always display a fallback message by default
- The variant attribute isn't cloned when cloning a cat disguise
- The collar color of a cat disguise isn't displayed properly
- Sounds for a disguise isn't played to other players
- The skin storage could store more than one skin for any player
- Admins' client mod not receiving aware packet when recovering a disguise from OfflineStore
## Other
- Some micro-optimizations
- Generate UUID based on specific data to avoid unnecessary randomness for player disguises
- Make Breeze disguises immune from fall damage
- Tweaked player skin fetch process
- Removed some obsolete workarounds
release
1.0.6 (1.20.4)
1.0.63 февр. 2024 г.64Minecraft: 1.20.4paper, purpur
Что нового
## New feature
- **`CustomName` support for disguises**
## Bug fixes
- **Projectiles launched by players are moving too fast**
- **Localization missing for "Not enough space to disguise"** ([#6](https://github.com/XiaMoZhiShi/FeatherMorph/issues/6))
- And causes this message to always display a fallback message by default
- The variant attribute isn't cloned when cloning a cat disguise
- The collar color of a cat disguise isn't displayed properly
- Sounds for a disguise isn't played to other players
- The skin storage could store more than one skin for any player
- Admins' client mod not receiving aware packet when recovering a disguise from OfflineStore
## Other
- Some micro-optimizations
- Generate UUID based on specific data to avoid unnecessary randomness for player disguises
- Make Breeze disguises immune from fall damage
- Tweaked player skin fetch process
- Removed some obsolete workarounds
release
1.0.4 (1.20.4)
1.0.415 янв. 2024 г.419Minecraft: 1.20.4paper, purpur
Что нового
## Bug Fixes
- **Parrot (And maybe Cat and Wolf) disguises may crash other players' connection**
- The console logs a warning when a player undisguise themselves while using an item (`Error occurred while syncing watcher: Cannot invoke "java.util.Map.remove(Object)" because "this.handMap" is null`)
## Other
- Also send attribute packet when sending disguise spawn packets
- Cancel metadata packet if it doesn't contain any data after a culling
release
0.13.14 (1.20.2)
0.13.1415 янв. 2024 г.95Minecraft: 1.20.2paper, purpur
Что нового
## Bug Fixes
- **Parrot (And maybe Cat and Wolf) disguises may crash other players' connection**
- The console logs a warning when a player undisguise themselves while using an item (`Error occurred while syncing watcher: Cannot invoke "java.util.Map.remove(Object)" because "this.handMap" is null`)
## Other
- Also send attribute packet when sending disguise spawn packets
- Cancel metadata packet if it doesn't contain any data after a culling
release
1.0.2 (1.20.4)
1.0.213 янв. 2024 г.156Minecraft: 1.20.4paper, purpur
Что нового
## New features
- **Added Warden disguise's sonic boom animation**
- **Added multiple disguises' attack animation**
- This includes: Iron Golem, Warden, Hoglin, Zoglin
## Bug fix
- **`/fm lookup` doesn't require permission to execute**
## Other
- Some small idle performance optimization
release
0.13.12 (1.20.2)
0.13.1213 янв. 2024 г.106Minecraft: 1.20.2paper, purpur
Что нового
## New features
- **Added Warden disguise's sonic boom animation**
- **Added multiple disguises' attack animation**
- This includes: Iron Golem, Warden, Hoglin, Zoglin
## Bug fix
- **`/fm lookup` doesn't require permission to execute**
## Other
- Some small idle performance optimization
release
0.12.16 (1.20 ~ 1.20.1)
0.12.1613 янв. 2024 г.3,7 тыс.Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## Bug Fix
- **`/fm lookup` doesn't require permission to execute**
release
0.13.11 (1.20.2)
0.13.118 янв. 2024 г.141Minecraft: 1.20.2paper, purpur
Что нового
A small release to hide these annoying warnings from appearing in the terminal by default (Unless `debug_output` is on):

We don't know why a non-nullable method from Minecraft could return a null value, but it happens, and it's very often :<
However, it doesn't seem to affect anything so far. We will keep tracking this issue until we find out why this could happen and what it affects.
release
1.0.1 (1.20.4)
1.0.18 янв. 2024 г.126Minecraft: 1.20.4paper, purpur
Что нового
A small release to hide these annoying warnings from appearing in the terminal by default (Unless `debug_output` is on):

We don't know why a non-nullable method from Minecraft could return a null value, but it happens, and it's very often :<
However, it doesn't seem to affect anything so far. We will keep tracking this issue until we find out why this could happen and what it affects.
release
1.0.0 (1.20.4)
1.0.04 янв. 2024 г.125Minecraft: 1.20.4paper, purpur
Что нового
**Starting from this version, FeatherMorph will only have [ProtocolLib](https://www.spigotmc.org/resources/protocollib.1997/) as
a dependency and no longer requires LibsDisguises.**
## New Feature
- **Implemented server-side disguise renderer**
- This will help us in making compatibility with Folia in the future.
- If ProtocolLib is not installed, we will use the client-side renderer instead.
## Other
- Disable ourselves when loaded on an unsupported Minecraft version
## Changes since 1.0.0-rc.1
### 1.0.0
- Fix Armor Stand disguises not applying `ShowArms` property
- Only display lookup warnings when `debug_output` is enabled
### 1.0.0-rc.2
- Handle several common exceptions during skin lookup
- Don't remove expired skins for now
- Fix disguises with no name displaying a blank nametag above their head
release
0.13.10 (1.20.2)
0.13.104 янв. 2024 г.84Minecraft: 1.20.2paper, purpur
Что нового
**Starting from this version, FeatherMorph will only have [ProtocolLib](https://www.spigotmc.org/resources/protocollib.1997/) as
a dependency and no longer requires LibsDisguises.**
## New Feature
- **Implemented server-side disguise renderer**
- This will help us in making compatibility with Folia in the future.
- If ProtocolLib is not installed, we will use the client-side renderer instead.
## Other
- Disable ourselves when loaded on an unsupported Minecraft version
## Changes since 0.13.10-rc.1
### 0.13.10
- Fix Armor Stand disguises not applying `ShowArms` property
- Only display lookup warnings when `debug_output` is enabled
### 0.13.10-rc.2
- Handle several common exceptions during skin lookup
- Don't remove expired skins for now
- Fix disguises with no name displaying a blank nametag above their head
beta
0.13.10-rc.1
0.13.10-rc.129 дек. 2023 г.108Minecraft: 1.20.2paper, purpur
Что нового
This is a Release Candidate release for **1.20.2** to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [GitHub Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires LibsDisguises to display disguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## Changes
- Fix update checker only checking featured versions for an update.
- Only send packets to affected players instead of the whole world
- Remove player-exclusive metadata instead of building a full meta of the disguise upon meta packets.
- Build full meta packet when constructing spawn packets.
- Use the V2 plan to fetch player disguises' skin
beta
1.0.0-rc.1
1.0.0-rc.129 дек. 2023 г.103Minecraft: 1.20.4paper, purpur
Что нового
This is a Release Candidate release for **1.20.4** to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [GitHub Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires LibsDisguises to display disguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## Changes
- Fix update checker only checking featured versions for an update.
- Only send packets to affected players instead of the whole world
- Remove player-exclusive metadata instead of building a full meta of the disguise upon meta packets.
- Build full meta packet when constructing spawn packets.
- Use the V2 plan to fetch player disguises' skin
beta
0.13.10-beta.5
0.13.10-beta.525 дек. 2023 г.85Minecraft: 1.20.2paper, purpur
Что нового
This is a Beta release for **1.20.2** to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [Github Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires LibsDisguises to display disguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## Changes
- Add support for Disguise Offline Storage (OfflineStore)
- Make disguise follow the player's `NoGravity` property
- **Only send packets to affected rather than all players in the same world**
- Fix some incorrect packet behaviors
beta
1.0.0-beta.5
1.0.0-beta.525 дек. 2023 г.75Minecraft: 1.20.4paper, purpur
Что нового
This is a Beta release for **1.20.4** to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [Github Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires LibsDisguises to display disguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## Changes
- Add support for Disguise Offline Storage (OfflineStore)
- Make disguise follow the player's `NoGravity` property
- **Only send packets to affected rather than all players in the same world**
- Fix some incorrect packet behaviors
beta
0.13.10-beta.3
0.13.10-beta.319 дек. 2023 г.78Minecraft: 1.20.2paper, purpur
Что нового
This is a Beta release for **1.20.2** to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [Github Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires LibsDisguises to display disguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## New Feature
- **Implemented server-side disguise renderer**
- Merged from 1.0.0-beta.3
## Other
- **Removed dependency on LibsDisguises**
- Removed GSit integration
- Because it relies on LibsDisguises integration
beta
1.0.0-beta.3
1.0.0-beta.319 дек. 2023 г.73Minecraft: 1.20.4paper, purpur
Что нового
This is a Beta release for **1.20.4** to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [Github Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires LibsDisguises to display disguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## Bug Fix
- ArmorStandWatcher not merging or writing NBT compounds correct
- Effect particles' opacity doesn't look right when an ambient effect is present
## Other
- Some minor optimizations
- Display an error message and disable the plugin itself when running on an unsupported version
beta
1.0.0-beta.2
1.0.0-beta.217 дек. 2023 г.76Minecraft: 1.20.4paper, purpur
Что нового
This is a Beta release to test our work on server-side disguise renderer implementation. If you find any issues, please report them on our [Github Issues](https://github.com/XiaMoZhiShi/FeatherMorph/issues)!
**This version no longer requires you to install LibsDisguises! Only [ProtocolLib](https://ci.dmulloy2.net/job/ProtocolLib/678/)!**
## New Feature
- **Implemented server-side disguise renderer**
- OfflineStore is not implemented, it will be done later
- Server-side SelfView is not supported. Because of client integration, we don't have a plan to make this yet...
## Other
- **Removed dependency on LibsDisguises**
- Removed GSit integration
- Because it relies on LibsDisguises integration
release
0.14.0
0.14.012 дек. 2023 г.136Minecraft: 1.20.3, 1.20.4paper, purpur
Что нового
## Other
- **Update to 1.20.4**
- Added skill and ability configuration for Breeze disguises
release
0.13.5
0.13.59 дек. 2023 г.87Minecraft: 1.20.2paper, purpur
Что нового
## New Features
- **Allow setting worlds that can't use the Fly ability**
- You can change the setting by using the `/fm option nofly_worlds <add|remove> <world name>` or edit in the config!
- **Added Residence integration, allows to set whether players can fly in a residence by setting the `nofly` flag**
## Bug Fix
- Changing a Player Disguise's skin on Windows using LibsDisguises backend will print a warning in the console
## Other
- Allow setting banned disguises using in-game commands
- `/fm option banned_disguises <add|remove> <full disguise id>`
- Allow setting NBT blacklist using in-game commands
- `/fm option blacklist_nbt_pattern <add|remove> <regex>`
- `/fm option blacklist_tags <add|remove> <NBT tag name>`
- Tweaked the update frequency of the Fly ability
- Some internal changes to InteractionMirror
alpha
0.13.4 ~ Folia (Obsolete)
0.13.416 нояб. 2023 г.126Minecraft: 1.20.2folia
Что нового
**This is an alpha release to test our work on Folia support. If you find any issues, please report them [here](https://github.com/XiaMoZhiShi/FeatherMorph/pull/3)!**
## New Feature
- **Implemented Client Disguise Renderer Protocol**
## Other
- Only check the `Release` channel for updates
release
0.13.4
0.13.46 нояб. 2023 г.130Minecraft: 1.20.2paper, purpur
Что нового
## New Feature
- **Implemented Client Disguise Renderer Protocol**
- This supports clients to render other players' disguises and will be enabled automatically as *"Plan B"* when LibsDisguises is not installed and the `client.client_renderer` config option is enabled.
- We would eventually make our server-side disguise renderer and no longer depend on LibsDisguises, but for now, let's do this first.
- Requires clients to install [FeatherMorphClient >= 0.4.4](https://modrinth.com/mod/feathermorphclient/changelog)!
## Other
- Only check for the `Release` channel for updates
- Also only check updates that are available for the current platform
alpha
0.13.3 ~ Folia
0.13.31 нояб. 2023 г.75Minecraft: 1.20.2folia
Что нового
**This is an alpha release to test our work on Folia support. If you find any issues, please report them [here](https://github.com/XiaMoZhiShi/FeatherMorph/pull/3)!**
Also note that because LibsDisguises doesn't support Folia, displaying other players' disguises is impossible now. We are working on making a client-side disguise renderer to solve this problem!
## New Feature
- **Initial Folia support**
release
0.12.15
0.12.1529 окт. 2023 г.594Minecraft: 1.20, 1.20.1paper, purpur
Что нового
**A hotfix for skill configurations not generating correctly on new installations.**
**If you are encountering some disguises (Mostly Ghast and Witch) don't have a skill (Which they should have one), delete `skills.json` and then update to this version would help!**
## New Feature
- You can now give someone all disguises from a provider by passing a `@all` argument to the `/fm manage grant` command.
## Bug Fix
- **Some skill configuration doesn't generate correctly on new installations**
release
0.13.3
0.13.329 окт. 2023 г.70Minecraft: 1.20.2paper, purpur
Что нового
**A hotfix for skill configurations not generating correctly on new installations.**
**If you are encountering some disguises (Mostly Ghast and Witch) don't have a skill (Which they should have one), delete `skills.json` and then update to this version would help!**
## Bug Fix
- **Some skill configuration doesn't generate correctly on new installations**
## Other
- Make FlyAbility checks for players' flight speed every once in a while
release
0.13.1
0.13.126 окт. 2023 г.62Minecraft: 1.20.2paper, purpur
Что нового
## Bug Fix
- Magma Cube Disguises' bounding box doesn't correct
## Other
- Initial Folia support?
- I don't know, they haven't supported 1.20.2 yet.
release
0.13.0
0.13.025 сент. 2023 г.80Minecraft: 1.20.2paper
Что нового
## New Feature
- You can now give someone all disguises from a provider by passing a `@all` argument to the `/fm manage grant` command.
## Other
- **We are now 1.20.2**
- Tweaked `zh_cn` and `en_us` localization about Exchange Requests
- This change was made to make it clearer: Someone wants to disguise as another's undisguised appearance.
- Use `/fm reload update_message` to update existing installations if you didn't change these two languages! *Otherwise you might need to manually update them.*
release
0.12.13
0.12.1314 сент. 2023 г.285Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## New Features
- **Allow setting whether players can fly when disguised as flyable mobs**
- Use `/fm option allow_flight <true|false>` to tweak!
- Added server-side revealing display
- Only displays a rough level yet, still needs a better implementation
- "Partial Revealed" stands for a player has a chance to be targeted by mobs
- "Revealed" stands for a player has been exposed and can be targeted by any mob
- If you wish to turn off *Disguise Revealing*, just use `/fm option revealing off` command and you're good to go!
release
0.12.12
0.12.126 сент. 2023 г.139Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## Bug Fix
- `/fm check_update` command doesn't require permission to execute
## Other
- Notify the command issuer rather than the whole online admins if an update check is performed manually
- Make `/fm manage morph` command still works when *Forced Disguise* is enabled
release
0.12.10
0.12.103 сент. 2023 г.100Minecraft: 1.20, 1.20.1paper, purpur
Что нового
**A hotfix for some remaining problems in the last release**
## Bug Fixes
- A possible StackOverFlowError in InteractionMirror
- Some changes in the last release may not take place on some Purpur servers
release
0.12.9
0.12.92 сент. 2023 г.70Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## New Feature
- Added a few commands to change a set of options in-game:
- InteractionMirror selection mode (`mirror_mode`)
- Log incoming packets from players (`log_incoming_packets`)
- Log outgoing packets to players (`log_outgoing_packets`)
## Bug Fix
- Fixed circular control not being handled correctly with `by_sight` mode in InteractionMirror
release
0.12.8
0.12.827 авг. 2023 г.80Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## Bug Fix
- **Fixed disguises not being handled correctly when *Forced Disguise* is configured upon config reload**
- And cause various exceptions
release
0.12.7
0.12.726 авг. 2023 г.75Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## New Feature
- **Added update checking**
- Plugin will now check for updates on Modrinth automatically every 3 hours
- You can disable this feature in the config or using the `/fm option check_update f` command
- **Server admins now can see disguises' owner name above their disguise (Requires FeatherMorphClient >= 0.3.6)**
- Implemented *Forced Disguise* feature ([#2](https://github.com/XiaMoZhiShi/FeatherMorph/issues/2))
- Once configured in the config, players will be forced to morph into the disguise you specified, and they will be unable to do any other operations about morphing
- Added `/fm lookup` command
- Server admins can use this command to look for disguises someone unlocked. This also supports filtering disguises using the given keywords
## Bug Fixes
- Turtle disguises can't breathe underwater
- *InteractionMirror* not handling disguised players properly under `by_sight` mode
release
0.12.6-1
0.12.6-14 авг. 2023 г.128Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## New Features
- **Witch disguises now can throw splash potions**
- Slowness, Poison, Weakness, Regeneration, Harming, and Healing potions will be randomly thrown once the player activates the skill
- **Added Disguise Revealing**
- For details on how this works -> https://modrinth.com/plugin/feathermorph/version/0.12.3-1
- You can turn it off in the config or use the `/fm option` command (`/fm option revealing off`)
## Other
- Tweaked how InteractionMirror hides hand swings
- Make `/fm manage morph` no longer requires a `minecraft:` prefix for vanilla disguise IDs
release
0.12.4
0.12.429 июн. 2023 г.129Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## Bug Fix
- `/fm stat` command doesn't requires permission to execute
alpha
0.12.3-1
0.12.3-127 июн. 2023 г.105Minecraft: 1.20.1paper, purpur
Что нового
A preview release for the upcoming *Disguise Revealing* feature.
## New Feature
- **Added *Disguise Revealing* Feature**
- Each player has a total of up to 100 points for *Revealing Point*, and it will decay for *0.1%/tick* (Or *0.2%/tick* if not disguised)
- Once a player gets attention from a mob, its *Revealing Point* will increase *0.36%*. If the *Point* reaches 20%, then there will be a chance that a mob will target the player. And if the *Point* comes to 80%, the disguise will become *Revealed* so that any mob can target the player.
- The *Revealing Point* may only increase once per 8 ticks by this event.
- When a player takes damage, its *Point* will instantly increase *1.5%*. And when a player deals damage, the *Point* will only increase a quarter of what it was when the damage was taken (*0.375%*).
- Every time a player interacts with a block or entity will increase *0.8%* of the *Point*.
- If a player places or destroys a block, they will increase *0.9%* of the *Point*.
- If a player morphs when it gets targeted by a mob, its *Point* will instantly increase up to *40%* unless it has already reached it
## Other
- Allow Piglins to target players if they dig gold blocks when disguising as Piglin
- Update protocols
- *Just realized that I tagged 0.1.6 as the **only** featured version of FMC(FeatherMorphClient) and never changed it again. Now it gets fixed and will display the correct versions now!*
release
0.12.3
0.12.321 июн. 2023 г.75Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## Other
- Make ChatOverride display message owner by default if detected an incompatible chat plugin
- Some plugins may change how chat messages get processed and break our permission check.
- In that case, we can't determine which one we are going to display, so displaying the revealed message seems to be a better solution since the unrevealed message can also be sent to the console.
- Make InteractionMirror ignore `Action.PHYSICAL` events
release
0.12.2
0.12.216 июн. 2023 г.117Minecraft: 1.20, 1.20.1paper, purpur
Что нового
## Bug Fix
- Bat disguise has a wrong visual offset on the server side
## Other
- Added a few APIs for getting the modified bounding box
beta
0.12.1
0.12.112 июн. 2023 г.97Minecraft: 1.20paper, purpur
Что нового
## Bug Fix
- Players' eye height not being set correctly on the server side when bounding box modification is enabled
alpha
0.12.0
0.12.010 июн. 2023 г.125Minecraft: 1.20paper, purpur
Что нового
## New Feature
- **Mobs like Iron Golem and Fox will now target players disguised as certain mobs**
## Bug Fix
- Message of API mismatch sent twice for players joined with an incompatible protocol version
## Other
- **We are now 1.20**
- Adapt LibsDisguises changes
- Villager disguises now have a random look for default
release
0.11.4
0.11.43 июн. 2023 г.570Minecraft: 1.19.4paper, purpur
Что нового
## Bug Fix
- **Fixed several settings not getting updated after reloading configuration**
## Other
- Update Chinese translation
release
0.11.3
0.11.31 июн. 2023 г.63Minecraft: 1.19.4paper, purpur
Что нового
## New Features
* **Implemented climbing ability for Spider disguises**
* Might be a bit choppy climbing since it requires some work on the client side to get smooth
* **Make serval disguises apply potion effects on attack**
* Husk applies Hunger, and Cave Spider applies Poison, etc.
* Added `/fm stat` command
* Can be used to check the plugin's stats
## Bug Fix
* **`/fm reload` requires `reset_loaded_message` instead of `update_message` to update translations**
## Other
* **Use `<namespace>:@default` to check whether all disguise under a certain namespace should be disabled**
* Make the plugin able to enable again after disabling
* Use SoftDepManager from PluginBase to detect GSit and PAPI
release
0.11.2
0.11.228 мая 2023 г.55Minecraft: 1.19.4paper, purpur
Что нового
## New Feature
- Allow toggling space check for bounding box modification
- It can be found next to the Modification option in config!
## Bug Fix
- **Fixed plugin keeps reporting ClassCastExceptions for config `exhaustion_base (The base distance for Hunger consumption)`**
- Fixed some other possible problems when reloading the config
release
0.11.1
0.11.126 мая 2023 г.69Minecraft: 1.19.4paper, purpur
Что нового
## New Features
* **Fly ability now consumes players' Hunger depending on how far they have traveled**
* Allow configuring the frequency of ambient sounds
## Bug Fixes
* **Players can activate skills right after disguising through the client integration**
* Dry-out damage can be reduced with Protection enchantments
* Ambient sounds playing too often
## Other
* **Checks whether there is enough space to disguise if Bounding box modification is enabled**
* Players now trigger Shulk Sensors while flying
release
0.10.8
0.10.817 мая 2023 г.89Minecraft: 1.19.4paper, purpur
Что нового
A hotfix for InteractionMirror logging doesn't work on Windows.
Linux is not affected and macOS shouldn't as well.
If it's still not working, please [open an issue](https://github.com/XiaMoZhiShi/MorphPlugin/issues/new) so that we can fix it for you as soon as possible!
## New Feature
- Send notifications to players about exchange requests
- It will pop up for someone who received/sent a request, or that request has been accepted/denied or expired.
## Bug Fixes
- **InteractionMirror logging doesn't work on Windows**
release
0.10.7
0.10.712 мая 2023 г.50Minecraft: 1.19.4paper, purpur
Что нового
## New Features
- **Added ambient sound to disguises**
- And players can still keep silent by sneaking!
- **Fish/Guardian/Dolphin disguises now have an ability that makes players dry out on the land**
## Bug Fixes
- The explosion skill for creeper disguise doesn't have a priming sound
- Tadpole and Drowned disguise doesn't have the Water Breathing ability
- Clients not aware of the change if the integration gets disabled through the `/fm option` command
## Other
- **Added wiki about [Translations](https://github.com/XiaMoZhiShi/MorphPlugin/wiki/Language-files-(Messages-and-Localization)) and the [config.yml](https://github.com/XiaMoZhiShi/MorphPlugin/wiki/config.yml)**
- Moved plugin message and ChatOverride configuration to `config.yml`
- Make `/fm manage morph` command displays suggestions about disguises rather than a single `<id>` string
- Some slight performance optimizations
release
0.10.6
0.10.68 мая 2023 г.69Minecraft: 1.19.4paper, purpur
Что нового
## Bug Fixes
* Not all necessary data from the disguise gets synced when a player joined with the client mod
* Current disguise stops working after trying to switch to an invalid disguise
* InteractionMirror triggering additional animations wrongly in some edge cases
## Other
* Reduces some overhead when updating disguises
release
0.10.5
0.10.52 мая 2023 г.56Minecraft: 1.19.4paper, purpur
Что нового
## New Feature
* **Iron Golem disguises now can knock mobs into the air like a normal Golem**
* Strider disguises now take damage from water and rain
## Bug Fixes
* **Option `mirror_ignore_disguised` always getting inverted when triggering InteractionMirror since 0.10.4**
* **Baby mob disguises having a larger bounding box that belongs to their adult version**
## Other
* Don't trigger InteractionMirror for dead players
* Prevent displaying cloud particles when unmorphing an offline player
* Make all disguise management commands autocomplete the `minecraft:` prefix for the given disguise identifier (If not found)
release
0.10.4
0.10.41 мая 2023 г.61Minecraft: 1.19.4paper, purpur
Что нового
## New Feature
* **Added automatic InteractionMirror logs cleanup**
* We remove files that are older than 7 days by default.
* You can configure how long a file should keep in the config or through the `/fm option mirror_log_cleanup` command.
## Bug Fixes
* InteractionMirror not being able to trigger after a rejoin, and not playing animations for players holding certain items.
## Other
* Move InteractionMirror logs to `logs` under the plugin's directory
* Use server language to send messages to clients if they're not sending which language they use
release
0.10.2
0.10.222 апр. 2023 г.89Minecraft: 1.19.4paper, purpur
Что нового
## New Feature
* **(Experimental) Added InteractionMirror logging**
* You can enable this feature in the config or through the `/fm option mirror_log_operations true`!
* Logs can be found in the `mirror_history.log`. They won't clear themselves now, but they will soon!
## Bug Fixes
* **Bounding boxes from Slime and Magma Cube disguises may mismatch between client and server**
* Can't toggle SelfView through actions
* InteractionMirror sometimes doesn't cancel arm swings for players where it should cancel
## Other
* Update protocols
* Fixed empty entry appearing in the disguise menu if someone doesn't have any disguise
* [Initial API events implmentations](https://github.com/XiaMoZhiShi/MorphPlugin/commit/8b59b27bf7be52682a3a09aee0c391f7203826e2)
release
0.10.0.06
0.10.0.069 апр. 2023 г.62Minecraft: 1.19.4paper, purpur
Что нового
## New Feature
* Allow updating all *active* translations using the plugin's built-in assets
* You can use `/fm reload update_message` to update them!
* Any existing modified translations will be replaced after the update!
* `override.json` is left untouched, except the comments added in this release.
* Translations for a language can be activated by changing the default language or joining with that specific language.
## Bug Fixes
* Fixed skill cooldown from a last disguise not getting replaced when a player changes its disguise
## Other
* **Several tweaks on English translate**
* Enable ChatOverride by default on new installations
* Add several comments in `messages/override.json`
beta
0.10.0.05
0.10.0.053 апр. 2023 г.63Minecraft: 1.19.4paper, purpur
Что нового
## New Features
* **Allow modifying players' bounding boxes depending on their disguise**
* Requires FeatherMorphClient >= 0.1.6 to fully work!
* Allow toggling Bounding box modification(`modify_bounding_boxes`) and Kick when client API mismatch(`force_protocol_version`) through the option command.
* Use `/fm option <option_id> <on|off>` to change them!
## Other
* Make server-side SelfView available again when joining with client mod
* Slightly optimized plugin performance
beta
0.10.0.03
0.10.0.0331 мар. 2023 г.123Minecraft: 1.19.4paper, purpur
Что нового
## Bug Fixes
* **Fixed other players not being able to clone disguise from a player who changed its disguise without unmorphing**
alpha
0.10.0.02
0.10.0.0231 мар. 2023 г.68Minecraft: 1.19.4paper, purpur
Что нового
## 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>`
## 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](https://github.com/XiaMoZhiShi/feathermorph-protocols) to communicate with clients**
* Removed the `deny` command in protocols
* Integrate bStats
alpha
0.10.0.01
0.10.0.0123 мар. 2023 г.99Minecraft: 1.19.4paper
Что нового
## 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.
release
0.9.4
0.9.418 мар. 2023 г.290Minecraft: 1.19.3paper, purpur
Что нового
**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*
release
0.9.3
0.9.312 мар. 2023 г.58Minecraft: 1.19.3paper, purpur
Что нового
## 🐛 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.**
release
0.9.2
0.9.211 мар. 2023 г.62Minecraft: 1.19.3paper, purpur
Что нового
## 🌟 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
release
0.9.1
0.9.128 февр. 2023 г.62Minecraft: 1.19.3paper, purpur
Что нового
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` to `example.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
release
0.9.0
0.9.021 февр. 2023 г.72Minecraft: 1.19.3paper, purpur
Что нового
## 🌟 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` and `by_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.
## 🐛 Bug Fixes
* Fixed creeper disguise doesn't have animation when exploding
## 🪶 Other
* Added `/fm` as an alias for command `/feathermorph`
release
0.8.7
0.8.724 янв. 2023 г.85Minecraft: 1.19.3paper, purpur
Что нового
### 🐛 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
release
0.8.6
0.8.622 янв. 2023 г.345Minecraft: 1.19.3paper, purpur
Что нового
First release on Modrinth