* Show proxy protocol ip for debug message
* Make sure that first message that contains proxy protocol also gets sent. This caused issues with serverlists and console players
* Validate NBT tags of written_book like Java edition
* Update page count and character count limits
The maximum number of characters allowed in Java's book edit screen is
1024 for each page and 16 for the title. However, the packet itself has
a limit of 8192 * 3 bytes for each page and 128 * 3 bytes for the title.
* Fix writable book losing changes when signing
Bedrock sends a 3 action InventoryTransactionPacket after the player
changes a page. This causes Geyser to send a ServerboundEditBookPacket
with an outdated NBT. The Java responses with a
ClientboundContainerSetSlotPacket that overwrites any NBT Changes from
BedrockBookEditTranslator.
* Add a comment for the title length check
* Specify color in Component.translatable
When shift-clicking the result item in a crafting table while holding an item in your hand, items would bug out completely and cause weird inventory desyncs.
* Add missing entities to getMountedHeightOffset and getHeightOffset
* Fix mount offset on Camels for more than 1 passenger
* Fix mount offset for Shulkers on Bamboo boats and minecarts with stuff
Also fix mount offsets for minecart and boat passengers
* Combine
* More missing mount offsets
* Fix mount offsets for entities riding players
* Check for hide attributes flag, and "Name" -> "AttributeName"
* Operation tag is not required?
* Only process each modifier once
* Ignore `minecraft:` namespace if present
* No `Operation` is implicitly ADD, fix knockback_resistance check
* Add Attribute Modifiers Display
Allows Bedrock players to view the Attribute modifiers display on the bottom of items.
* Fix handling for Knockback Resistance
For some reason, Knockback Resistance is multiplied by 10 in the display for addition, so this handles that oddball.
* Add null check for NBT
* Remove "contains" check
This is checked in the beginning of the addAttributes method so is not required here.
* Add curly brackets
Camotoy likes curly brackets I guess
* Use ModifierOperation enum instead of int for clarity