399 Commits

Author SHA1 Message Date
Dylan K. Taylor
c869a7f099 HandshakePacketHandler no longer depends on NetworkSession 2020-04-24 23:18:29 +01:00
Dylan K. Taylor
a75241ef03 RuntimeBlockMapping: use SingletonTrait 2020-04-24 21:32:47 +01:00
Dylan K. Taylor
3a42c21cc1 wrap up block_id_map in a class 2020-04-24 21:28:27 +01:00
Dylan K. Taylor
ff915b829c StartGamePacket: remove hardcoded cache, move to RuntimeBlockMapping 2020-04-24 20:50:56 +01:00
Dylan K. Taylor
287bf4274f move RuntimeBlockMapping to convert package 2020-04-24 12:42:43 +01:00
Dylan K. Taylor
08ac6a3c43 Convert CreativeInventory to singleton 2020-04-24 00:38:18 +01:00
Dylan K. Taylor
5a94af40e2 Convert ItemFactory to singleton 2020-04-24 00:18:31 +01:00
Dylan K. Taylor
aa1828aa98 RuntimeBlockMapping is now a singleton instead of static class
this prepares for a fully dynamic block mapper, as well as allowing a small performance improvement to chunk encoding by eliding the constant lazy-init checks.
2020-04-23 21:09:58 +01:00
Dylan K. Taylor
f3fed60d57 crafting: ditch MultiRecipe, it's a network-only thing
MultiRecipes are really nothing more than feature toggles at the network layer, and they don't belong in the main core code.
2020-04-23 19:45:59 +01:00
Dylan K. Taylor
b2636161f7 PrepareEncryptionTask: move a bunch of stuff out of the AsyncTask class 2020-04-23 16:27:49 +01:00
Dylan K. Taylor
095a21ea5a PacketPool is now non-static
this allows greater flexibility for customisation, and will facilitate future multi version support.
2020-04-23 16:11:47 +01:00
Dylan K. Taylor
f3d7c320a1 move SkinAdapter stuff to convert package 2020-04-23 15:46:37 +01:00
Dylan K. Taylor
ebcfab4b61 NetworkInventoryAction: move type translation to TypeConverter 2020-04-23 15:40:23 +01:00
Dylan K. Taylor
33f899f2fc protocol: imports cleanup 2020-04-23 15:38:17 +01:00
Dylan K. Taylor
1b26cf1df9 break the hard cycle between mcpe\handler and mcpe\protocol
preparing to move mcpe\protocol to a separate library
2020-04-23 15:38:11 +01:00
Dylan K. Taylor
18d48869a0 the great airgapping of recipes and itemstacks 2020-04-23 14:11:48 +01:00
Dylan K. Taylor
843993f02b Throw a specific exception for zlib decompression failure 2020-04-22 13:45:29 +01:00
Dylan K. Taylor
35d656c6e5 ProcessLoginTask no longer depends on NetworkSession 2020-04-22 13:30:37 +01:00
Dylan K. Taylor
dd37d286f0 use a dedicated exception class for throwing exceptions on decrypt failure 2020-04-22 09:40:26 +01:00
Dylan K. Taylor
c6d6afe65e bring RakLibInterface up to speed with latest RakLib 2020-04-19 12:27:44 +01:00
Dylan K. Taylor
86e051b7bf Merge commit 'a2543ff80d2906bccda1a4e2fdbd9d8e7d147fb3' 2020-04-18 17:33:05 +01:00
Dylan K. Taylor
49a71ff4f8 Merge commit '6422ed7'
# Conflicts:
#	resources/vanilla
#	src/pocketmine/network/mcpe/RakLibInterface.php
2020-04-18 13:55:35 +01:00
Dylan K. Taylor
9bfc1df486 Merge branch 'stable' 2020-04-18 13:19:31 +01:00
Dylan K. Taylor
ab62a792e1 Merge commit '7a072931d' 2020-04-18 12:10:02 +01:00
Dylan K. Taylor
3d3a487422 PrepareEncryptionTask: remove cyclic dependency on NetworkSession 2020-04-18 11:25:29 +01:00
Dylan K. Taylor
e86c243db5 NetworkSession: do not expose setPlayerInfo() 2020-04-16 01:55:52 +01:00
Dylan K. Taylor
9ba47f90d1 LoginPacketHandler: account for failure to correctly parse UUID
this will still crash in some circumstances, pending merging bug fixes from stable.
2020-04-16 01:45:00 +01:00
Dylan K. Taylor
d3a6da1b3a NetworkSession->getPing() now returns null when no measurement of ping has yet been completed 2020-04-04 23:33:30 +01:00
Dylan K. Taylor
f5bf93455a update to latest RakLib 2020-04-01 20:16:21 +01:00
Dylan K. Taylor
64d5320ac9 update for pthreads-free raklib 2020-03-31 19:41:37 +01:00
Dylan K. Taylor
00cc2ee092 one more RakLib update for the day ... 2020-03-30 00:22:45 +01:00
Dylan K. Taylor
927872ce08 Updated to latest bleeding-edge RakLib 2020-03-29 23:53:00 +01:00
Dylan K. Taylor
abd1ed7352 RakLibServer: make onRun() protected 2020-03-29 18:45:48 +01:00
Dylan K. Taylor
d89cdfc18e Relieve RakLibServer of more responsibilities
at this point it's really not much more than just a thread-safe way to transmit parameters from main to thread. Maybe we can ditch it in favour of a generic closure-based thread implementation.
2020-03-29 18:42:15 +01:00
Dylan K. Taylor
4e54e54421 Updated RakLib dependency 2020-03-29 18:18:39 +01:00
Dylan K. Taylor
f779881b6a Updated to latest RakLib bleeding edge
this version brings quite a few inter-thread communication improvements.
2020-03-29 16:52:36 +01:00
Dylan K. Taylor
eb7c31d3ff RakLibInterface: remove useless shutdown check from tick()
the thread should never be shutdown during an update cycle, because we stop the interface from being ticked when it gets shutdown.
2020-03-29 16:26:22 +01:00
Dylan K. Taylor
0691a40204 UpdateBlockPropertiesPacket: expose nbt field 2020-03-24 11:06:58 +00:00
Dylan K. Taylor
da7ff9b1fe Airgap Attribute, fix decoding of non-registered attributes for protocol debugging 2020-03-24 00:43:44 +00:00
Dylan K. Taylor
83a3adecff LoginPacket: use netresearch/jsonmapper for login data decoding
this makes retrieval static analysis friendly without extra steps.
2020-03-23 22:00:13 +00:00
Dylan K. Taylor
3e5d3a646b Make use of BadPacketException::wrap() 2020-03-23 21:28:38 +00:00
Dylan K. Taylor
2d46ae4476 Added BadPacketException::wrap() 2020-03-23 21:27:08 +00:00
Dylan K. Taylor
d930abce2d ChunkSerializer: improve palette writing performance with one weird trick
this optimization relies on the fact that palette entries are always unsigned, and positive zigzag varints are just the same as their non-zigzag counterparts, except shifted left by 1 bit. This eliminates some function call overhead, making the encoding slightly less agonizingly slow.
2020-03-17 21:16:43 +00:00
Dylan K. Taylor
093a7c239e CraftingDataPacket: fix variable name collision 2020-03-14 14:24:50 +00:00
Dylan K. Taylor
c9e8598510 InGamePacketHandler: do not handle inbound ActorEvents that are not for self 2020-03-13 15:19:32 +00:00
Dylan K. Taylor
899d05c6ec DataPacket: strip some whitespace 2020-03-10 13:06:16 +00:00
Dylan K. Taylor
ca909ebc1d Merge branch 'next-minor' 2020-03-10 13:05:37 +00:00
Dylan K. Taylor
b4b1877ce5 Merge branch 'next-minor' 2020-03-09 14:38:15 +00:00
Dylan K. Taylor
6e39e34c1e Merge branch 'stable' 2020-03-03 12:35:11 +00:00
Dylan K. Taylor
5c2ae0257c DataPacket: inject buffer via parameter instead of class field (packet & stream separation, step 2)
this is not complete yet, but the final change (having the binarystream actually come from outside) is a little more disruptive, and some extra changes need to be made. This will grant some sanity in the meantime without breaking too much stuff.
2020-02-25 16:19:11 +00:00