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
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
- Triggers when
- 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
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
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
- Called when
- Added events about the Magic Bottle
PlayerCollectMagicBottleEvent
andPlayerConsumeMagicBottleEvent
- FeatherMorph API version has bumped to 3
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
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)- 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!
- If you wish to use this feature on an existing installation, remove/move away the old recipe configuration (
Starting from 2.0.0, FeatherMorph will require PacketEvents 2.8.0 or later to enable Server Renderer! You can download here
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
Starting from 2.0.0, FeatherMorph will require PacketEvents 2.8.0 or later to enable Server Renderer! You can download here
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
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
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
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 townallow_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
- Notice! This replaces the original
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
throwsAccessing 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