Dylan K. Taylor
65f82f5cdf
Task::onRun() and Task::onCancel() now require :void return typehints
2020-05-17 13:58:01 +01:00
Dylan K. Taylor
b3454b3488
BiomeArray: check lower bounds in ::idx() as well as upper bounds
2020-05-16 18:42:47 +01:00
Dylan K. Taylor
ae6a7b7cc9
imports cleanup
2020-05-16 18:42:08 +01:00
Dylan K. Taylor
88715c7055
extracted a HeightArray type from Chunk
2020-05-16 18:41:27 +01:00
Dylan K. Taylor
a31240f60b
FastChunkSerializer: added constants for internal flags
2020-05-16 18:06:00 +01:00
Dylan K. Taylor
82d361d75f
extract a BiomeArray unit from Chunk
...
this now also properly validates data read from disk.
2020-05-16 17:36:22 +01:00
Dylan K. Taylor
c30dd9f1b6
Entity: add abstract getNetworkTypeId(), remove NETWORK_ID constant
...
this now requires that subclasses supply a proper NETWORK_ID.
2020-05-16 16:08:12 +01:00
Dylan T
67666db827
Task: Remove currentTick parameter ( #3498 )
...
This parameter is not used for the vast majority of task use cases and just serves as extra useless boilerplate code, especially for closure-based tasks.
This use case can be replaced using Server->getTick() in the cases where it matters.
2020-05-16 15:28:45 +01:00
Dylan K. Taylor
38e28f91e8
PermissionParser: move default string mappings to const array instead of switch
...
this allows them to be used for validation in stuff like Respect In() rule.
2020-05-16 11:26:00 +01:00
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
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
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
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