This is an alpha release to test our work on Folia support. If you find any issues, please report them here!
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
 
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 
@allargument to the/fm manage grantcommand. 
Bug Fix
- Some skill configuration doesn't generate correctly on new installations
 
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
 
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.
 
 
New Feature
- You can now give someone all disguises from a provider by passing a 
@allargument to the/fm manage grantcommand. 
Other
- We are now 1.20.2
 - Tweaked 
zh_cnanden_uslocalization about Exchange Requests- This change was made to make it clearer: Someone wants to disguise as another's undisguised appearance.
 - Use 
/fm reload update_messageto update existing installations if you didn't change these two languages! Otherwise you might need to manually update them. 
 
New Features
- Allow setting whether players can fly when disguised as flyable mobs
- Use 
/fm option allow_flight <true|false>to tweak! 
 - Use 
 - 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 offcommand and you're good to go! 
 
Bug Fix
/fm check_updatecommand 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 morphcommand still works when Forced Disguise is enabled 
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
 
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) 
 - InteractionMirror selection mode (
 
Bug Fix
- Fixed circular control not being handled correctly with 
by_sightmode in InteractionMirror 
Bug Fix
- Fixed disguises not being handled correctly when Forced Disguise is configured upon config reload
- And cause various exceptions
 
 
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 fcommand 
 - Server admins now can see disguises' owner name above their disguise (Requires FeatherMorphClient >= 0.3.6)
 - Implemented Forced Disguise feature (#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 lookupcommand- 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_sightmode 
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 optioncommand (/fm option revealing off) 
 
Other
- Tweaked how InteractionMirror hides hand swings
 - Make 
/fm manage morphno longer requires aminecraft:prefix for vanilla disguise IDs 
Bug Fix
/fm statcommand doesn't requires permission to execute
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!
 
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.PHYSICALevents 
Bug Fix
- Bat disguise has a wrong visual offset on the server side
 
Other
- Added a few APIs for getting the modified bounding box
 
Bug Fix
- Players' eye height not being set correctly on the server side when bounding box modification is enabled
 
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
 
 
Bug Fix
- Fixed several settings not getting updated after reloading configuration
 
Other
- Update Chinese translation
 
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 statcommand- Can be used to check the plugin's stats
 
 
Bug Fix
/fm reloadrequiresreset_loaded_messageinstead ofupdate_messageto update translations
Other
- Use 
<namespace>:@defaultto 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
 


