Dylan K. Taylor
88c6dcf46d
ChunkCache: clean up handling of cache cleanup on world unload
2020-05-06 13:41:36 +01:00
Dylan K. Taylor
e392a6a807
PrepareEncryptionTask: do not store onCompletion as a field
...
pthreads will screw around with it and make it do things it's not supposed to, which is the exact reason why we have thread-local storage to begin with.
2020-05-06 13:32:18 +01:00
Dylan K. Taylor
ff53ddd3ad
PrepareEncryptionTask: fix wrongly-specified nullability of serverPrivateKey
2020-05-06 13:29:58 +01:00
Dylan K. Taylor
b4606a4cd0
remove PM resource interaction from StartGamePacket
...
also lose the cache, because it's not very useful ...
2020-05-06 13:17:16 +01:00
Dylan K. Taylor
dbd51610c3
TypeConverter: use SingletonTrait
2020-05-05 19:22:20 +01:00
Dylan K. Taylor
81f982a8d9
remove hardcoded legacy entity type ID mapping, load from resources instead
2020-05-04 13:47:39 +01:00
Dylan K. Taylor
fcd6a69000
cleaning up NBT handling on packet decode/encode
...
now we always decode, because it's not safe to assume that we can just grab the rest of the bytes in the packet.
2020-05-04 13:23:29 +01:00
Dylan K. Taylor
a73c54bdd0
making tile spawn compound cache use CacheableNbt instead of strings
2020-05-04 12:35:13 +01:00
Dylan K. Taylor
c2857a91bd
[Network]ChunkSerializer: allow injecting RuntimeBlockMapping
...
this will allow the same serializer to be reused with different mapping tables (will be needed for multi version).
2020-05-04 12:14:27 +01:00
Dylan K. Taylor
d3dcb8a4e3
moving entity attack sounds to server-side
2020-05-04 11:50:42 +01:00
Dylan K. Taylor
8682ea35f7
Introduce some (not great) API for entity animations
...
while this API is a bit yucky, it's a step forward for protocol isolation and offers the possibility of controlling animations by adding events.
2020-05-01 13:57:26 +01:00
Dylan K. Taylor
2964a4be35
making BlockPunchSound server-controlled
2020-05-01 12:23:00 +01:00
Dylan K. Taylor
1969766b70
Nix some client-sided sounds, control them from the server
...
this is a necessary step to knock out the implicit assumption that every player is using the same protocol.
2020-05-01 11:52:32 +01:00
Dylan K. Taylor
b74f177958
ChunkCache: destroy cache when world is unloaded
2020-04-29 18:50:33 +01:00
Dylan K. Taylor
bb11cbd89c
World: relocate packet stuff for time and difficulty behind NetworkSession API
2020-04-29 18:31:54 +01:00
Dylan K. Taylor
c8c0a1533c
NetworkSession: seal up actor removal behind API
2020-04-29 17:00:47 +01:00
Dylan K. Taylor
adadd5423d
move force-close crafting grid hack to InGamePacketHandler
...
the crafting transaction implementation has no business caring about this
2020-04-29 16:54:23 +01:00
Dylan K. Taylor
4ce6525065
NetworkSession: incomplete abstraction of SetActorDataPacket handling
...
this needs to have the metadata properties separated too, but that's a job that's going to get VERY messy.
2020-04-29 16:50:52 +01:00
Dylan K. Taylor
d1b28ce17a
NetworkSession: allow sending an arbitrary set of attributes for an entity
2020-04-29 16:45:09 +01:00
Dylan K. Taylor
f6f714c158
NetworkSession: do not mark shared attributes as synchronized, they don't necessarily belong to us
...
if we decided to start sending entity attribute changes to viewers too, this would have caused some unexpected behaviour.
2020-04-29 16:38:10 +01:00
Dylan K. Taylor
f35b7bf80b
NetworkBinaryStream: remove stale @throws from getAttributeList()
2020-04-29 16:32:56 +01:00
Dylan K. Taylor
ad70a9e3dc
NetworkSession: allow provision of a custom list of players to syncPlayerList()
2020-04-29 16:27:34 +01:00
Dylan K. Taylor
d8968e9e40
box up TakeItemActorPacket sending behind NetworkSession API
...
we need to start thinking about moving this into interfaces.
2020-04-29 16:24:04 +01:00
Dylan K. Taylor
549940d8a7
remove NullPacketHandler
...
this is a waste of LOC
2020-04-29 13:14:23 +01:00
Dylan K. Taylor
b6214744d5
NetworkSession: inject PacketPool instead of hardcoding it
...
this will make it slightly easier for multi version implementations, but handlers are still quite a big problem.
2020-04-29 12:48:28 +01:00
Dylan K. Taylor
09e994a026
NetworkBinaryStream: swap BadPacketException for PacketDecodeException
2020-04-29 11:39:44 +01:00
Dylan K. Taylor
f6f1d31112
do not mess with cached data directly in packets
2020-04-29 11:34:25 +01:00
Dylan K. Taylor
f9a587d40e
imports cleanup
2020-04-28 17:27:38 +01:00
Dylan K. Taylor
81044d6aea
updated to latest RakLib
2020-04-28 16:30:29 +01:00
Dylan K. Taylor
3be9548b1e
net: compressors are now fully dynamic (or at least the potential to be)
...
the compressor used by RakLibInterface when opening a session is still
hardcoded, but that's because we have no way to select the correct
compressor at that point in the login sequence, since we aren't
propagating the protocol information up from RakLib right now.
2020-04-28 16:21:18 +01:00
Dylan K. Taylor
d9e4783b24
start making network compressors dynamic
...
this will facilitate future multi version support where compression types are different between versions
2020-04-28 14:47:01 +01:00
Dylan K. Taylor
a97cafd4f6
moving serializers into protocol namespace
2020-04-27 13:54:39 +01:00
Dylan K. Taylor
0397204c68
network/mcpe: imports cleanup
2020-04-27 12:56:28 +01:00
Dylan K. Taylor
15c744b0d7
protocol: specialize exception used for bad packets
2020-04-27 12:55:00 +01:00
Dylan K. Taylor
2a4d936fd4
Merge branch 'master' of https://github.com/pmmp/pocketmine-mp
2020-04-25 12:36:24 +01:00
Dylan K. Taylor
45bed454f2
Merge commit '3d2ca45'
2020-04-25 12:14:45 +01:00
Muqsit Rayyan
b1eff87ad1
fix incorrect conversion of CreateItemAction, close #3436 ( #3437 )
2020-04-25 10:21:40 +01:00
Dylan K. Taylor
1f7f33d35d
NetworkSession: privatise setAuthenticationStatus()
...
this is accessed via a closure proxy, so it doesn't need to be exported anymore.
2020-04-25 03:33:44 +01:00
Dylan K. Taylor
80680f15f4
seal up resource pack completion callback visibility
2020-04-25 03:31:13 +01:00
Dylan K. Taylor
6dd31cc3f5
break cycle between block and inventory packages
2020-04-24 23:53:49 +01:00
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