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.
 
 
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.
 
 
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
 
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!
 
 
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
 
New Features
- Added TAB 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_flypermission. (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, whereworld_idis the world's name, likeworld_netherorworld_the_end xiamomc.morph.can_fly.alwaysis 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
 - To allow a player to fly, it needs 
 
Bug Fix
dropsubcommand under/fm skin_cacheonly 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 unmorphcommand 
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 reloadthrows off-main thread error after reloading data
 
Another test build for making Folia support!
If you meet any issues, please report them on our GitHub issue tracker!
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 droponly accepts lower alphabet for Tab Completion - Added wildcard (
*) tomanage unmorphcommand that can undisguise all disguised players 
New Features
- Added 
skin_cachecommand- 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 optionand all its subcommands now only requirexiamomc.morph.togglepermission to use
 
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
 
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!
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.
 
Bug fix
- Unable to disguise as the player you looking at
 
New feature
CustomNamesupport for disguises
Bug fixes
- Projectiles launched by players are moving too fast
 - Localization missing for "Not enough space to disguise" (#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
 


