10536 Commits

Author SHA1 Message Date
Dylan K. Taylor
3fb34ad18e remove particle/validator dependency, require respect/validation, close #3228
this fixes a few crashes that could appear from invalid plugin_list.yml setups, which was the reason #3228 was opened to begin with. Respect also has nicer error messages, as long as you don't use the static API :)
2020-05-15 22:57:38 +01:00
Dylan K. Taylor
f3e436592a ZippedResourcePack: detect location of manifest.json if it's not in the root
this isn't quite as bulletproof as I'd like it to be, but it should work...
2020-05-15 19:41:45 +01:00
Dylan K. Taylor
129a7c1b3e LoginPacketHandler: avoid trashing variables in foreach 2020-05-15 11:19:14 +01:00
Dylan K. Taylor
31e4fc6fcb fixing incompatible protocol handling, do not explode immediately on bad clientdata, login encode/decode is now symmetrical 2020-05-15 10:55:29 +01:00
Dylan K. Taylor
86db3af896 remove utils\Color, use new pocketmine/color class
we're so close to separating protocol from core !!!
2020-05-14 20:38:08 +01:00
Dylan K. Taylor
4437756987 Inventory: reduce API duplication by using a Set for viewers 2020-05-14 14:13:28 +01:00
Dylan K. Taylor
3dafee6aa6 NetworkSession: explicitly unregister effect manager hooks on dispose,
close #3455
2020-05-14 10:59:10 +01:00
Dylan K. Taylor
36c5d9117d LoginPacketHandler: properly handle failure to base64_decode stuff from JWT
previously this might just return false and blow up in your face.
I considered fixing this on stable too, but it's less useful there because so much stuff on stable just explodes at the first wrong thing anyway.
2020-05-14 09:46:44 +01:00
Dylan K. Taylor
35747874f6 Cocoa: fix drops, closes #3326
this doesn't really do a whole lot, but I want this issue off my tracker, it's worthless...
2020-05-14 00:56:39 +01:00
Dylan K. Taylor
59445902b8 Entity: do not spawn to players who haven't received the target chunk yet, closes #3355
this might cause some delays on chunk resend as documented on master, but entities all get respawned on a resend, so this doesn't matter much. It's better than whatever side effects might come with spawning an entity in a chunk that the player doesn't have yet.
2020-05-14 00:46:54 +01:00
Dylan K. Taylor
2eb62c85f6 Server: cast network.compression-level to int, closes #3393 2020-05-14 00:37:54 +01:00
Kevin
ad2a39bf13 Merge #3489: fix spawn protection check for placement checking the wrong block, close #3488, close #3489 2020-05-14 00:30:11 +01:00
Dylan K. Taylor
955b23cc8e Merge branch 'stable'
# Conflicts:
#	resources/vanilla
2020-05-14 00:23:36 +01:00
Dylan K. Taylor
0847358070 SkinImage: fix inverted auto-detect height/width, closes #3490
it seems like the client doesn't care if the h/w are inverted for skins anyway, but this is still wrong anyway...
2020-05-14 00:22:12 +01:00
Dylan K. Taylor
e9ecb9a9fd fixed build failure 2020-05-13 22:54:24 +01:00
Dylan K. Taylor
84291e7980 Throw a more specific exception for JWT handling errors 2020-05-13 21:23:04 +01:00
Dylan K. Taylor
486e0e710b JwtUtils: fix minor formatting issue 2020-05-13 20:51:24 +01:00
Dylan K. Taylor
44a7829536 VerifyLoginException: fixed rogue usage in JwtUtils 2020-05-13 20:50:41 +01:00
Dylan K. Taylor
d7eb4f9651 Extract more general-purpose logic to JwtUtils
this code could now be reused for creating custom login packets.
2020-05-13 20:46:01 +01:00
Dylan K. Taylor
161ac468f3 ProcessLoginTask: properly cater for key parsing errors 2020-05-13 19:23:12 +01:00
Dylan K. Taylor
cc8aed5979 Merge commit '56883f9ff9d2a0934dd3585e565d109ea322f583'
# Conflicts:
#	resources/vanilla
2020-05-13 13:51:55 +01:00
Dylan K. Taylor
934f85841c asserts 👏 are 👏 not 👏 error 👏 checking 2020-05-13 13:37:49 +01:00
Dylan K. Taylor
8c2878fe5b Added JwtUtils::parse(), make ProcessLoginTask more robust 2020-05-13 13:36:42 +01:00
Dylan K. Taylor
45f9c61d0f forward-port of 2f47597d75b514944a2f3f5d293f2fb72dd7fb56 as best it fits 2020-05-13 13:28:35 +01:00
Dylan K. Taylor
8766d4050c Merge branch 'stable' into next-minor 2020-05-13 13:18:55 +01:00
Dylan K. Taylor
54f41dc145 3.12.2 is next 2020-05-13 13:10:25 +01:00
Dylan K. Taylor
ded45bddfe Release 3.12.1 2020-05-13 13:10:10 +01:00
Dylan K. Taylor
b044550475 Player: duct tape for yet another login sequence bug in the shitty net architecture 2020-05-13 12:59:43 +01:00
Dylan K. Taylor
bd1d7b8d75 asserts 👏 are 👏 not 👏 error 👏 checking 2020-05-13 12:39:55 +01:00
Dylan K. Taylor
1513a0e092 VerifyLoginTask: beware wrong number of parts when splitting JWT 2020-05-13 12:39:53 +01:00
Dylan K. Taylor
11ef9fb0c0 Item-from-string parsing no longer depends on ItemIds
after this is done I'm banning the constant() function.
2020-05-13 00:18:49 +01:00
Dylan K. Taylor
ec13aa659a ItemFactory: do not explode on invalid damage values for durables
just treat them as unknown items instead
this might break some use cases, but at least this way they won't crash the server when read from disk and they won't get lost either.
2020-05-12 23:28:17 +01:00
Dylan K. Taylor
ac4c1c9086 Clean up to SurvivalBlockBreakHandler internals - don't create a handler if it won't be used anyway 2020-05-12 22:45:42 +01:00
Dylan K. Taylor
144a66c110 cumulative imports cleanup (again) 2020-05-12 22:38:59 +01:00
Dylan K. Taylor
152da604be MemoryManager::dumpMemory() should never throw an exception that matters to calling code 2020-05-12 22:37:23 +01:00
Dylan K. Taylor
3a6cdba281 Implemented server-side block-break FX handling, closes #3485
this had been planned for a long time already, just never finished.
It's not fully done, because there needs to be synchronization of block-break handlers between different players attempting to break the same block, but this should resolve a lot of the bugs that previously existed, while also opening the doors to making the logic more flexible.
2020-05-11 21:16:30 +01:00
Dylan K. Taylor
3238b4ff33 Remove PluginIdentifiableCommand in favour of a more generic PluginOwned interface 2020-05-11 19:25:52 +01:00
Dylan K. Taylor
2f47597d75 BaseLevelProvider: stop crashing the server on invalid level.dat
broken userdata isn't a core bug, so it shouldn't be flooding our crash archives.
2020-05-11 15:34:53 +01:00
Dylan K. Taylor
6b037d6a4c RuntimeBlockMapping: these IDs are not static any more 2020-05-11 12:40:55 +01:00
Dylan K. Taylor
b7cf4f01f9 remove utils\UUID, switch to pocketmine/uuid package 2020-05-11 10:46:48 +01:00
Dylan K. Taylor
3299bc4023 start using pocketmine/errorhandler 2020-05-10 13:04:40 +01:00
Dylan K. Taylor
8efe7fcfb0 World: allow configuring blocks-per-tick for random updating
this makes it much easier to observe and debug stuff that depends on it, such as grass, crop and tree growth, since they'll happen much faster.
A future improvement would be to have the update function use a non-global random so that the output can be reproduced using a given seed.
2020-05-10 11:50:31 +01:00
Dylan K. Taylor
56883f9ff9 MemoryManager: explicitly assume return type of ini_get() 2020-05-10 11:35:53 +01:00
Dylan K. Taylor
7cdd26add5 Player: make handleLogin() less unreadable 2020-05-10 11:23:11 +01:00
Dylan K. Taylor
a6c35cab9a JwtUtils: fix phpstan failure 2020-05-06 22:00:11 +01:00
Dylan K. Taylor
0b6d6306cf LoginPacket: fixed error handling edge case with malformed chain data JSON 2020-05-06 21:46:35 +01:00
Dylan K. Taylor
ed757c7207 consolidate some JWT handling into one class 2020-05-06 21:32:22 +01:00
Dylan K. Taylor
5d154e43a9 LoginPacket: removed an old hack that's no longer used 2020-05-06 21:18:05 +01:00
Dylan K. Taylor
a92580b993 StartGamePacket: remove unused imports 2020-05-06 21:14:57 +01:00
Dylan K. Taylor
acd37b95b8 Merge branch 'next-minor' 2020-05-06 20:41:48 +01:00