Featuring
- 5 LidModes, 3 of which were not possible before
- The ability to get if the lid actually should be open, if a player is in the container
- The ability to get if the is open, from api or the player itself
This also deprecates Bukkits api because of the confusing and outright incorrect javadocs (so those now accurately represent the behaviour)
* Item serialization as json
* Add ItemStackAdapter for Gson
* A javadoc note at #serialize() and #deserialize()
* Rebase
* Move serialize closer to deserialize
* Add explaining comment about SERIALIZE_CUSTOM_AS_SNBT usage
* Apply lynxplay requests
* Forgot `@NotNull`
* Very important diff was removed
* Rebase
* Javadocs
---------
Co-authored-by: Bjarne Koll <lynxplay101@gmail.com>
* wip tags
* use generics in tag registrars
* comment out varargs methods for now
* split up patch
* cache loaded service provider
* finish renames
* use builderWithExpectedSize
* finalize
The updated velocity native compilation pipeline seems to emit binaries
that are not compatible with alpine.
The commit temporarily reverts the natives included until a proper
solution is found.
In the case where multiple messages from different players are being processed in parallel, there was a potential race condition where the messages would be sent to the client in a different order than the message signature cache was updated. However, the cache relies on the fact that the client and server get the exact same updates in the same order. This race condition would cause the caches to become corrupted, and any future message received by the client would fail to validate.
This also applies to the last seen state of the server, which becomes inconsistent in the same way as the message signature cache and would cause any messages sent to be rejected by the server too.
When trying to fall back to offline player data in onlide mode,
we need to use the player file. This fixes a mistake during
update where 'file' was used, but the new code uses 'file1'
for the player file.