Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.20.6 #185

Merged
merged 23 commits into from
May 20, 2024
Merged

Conversation

celestialfault
Copy link
Contributor

@celestialfault celestialfault commented Apr 11, 2024

Port to 1.20.5; this also includes a relatively large amount of maintenance changes - reviewing each commit individually is strongly recommended

Note that despite 1.20.5 adding data components, armor stands do not use a custom data component, but instead continue to piggy-back off of the existing CUSTOM_DATA component.

This is being done for compatibility with vanilla clients, as clients will simply disconnect (with a vague disconnect message that doesn't help with determining the actual cause) if they receive an item stack with an unrecognized data component, whereas Fabric API will simply prevent a client from connecting without the mod being installed on the client as well.

The networking changes made in this PR as a result of the relevant changes in Fabric API also results in this partially superseding #178, although it remains relevant for older versions if they receive any updates.


Notable changes

(I'm so sorry for this basically being an entire release changelog on its own)

  • Mod versioning has been changed from the current $minecraft-$mod to $mod+minecraft (parity with aa55cbe)
  • Fix breast rendering on small armor stands (parity with 19834d5)
  • Float configuration keys will now clamp the loaded value instead of simply resetting it if the value is out of bounds
    • This is aimed at being a bit more user-friendly when min/max values are modified, such as with the recent max breast size reduction
  • The player paper doll can no longer overlap with the GUI
    • This is primarily aimed at cosmetics from mods like Essential, such as their wing cosmetics, which are much wider than the standard player model
  • Hurt sounds are now entirely client-sided for all players, not just the client player
  • Default bounce multiplier has been slightly reduced to bring it back to 100%, removing the >100% warning message at default values.

Maintenance changes

  • Properly split the client and common mod initializer classes
  • Rework configuration handling to reduce code duplication between the Configuration classes, and move config file read into the task created by WildfireGender#loadGenderInfo
  • Breast model boxes which don't need to be resized are now static final instead of being re-created for each renderer instance
  • Remove breast data from item stacks when removed from armor stands (parity with efea571)
  • Added DevAuth to allow for testing against real skins in a dev env (partial parity with 355c286)

note that while 1.20.5 introduces data components, we're opting to not
use them for armor data and instead using the custom NBT data component
to ensure that we remain compatible with vanilla clients on servers,
which would simply disconnect upon recieving an armor item with a custom
component that it doesn't recognize.
…mod'

the way this was done previously led fabric to infer that the mod
version was the minecraft version, and not the (intended) other way
around.

this also provides some level of parity with the neoforge version
change made in aa55cbe, which simply
drops the minecraft version from the mod version string entirely.
also include a job summary of the target minecraft and fabric version
switch from using an Inject with a shift to ModifyArg to make it
clear where our stack modification is intended to be performed

also remove our tag from armor removed from armor stands
this also changes hurt sounds to be purely client-sided to work around
fabric api doing some relatively strict registry syncing, which I didn't
consider when initially choosing to make this occur on both the client-
and server-side.

this won't fully solve the issue in singleplayer worlds opened to LAN,
but there's not a whole lot we can do here outside of forcing fabric-api
to simply not sync our sound registry entry with an ugly bodge mixin.
also remove redundant double load/save
defer loading to the actual load task to not make it completely redundant
this is aimed at being a bit more user-friendly if the min/max values
are modified, and a player's previous value would now be outside the
allowed range for a key; previously, this would simply result in the key
being reset to its default value.
this is primarily aimed at cosmetics from mods (like essential) which
are sufficiently wide enough to overlap with the GUI, making it harder
to read our button/slider labels, if not impossible.
@celestialfault celestialfault force-pushed the port-1.20.5 branch 2 times, most recently from b56c623 to d0c832c Compare April 19, 2024 00:11
this primarly affects the #armorStandsCopySettings() method, making the
intended use case of this much clearer.
0.34 is shown as 102% in the gui, which results in the unnatural bounce
intensity warning, which *probably* shouldn't appear with default values
@celestialfault celestialfault marked this pull request as ready for review April 23, 2024 18:54
@celestialfault celestialfault changed the title 1.20.5 1.20.6 Apr 29, 2024
@WildfireRomeo WildfireRomeo changed the base branch from fabric-1.20.4 to fabric-1.20.6 May 20, 2024 01:59
@WildfireRomeo WildfireRomeo merged commit d9c6777 into WildfireRomeo:fabric-1.20.6 May 20, 2024
@celestialfault celestialfault deleted the port-1.20.5 branch May 20, 2024 02:18
pupnewfster added a commit that referenced this pull request May 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants