Bug Fix
- Fixed multiple Instance Network issues, including:
- It never starts
- The WebSocket server isn't closed upon configuration reload
- The WebSocket client doesn't get handled correctly upon configuration reload
- The client tries to reconnect multiple times on fail
Other
- Added workarounds for health modifiers
- Trying to solve some mysterious issues with health scaling
- Also, if you are using HuskSync or something else like it, you may want to add these attribute modifiers to the ignore list:
feathermorph:health_modifier
feathermorph:fm_health_modifier
- And also for these in case something strange happens:
minecraft:health_modifier
minecraft:fm_health_modifier
If your server has experimental features enabled, we suggest updating this version to avoid a dupe glitch!
Also if you're updating from 1.2.x, please also check the 1.3.0 changelog
Bug Fixes
- Quick disguise triggers ignoring the item held
- Disguises constructed from entities still apply random properties
Other
- Bump InventoryGUI
- Fixes an item dupe glitch
This version includes some changes related to permissions, please attention!
- Permissions will now use
feathermorph
as the prefix instead ofxiamomc.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.
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
- The permission node for this command is
- 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
tofeathermorph.XXX
.
- Permission nodes have changed from
- Changed package name
- Package name has changed from
xiamomc.morph.XXX
toxyz.nifeather.morph.XXX
.
- Package name has changed from
- 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 atskills/minecraft/sheep.json
.
- For example, the skill configuration for
- Player configurations are now stored in the
playerdata
directory as<UUID>.json
. - The original
data.json
andskills.json
will be renamed todata.json.old
andskills.json.old
.
- Skill configurations are now distributed in the
- 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.
New Features
- (Experimental) Allow hiding disguised players from the TAB list
- (Experimental) Allow displaying player disguises on the TAB list
Other
- Removed suggestion about using the client mod
- Allow 1.21 servers for using this
- That said, we still suggest upgrading your server to 1.21.1 since 1.21 is no longer supported by Paper and we target the latest 1.21.1 API in the dev environment
- Tweaked some disguise's icon on the selection GUI
- The disguise selection GUI will now play sound when opening and flipping pages
- The UUID of the disguise now has a more specific rule to generate
- But the client still doesn't have much chance to crack it, as long as they don't have access to the plugin configuration
New Features
- Added Inventory GUI for disguise selection
- You can open it using the
/morph
command! With no arguments, it will open the GUI instead of complaining that there are not enough arguments.
- You can open it using the
- Now can configure whether players can fly in water/lava in different worlds
Bug Fix
- ServerSetEquipCommand doesn't construct the client command correctly
- And cause the client can't see the disguise's equipment
Other
- The undisguise operation now plays the same sound as the disguise op
- Avoid modifying the mob's AI twice
- I don't know why a modified mob could get passed to the plugin again, so let's make a workaround for this...
New Feature
Disguise Actions
Or Disguise Emotes/Animations
You can play the action using the client mod >= 0.6.4 or /play-action
command.
The permission node for the action is xiamomc.morph.emote.<DisguiseID>.<ActionID>
- You can check the Action ID using the
/play-action
command. - For example, the node of Allay Dancing action is
xiamomc.morph.emote.minecraft.allay.dance
- The node for Player disguises is
xiamomc.morph.emote.player.all.<ActionID>
Currently, these actions only have visual effects, they don't interact with the environment.
1.2.1 comes with these actions bundled:
Disguise | Action(s) |
---|---|
Allay | Dance |
Warden | Roar, Sniff, Dig down, Appear |
Armadillo | Roll up |
Cat | Lay, Sit |
Fox | Sit, Sleep |
Frog | Eat(Use tongue) |
Panda | Sit |
Piglin | Dance |
Player | Lay, Crawling |
Pufferfish | Inflate, Deflate |
Shulker | Peek, OPen |
Sniffer | Sniff |
Wolf | Sit |
Bug Fix
- Disguises are not recovered after reloading configuration
Other
- Tweaked the node of abilities and skills for player disguise
- It's now
xiamomc.morph.skill.player.all.<SkillID>
- It's now
This release mainly fixed several issues when running on Folia.
Bug Fixes
- Zombie Villager disguise doesn't have random variants
- Rabbit disguise doesn't have the Killer Bunny variant
- Fixed several issues with Folia, this includes:
- Can only disguise in overworld
- InteractionMirror may throw
async getEntities
when players are in different regions
Other
- Move the process of random variants from the server disguise renderer to MorphManager
New Feature
- Allow changing whether to modify mobs' AI to make them react to the disguise
- For your sanity, we don't recommend using
/reload
or any method that loads/unloads this plugin when this option is turned on! - Toggling this option requires a server restart!
- For your sanity, we don't recommend using
Bug Fix
- Skills and abilities are not re-applied upon the player's join
Other
- Removed several internal dependencies
- And make the plugin file ~50% smaller!
- Attempt to optimize HUD display performance
- Lowered the frequency of revealing value sent to the client
A small release to fix an annoying problem.
PS: If you encountered an issue with updating disguise or MorphManager, please try this build on our GitHub!
Bug Fix
- The maximum health does not update when switching from mob disguises to player disguises
New Features
- Horse disguise now can make players step on one-block height
- Added toggle to switch if flying in fluids is allowed
- This can nerf some behavior, like mining Ancient Debris in lava in the Nether
- Add permissions for abilities
- Now every ability from a disguise will have a matching permission node.
- The node format is
xiamomc.morph.ability.<DisguiseID>.<AbilityID>
- For example, the Night Vision ability for Enderman disguise is
xiamomc.morph.ability.minecraft.enderman.morph.night_vision
- For example, the Night Vision ability for Enderman disguise is
- Because the permission check has a high performance impact, we added an option to disable it. You can disable this feature through the config file or using the
/fm option ability_check_permissions
command to toggle.
Bug Fixes
- Projectiles launched by players having a wrong speed
- Armor Stand disguise has a different arm status between the client and the server
- Some mobs don't avoid players like expected after updating
1.1.0-beta.4
- Slime and Magma Cube disguises have a wrong size on the server side
- Slime and Magma Cube disguises are always at a fixed size when bounding box modification is disabled
Other
- Vexes summoned by a player will now attack the mob that the player attacks or attacked by the player
- Iron Golem disguise will now throw mobs higher on attack
Bug Fixes
- Waking up when disguised will cause clients nearby to disconnect with protocol error
- Fixed multiple errors with the Client Disguise Renderer
- It's recommended to install ProtocolLib to use the Server Disguise Renderer, CDR is now half-broken, and we plan to remove it in the future.
- The ability doesn't get removed first upon reapplying
Other
- Send attribute packets, again.
- Yes, it's needed. For example, the player's scale :(
Bug Fixes
- Llama disguise can cause a network protocol error on the client
- Slime and Magma Cube disguises have a wrong size on the server side
- Slime and Magma Cube disguises are always at a fixed size when bounding box modification is disabled
- Player disguise will still try to create a virtual entity even if the bound player is offline
Other
- We are now 1.21
- Prevent sending packets that are not needed
Bug Fixes
- Cat disguise with Server Renderer would cause exceptions on the server side
- Traveling through worlds while disguised would make players nearby disconnect with "Network Protocol Error"
- Plugin throws an exception about can't send plugin messages while disabling
Other
- Forcing disguise someone no longer searches for which mob they're looking at
New Features
- Initial support for multiple backends working at once
- Merged from 1.20.4, also brings ModelEngine4 support if possible
- Add permissions for abilities
- Now every ability from a disguise will have a matching permission node.
- The node format is
xiamomc.morph.ability.<DisguiseID>.<AbilityID>
- For example, the Night Vision ability for Enderman disguise is
xiamomc.morph.ability.minecraft.enderman.morph.night_vision
- For example, the Night Vision ability for Enderman disguise is
- Because the permission check has a high performance impact, we added an option to disable it. You can disable this feature through the config file or using the
/fm option ability_check_permissions
command to toggle.
Other
- Vexes summoned by a player will now attack the mob that the player attacks or attacked by the player
- Iron Golem disguise will now throw mobs higher on attack
- Changed the method used to modify mobs' ai in the world
- Completed the hostility and avoidance relationship between creatures and disguises