90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!
Filter loader...
Filter versions...
Filter channels...

1.3.5

by MATRIX-feather on Jan 19, 2025
Download

NOTICE!

Support for the legacy permission nodes is now ended!

Please make sure ALL related permissions are moved to the new prefix feathermorph.XXX before updating!

New Features

  • Added initial support for specifying disguise properties (variants)
    • Currently only through the disguise command!
    • The usage is: /morph <id> <properties>
      • For example, to disguise as an Armor Stand with arms: /morph minecraft:armor_stand [armor_stand_show_arms=true]
      • For multiple properties: /morph foo:bar [property1=value1, property2=value2, ...]
  • It's now possible to specify worlds that disabled the disguise feature through the config
    • config.yml > world_option > disabled_worlds
  • Wither Skeleton disguise now can make the player immune from the wither effect
  • Added new placeholder feathermorph_state_provider_is?<namespace>, to identify the category (The namespace) of the player's disguise
    • For example, to identify whether a player is using a player disguise: feathermorph_state_provider_is?player
    • To identify whether a player is disguised as a mob: feathermorph_state_provider_is?minecraft
  • Added new placeholder feathermorph_state_id_is?<id>, to identify whether a player is using a specific disguise.
    • For example, to identify whether a player disguises as Creaking: feathermorph_state_id_is?minecraft:creaking

Bug Fixes

  • Client session not being cleared after player disconnects
  • Placeholder expansions are no longer available after /papi reload
  • The plugin doesn't download Minecraft language file that matches the currently running version
  • Towny integration tries to process an offline player when it has been added to a town

Other

  • We're now a pure Paper plugin!
    • That means Spigot servers are no longer able to load this plugin
  • Support for legacy permission nodes (xiamomc.morph.XXX) is now DEPRECATED! Please move to the new permission node (feathermorph.XXX)!
    • For example, xiamomc.morph.chat_override is now feathermorph.chat_override
  • Changed placeholder names from morph_... to feathermorph_...
  • Changed how FeatherMorph communicates with client mods
  • Tweaked Placeholder expansions' behavior
    • Now returns more specific feedback if the parameter is not valid or the player is not disguised
  • Player disguises no longer have a Custom Name metadata
  • We now use Brigadier to register commands

1.5.1

by MATRIX-feather on Jan 19, 2025
Download

NOTICE!

Support for the legacy permission nodes is now ended!

Please make sure ALL related permissions are moved to the new prefix feathermorph.XXX before updating!

New Features

  • Added initial support for specifying disguise properties (variants)
    • Currently only through the disguise command!
    • The usage is: /morph <id> <properties>
      • For example, to disguise as an Armor Stand with arms: /morph minecraft:armor_stand [armor_stand_show_arms=true]
      • For multiple properties: /morph foo:bar [property1=value1, property2=value2, ...]
  • It's now possible to specify worlds that disabled the disguise feature through the config
    • config.yml > world_option > disabled_worlds
  • Players can now unlock the Creaking disguise by breaking a natural and active Creaking Heart
  • Added two actions for Creaking disguise
  • Illagers will now attempt to avoid players disguised as Creaking
  • Wither Skeleton disguise now can make the player immune from the wither effect
  • Added new placeholder feathermorph_state_provider_is?<namespace>, to identify the category (The namespace) of the player's disguise
    • For example, to identify whether a player is using a player disguise: feathermorph_state_provider_is?player
    • To identify whether a player is disguised as a mob: feathermorph_state_provider_is?minecraft
  • Added new placeholder feathermorph_state_id_is?<id>, to identify whether a player is using a specific disguise.
    • For example, to identify whether a player disguises as Creaking: feathermorph_state_id_is?minecraft:creaking

Bug Fixes

  • Client session not being cleared after player disconnects
  • Placeholder expansions are no longer available after /papi reload
  • The plugin doesn't download Minecraft language file that matches the currently running version
  • Towny integration tries to process an offline player when it has been added to a town

Other

  • We're now a pure Paper plugin!
    • That means Spigot servers are no longer able to load this plugin
  • Support for legacy permission nodes (xiamomc.morph.XXX) is now DEPRECATED! Please move to the new permission node (feathermorph.XXX)!
    • For example, xiamomc.morph.chat_override is now feathermorph.chat_override
  • Changed placeholder names from morph_... to feathermorph_...
  • Changed how FeatherMorph communicates with client mods
  • Tweaked Placeholder expansions' behavior
    • Now returns more specific feedback if the parameter is not valid or the player is not disguised
  • Player disguises no longer have a Custom Name metadata
  • We now use Brigadier to register commands

NOTICE!

Support for the legacy permission nodes is now ended!

Please make sure ALL related permissions are moved to the new prefix feathermorph.XXX before updating!

New Feature

  • Now it's possible to specify worlds that disabled the disguise feature through the config
    • config.yml > world_option > disabled_worlds

Bug Fixes

  • Placeholder expansions are no longer available after /papi reload
  • Some options are no longer tweakable through the /fm option command after moving to brigadier

