ViaVersion has two entries in its fake chat registry that are not in the same order as Java. This commit supports that properly and renders subtitled text correctly.
Resolves#3023
* Add player skull render distance
* Improve updateVisibleSkulls a bit
Avoid rechecking visibility on small movements
* Periodically despawn unused skull entities
* Don't hide skull entity for position/rotation changes
Prevents flickering for skulls that are rotating
* Update visible skulls when a skull is removed
* Only update on removal if an entity is assigned
* No need to check for skull in ChunkUtils
Update copyright year
* Avoid rechecking all skulls when a skull is added/removed
* Allow skull render distance and number to be configured
Renamed some fields to better match their values
* Compare texture property directly from GameProfile
* Remove unnecessary blockState field from SkullPlayerEntity
* Use binarySearch for insertion
Wait for player movement before loading skulls
* Allow culling to be disabled by setting max-visible-custom-skulls to -1
* Only remove skulls in inRangeSkulls when culling is enabled
* Add suggestions from review
* Merge the for loops in updateVisibleSkulls
* Fix skulls being leaked on chunk unload
* Don't always store cert/client data used for skin uploaded
This takes up a decent 30K of memory that we don't use after the skin is uploaded. The GameProfileTranslator cannot be run more than once per session.
* Make all moon phases visible
The fix to prevent integer overflows also prevented moon phases from being visible until now.
Fixes#2927
* SetTimeTranslator: cast from long on the entire modulus
This should fix some inaccuracies with time on older worlds.
* Bump version; drop 1.17.40; support 1.18.30
* Actually bump to 2.0.3-SNAPSHOT
* Fix message being sent still if a single escape character is sent
* Replace instances of configs using `generateduuid` for Metrics
* Fix some merge mistakes
Co-authored-by: Camotoy <20743703+Camotoy@users.noreply.github.com>
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.
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>
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.