A disconnect message will always be printed, but not more than once.
CLOSED_BY_REMOTE_PEER -> Bedrock client disconnected (hopefully slightly less vague)
If a message is sent from the server, the log will now indicate their disconnection reason.
This reduces computation processing needing, since Bedrock doesn't have any hover text ability. This also fixes a 1.8 bug where villager titles would not process correctly - by having a dummy serializer, a recent MCProtocolLib update would not stop the window packet from processing.
By default, there is a two-minute delay if you disconnect so you can authenticate your Microsoft account.
Co-authored-by: rtm516 <rtm516@users.noreply.github.com>
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
By simulating the exact processing that Java Edition does on the client-side, we can achieve full packet parity with Java when interacting with an entity.
These changes fix up things that were missed with Java Edition inventory changes in 1.17 and 1.17.1. Working with the inventory in modern versions should be much nicer.
Previously we've had discussions on if the render distance math should be tweaked like we do server -> client, but for now this is better than nothing and can be tweaked further in the future.
* Fix ArrayIndexOutOfBoundsException for worlds lower than -64
`chunkSize` is Java section count while `sectionCount` is the Bedrock section count
* Send biomes for air sections while also staying within limits
.-.
* Move protocol version check to variable
- Introduce a state ID incrementation emulation. This prevents the server from spamming back with tons of set content packets, and can instead reply with set slot packets.
- Fix what we were sending as a carried item in the ServerboundContainerClickPacket.
* Fix sneaking speed adjustment and bounding box
Also remove redundant session variable in SessionPlayerEntity
* Add comment to valid field
* Hopefully fix crawling after swimming in water
* Prevent boats from floating when a Bedrock player rides in the back
* Update llama and shulker mount height offset
* Fix Trader llama mount offset
* Change passengers to an IntList
Also move rotation lock stuff to EntityUtils
* Allow EntityCache.getEntityByJavaId to return the session's player
Removes many checks from several translators.
* Fix mount offset on armorstands and area effect clouds
Also prevent area effect clouds from despawning when used as an invisible entity (used in GSit to offset players riding on other players)
* Update mount offsets on height changes
TODO test this
* Actually update vehicleId and optimize StriderEntity metadata update
* Don't hide marker armor stands and properly update mount offsets
* What?
* Remove y offset for Shulkers riding other entities
* Confirm teleports in the order received
This allows Bedrock players to move after standing up when using GSit
* Fix mount offset for riders on baby zoglins
* Cache only the latest teleport and confirm teleports immediately
* Fix crawling with GSit
* Inline var and undo respawn method
* Use Entity reference for vehicles
* Remove ridingVehicleEntity from GeyserSession
* Use Entity references for passengers and drop cachedPlayerEntityLinks
* Reuse variable and remove setVehicle(null)
* Improve statistics form
Fix furnace minecart java identifier
Use clean Java identifier in times mined
Fix icons for statistic form
Show all generic statistics by initializing them to zero
Color every other line grey
Format numbers like on Java Edition
* Update for Java 16 and MCProtocolLib changes
* Sort all statistics alphabetically and color them.
* Update for MCProtocolLib changes
* Re-add clean java identifiers registry and properly fix block break statistics
Also translate before sorting >.>
* Use toLowerCase(Locale.ROOT)
* Use the format provided by MCProtocolLib
* Simplify condition
* Move statistics init and bump MCProtocolLib version
This will allow Geyser-Fabric to work without resource loading issues. This commit also ensures try-with-resources is used anywhere a resource is accessed.