Other

  • Support for legacy permission nodes (xiamomc.morph.XXX) is now DEPRECATED! Please move to the new permission node (feathermorph.XXX)!
    • For example, xiamomc.morph.chat_override is now feathermorph.chat_override
  • Tweaked Placeholder expansions' behavior
    • Now returns more specific feedback if the parameter is not valid or the player is not disguised

New Feature

  • Added initial support for specifying disguise properties (variants)
    • Currently only through the disguise command!
    • The usage is: /morph <id> <properties>
      • For example, to disguise as an Armor Stand with arms: /morph minecraft:armor_stand [armor_stand_show_arms=true]
      • For multiple properties: /morph foo:bar [property1=value1, property2=value2, ...]

Bug Fixes

  • Cannot get key of Legacy Material happens when initializing Disguise Tool's recipe
  • Opening GUI crashes the server if running recent versions of Paper

Other

  • We're now a pure Paper plugin!
    • That means Spigot servers are no longer able to load this plugin
  • All child commands under /fm manage now accepts entity selectors (@a, @p, etc.)
  • /fm reload can be run without arguments once again (And it reloads config and language, just like before)

Other

  • Creaking disguise now can only unlock by destroying a naturally generated and active Creaking Heart
  • Tweaked Mob AI modification implements

New Feature

  • Illagers will now attempt to avoid players disguised as Creaking

Bug Fix

  • UnMorphCommand throws errors when tab-completing any commands from the console

Yes, 1.21.3 is skipped :P

Bug Fix

  • Towny integration tries to process an offline player when it has been added to a town

Other

  • We are now 1.21.4
  • Player disguises no longer have a Custom Name metadata
  • Use Brigadier to register commands

New Features

  • Players can now unlock the Creaking disguise by breaking an activated Creaking Heart
    • The state of the Creaking Heart can be found at F3 -> Targeted Block -> "creaking: ..."
  • Added two actions for Creaking disguise
    • Used for toggling eye glowing

Bug Fixes

  • Client session not being cleared after player disconnects
  • The plugin doesn't download Minecraft language file that matches the currently running version

Other

  • Ignore Transient Creaking, and remove it from known disguises

1.3.3

by MATRIX-feather on Nov 29, 2024
Download

Reupload because some baka uploaded the wrong artifact :)

New Features

  • Added new placeholder feathermorph_state_provider_is?<namespace>, to identify the category (The namespace) of the player's disguise
    • For example, to identify whether a player is using a player disguise: feathermorph_state_provider_is?player
    • To identify whether a player is disguised as a mob: feathermorph_state_provider_is?minecraft
  • Added new placeholder feathermorph_state_id_is?<id>, to identify whether a player is using a specific disguise.
    • For example, to identify whether a player disguises as Creaking: feathermorph_state_id_is?minecraft:creaking

Bug Fix

  • When using certain plugins, attacking others in regions that disabled PVP will still apply effects to them

Other

  • Renamed placeholders from morph_... to feathermorph_...
  • Added warnings for hot load and reload

Reupload because some baka uploaded the wrong artifact :)

This version also comes with some changes in 1.3.2, for more details, see 1.3.2 changelog

New Feature

  • Wither Skeleton disguise now can make the player immune from the wither effect
  • Added new placeholder feathermorph_state_provider_is?<namespace>, to identify the category (The namespace) of the player's disguise
    • For example, to identify whether a player is using a player disguise: feathermorph_state_provider_is?player
    • To identify whether a player is disguised as a mob: feathermorph_state_provider_is?minecraft
  • Added new placeholder feathermorph_state_id_is?<id>, to identify whether a player is using a specific disguise.
    • For example, to identify whether a player disguises as Creaking: feathermorph_state_id_is?minecraft:creaking

Bug Fixes

  • Yaw/Pitch convert error with Ender Dragon and Phantom disguise in server renderer
  • When using certain plugins, attacking others in regions that disabled PVP will still apply effects to them

Other

  • Changed placeholder names from morph_... to feathermorph_...
  • Changed how FeatherMorph communicates with client mods
    • Legacy mods are still supported at least until the 1.22 update!
  • Added warnings for hot load and reload
  • Tweaked Creaking disguise's max health to 20

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

Bug Fix

  • Instance Network doesn't start
    • It starts, but it's broken, still not usable now

Other

  • Update to 1.21.3

1.3.1

by MATRIX-feather on Oct 28, 2024
Download

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

1.3.0

by MATRIX-feather on Oct 24, 2024
Download

This version includes some changes related to permissions, please attention!

  • Permissions will now use feathermorph as the prefix instead of xiamomc.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

    • 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 to feathermorph.XXX.
  • Changed package name
    • Package name has changed from xiamomc.morph.XXX to xyz.nifeather.morph.XXX.
  • 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 at skills/minecraft/sheep.json.
    • Player configurations are now stored in the playerdata directory as <UUID>.json.
    • The original data.json and skills.json will be renamed to data.json.old and skills.json.old.
  • 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.

Bug Fix

  • Disguises having random variants doesn't randomize upon disguising, instead it prints warnings to the console. (The given property '...' doesn't exist)

1.2.6

by MATRIX-feather on Sep 30, 2024
Download

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

Other

  • Update to 1.21.1

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

Project members

MATRIX-feather

Owner

Details

Licensed MIT
Published 2 years ago
Updated 12 days ago