369b076 Null check channel in player join listener Fixes #3390
6555bcd Small cleanup to mapping file loading
e537dbb Clean up StructuredItemRewriter, also handle sound events
f92dbb6 Also cache missing protocol paths, don't reverse base protocols
0b2dac9 Copy item in Particle#copy (#4130)
7cd5514 Add PacketWrapper#sendFutureRaw, cleanup login disconnect handling. (#4129)
Removes the special handling in Protocol1_8To1_9 and always send the correct/expected data by the client in ServerboundBaseProtocol1_7 itself. Also prevent sending the packet through the protocol pipeline since packet/format changes should also be handled inside the base protocol.
5017d4b Add Particle#copy (#4126)
32e51b5 Cleanup LOGIN/STATUS packet handlers (#4113)
4f66fd7 Go back to fast entity data list iteration and mutation This is a fairly hot method and the array list cannot be modified outside of the already managed event cancellation and provided extra list
2a71612 Small cleanup of a few rewriters
a993a08 Only map between different primitive types when explicitly requested This would otherwise only happen with unsafe type usage
a9c9475 Don't unnecessarily re-wrap objects in passthrough
2841bf3 Add option to hide scoreboard numbers (#4122)
7edddda Split base protocols list (#4118)
33de12c Reset reader before passing packet through protocols (#4117)
f8eb57c Fix 1.8->1.9 click sound mappings (#4116)
b2d523f Add more API for base protocols and skip manually added ones. (#4115)
b586b0d Allow client intention packet to be cancelled (#4114)
c6381e7 Allow protocols to handle client intention packet (#4112)
10ee7e1 Deprecate StoredObject#getUser (#4104)