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
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.
🌟 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