## **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.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }