Bug Fix
- Fixed several settings not getting updated after reloading configuration
Other
- Update Chinese translation
New Features
- Implemented climbing ability for Spider disguises
- Might be a bit choppy climbing since it requires some work on the client side to get smooth
- Make serval disguises apply potion effects on attack
- Husk applies Hunger, and Cave Spider applies Poison, etc.
- Added
/fm stat
command- Can be used to check the plugin's stats
Bug Fix
/fm reload
requiresreset_loaded_message
instead ofupdate_message
to update translations
Other
- Use
<namespace>:@default
to check whether all disguise under a certain namespace should be disabled - Make the plugin able to enable again after disabling
- Use SoftDepManager from PluginBase to detect GSit and PAPI
New Feature
- Allow toggling space check for bounding box modification
- It can be found next to the Modification option in config!
Bug Fix
- Fixed plugin keeps reporting ClassCastExceptions for config
exhaustion_base (The base distance for Hunger consumption)
- Fixed some other possible problems when reloading the config
New Features
- Fly ability now consumes players' Hunger depending on how far they have traveled
- Allow configuring the frequency of ambient sounds
Bug Fixes
- Players can activate skills right after disguising through the client integration
- Dry-out damage can be reduced with Protection enchantments
- Ambient sounds playing too often
Other
- Checks whether there is enough space to disguise if Bounding box modification is enabled
- Players now trigger Shulk Sensors while flying
A hotfix for InteractionMirror logging doesn't work on Windows. Linux is not affected and macOS shouldn't as well.
If it's still not working, please open an issue so that we can fix it for you as soon as possible!
New Feature
- Send notifications to players about exchange requests
- It will pop up for someone who received/sent a request, or that request has been accepted/denied or expired.
Bug Fixes
- InteractionMirror logging doesn't work on Windows
New Features
- Added ambient sound to disguises
- And players can still keep silent by sneaking!
- Fish/Guardian/Dolphin disguises now have an ability that makes players dry out on the land
Bug Fixes
- The explosion skill for creeper disguise doesn't have a priming sound
- Tadpole and Drowned disguise doesn't have the Water Breathing ability
- Clients not aware of the change if the integration gets disabled through the
/fm option
command
Other
- Added wiki about Translations and the config.yml
- Moved plugin message and ChatOverride configuration to
config.yml
- Make
/fm manage morph
command displays suggestions about disguises rather than a single<id>
string - Some slight performance optimizations
Bug Fixes
- Not all necessary data from the disguise gets synced when a player joined with the client mod
- Current disguise stops working after trying to switch to an invalid disguise
- InteractionMirror triggering additional animations wrongly in some edge cases
Other
- Reduces some overhead when updating disguises
New Feature
- Iron Golem disguises now can knock mobs into the air like a normal Golem
- Strider disguises now take damage from water and rain
Bug Fixes
- Option
mirror_ignore_disguised
always getting inverted when triggering InteractionMirror since 0.10.4 - Baby mob disguises having a larger bounding box that belongs to their adult version
Other
- Don't trigger InteractionMirror for dead players
- Prevent displaying cloud particles when unmorphing an offline player
- Make all disguise management commands autocomplete the
minecraft:
prefix for the given disguise identifier (If not found)
New Feature
- Added automatic InteractionMirror logs cleanup
- We remove files that are older than 7 days by default.
- You can configure how long a file should keep in the config or through the
/fm option mirror_log_cleanup
command.
Bug Fixes
- InteractionMirror not being able to trigger after a rejoin, and not playing animations for players holding certain items.
Other
- Move InteractionMirror logs to
logs
under the plugin's directory - Use server language to send messages to clients if they're not sending which language they use
New Feature
- (Experimental) Added InteractionMirror logging
- You can enable this feature in the config or through the
/fm option mirror_log_operations true
! - Logs can be found in the
mirror_history.log
. They won't clear themselves now, but they will soon!
- You can enable this feature in the config or through the
Bug Fixes
- Bounding boxes from Slime and Magma Cube disguises may mismatch between client and server
- Can't toggle SelfView through actions
- InteractionMirror sometimes doesn't cancel arm swings for players where it should cancel
Other
- Update protocols
- Fixed empty entry appearing in the disguise menu if someone doesn't have any disguise
- Initial API events implmentations
New Feature
- Allow updating all active translations using the plugin's built-in assets
- You can use
/fm reload update_message
to update them! - Any existing modified translations will be replaced after the update!
override.json
is left untouched, except the comments added in this release.- Translations for a language can be activated by changing the default language or joining with that specific language.
- You can use
Bug Fixes
- Fixed skill cooldown from a last disguise not getting replaced when a player changes its disguise
Other
- Several tweaks on English translate
- Enable ChatOverride by default on new installations
- Add several comments in
messages/override.json
New Features
- Allow modifying players' bounding boxes depending on their disguise
- Requires FeatherMorphClient >= 0.1.6 to fully work!
- Allow toggling Bounding box modification(
modify_bounding_boxes
) and Kick when client API mismatch(force_protocol_version
) through the option command.- Use
/fm option <option_id> <on|off>
to change them!
- Use
Other
- Make server-side SelfView available again when joining with client mod
- Slightly optimized plugin performance
Bug Fixes
- Fixed other players not being able to clone disguise from a player who changed its disguise without unmorphing
New Feature
- Allows setting whether a player can use a disguise through permissions
- The permission follows the
xiamomc.morph.morph.as.<namespace>.<id>
pattern, and they should accepts wildcards(*
). - For example, the permission to prevent a player from disguising as a villager is
xiamomc.morph.morph.as.minecraft.villager
. - And the permission to prevent a player from disguising as another player is
xiamomc.morph.morph.as.player.<PlayerName>
- The permission follows the
Bug Fixes
- Fixed players not being able to display their own equipment when disguised as another player or Armor Stand since 0.10.0.01
Other
- Use feathermorph-protocols to communicate with clients
- Removed the
deny
command in protocols - Integrate bStats
New Features
- Update to 1.19.4
- Introduced disguise backends, allowing this plugin to continue working without LibsDisguises.
- LibsDisguises is the default and the only backend that supports displaying disguises on the server side.
- If no backends are available, we will fall back to NilBackend, allowing this plugin to continue initializing without displaying support for disguises.
- Clients will not be affected if they decide to display their disguise on the client side.
- These changes are still experiential, feel free to report issues on our GitHub!
Bug Fixes
- Can't grant a disguise of an offline player to another online player.
Other
- Make LibsDisguises a soft dependency.
Fix the plugin not loading because PluginBase
was not found on the server.
This library was already bundled within this plugin since 0.8.7 and is no longer required for the server to install
🐛 Bug Fixes
-
Crystal damage in the Ender dragon disguise's healing ability can be scaled with the current difficulty.
-
Players get unmorphed on death after a rejoin even if the unmorph_on_death option is off.
🌟 New Feature
- Ender Dragon disguise now can make players heal from End crystals by default
- Once connected to a crystal, the player will heal at 0.05 per tick (or half heart per second) and takes 10 damage (5 hearts) when the crystal gets destroyed.
🐛 Bug Fixes
- Mobs not targeting disguised players even if the player attacks them.
- InteractionMirror may trigger StackOverflowError when in
by_sight
mode. - Disguised equipment sometimes doesn't get copied from another disguise.
- Plugin not disconnecting clients while reloading or disabling.
- Unsupported entities (like arrow or boat) appearing in the
/fm manage grant
command.
🪶 Other
- Dropping items will no longer trigger InteractionMirror
This release contains some tweaks on how language fallback works.
Now this plugin will prefer to use English for most languages if they don't have localization for a message.
🐛 Bug Fixes
- Creeper disguises not syncing data for players before exploding, causing incorrect animation status when in creative mode
🪶 Other
- Prevent sending client commands to players if they don't have a compatible mod installed
- Move
default.json
toexample.json
in the messages directory since it doesn't participate in any parts of fallback - Prevent sending
reauth
command to clients when only messages got reloaded
🌟 New Features
- Warden and Iron Golem disguise now slows down player's movement and increases their knockback resistance by default
- Now you can choose which selection mode to use for InteractionMirror!
- Currently there are 2 modes available:
by_name
andby_sight
- We use
by_name
as default, which searches for the specific player who matches our target on the server. by_sight
will search for the nearest player who matches our target within 5 blocks in sight. A player disguised as our target can also be selected.
- Currently there are 2 modes available:
🐛 Bug Fixes
- Fixed creeper disguise doesn't have animation when exploding
🪶 Other
- Added
/fm
as an alias for command/feathermorph