*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
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" }