17652 Commits

Author SHA1 Message Date
Dylan K. Taylor
11e34b3e5c
Release 4.19.3 4.19.3 2023-04-21 15:53:02 +01:00
Dylan K. Taylor
f9318bf286
TimingsHandler: stop throwing exceptions when timers aren't stopped in the right order
this is usually because of an uncaught exception interacting with a try...finally block.
This will normally result in a crash anyway, and we don't want to obscure the real error.
2023-04-21 15:38:11 +01:00
Dylan K. Taylor
769be8e140
Fix CSÂ 2023-04-20 00:18:32 +01:00
Dylan K. Taylor
c878bd8289
Merge remote-tracking branch 'origin/minor-next' into major-next 2023-04-20 00:18:19 +01:00
Dylan K. Taylor
71b78b02d3
Merge remote-tracking branch 'origin/stable' into minor-next 2023-04-19 23:57:26 +01:00
Dylan K. Taylor
4147d0dc75
tools/generate-blockstate-upgrade-schema: give better errors when a weird new blockstate version is found 2023-04-19 16:43:29 +01:00
Dylan K. Taylor
674b65f789
Item: optimise serializeCompoundTag() a little 2023-04-18 16:18:34 +01:00
Dylan K. Taylor
a77fc8109f
TypeConverter: avoid repeated calls to getId() and getMeta() 2023-04-18 15:02:52 +01:00
Dylan K. Taylor
6102740ee3
TypeConverter: use a less slow hack to restore meta values on items sent by the client
this isn't even really needed anymore, since we don't decode items from the client since 4.18.

However, this may still be useful for tools.
2023-04-18 15:00:34 +01:00
Dylan K. Taylor
40168a457e
TypeConverter: fixed coreItemStackToNet() causing item NBT to be prepared twice
hasNamedTag() calls getNamedTag(), which calls serializeCompoundTag(), which writes the item's properties into the given NBT tag.
2023-04-18 14:43:25 +01:00
Dylan K. Taylor
d07acd0013
RakLibInterface: split error ID into 4-character chunks
this makes it easier to read, since the error ID can't be copy-pasted from the disconnection screen on the client.
2023-04-17 14:05:46 +01:00
Dylan K. Taylor
0629d11e13
Avoid unnecessary events work in handleDataPacket if the events have no registered handlers
this particular optimisation became possible thanks to changes in 4.19.

I observed that the allocation of Event objects and calling ->call() was costing us a significant percentage of the time taken in PlayerAuthInputPacket handlers. This change produces a measurable 2 microsecond reduction in overhead for PlayerAuthInputPacket handling when players are not moving (10.7 -> 8.7 microseconds). On a server with 200 players, this translates into a 1% reduction in CPU load for PlayerAuthInputPacket alone. It will also benefit other packets, but not to the extent that PlayerAuthInputPacket benefits.
2023-04-16 20:51:55 +01:00
Dylan K. Taylor
9561ae5af7
Entity: micro optimisation for checkBlockIntersections() 2023-04-16 17:57:51 +01:00
Dylan K. Taylor
56fbd45dd5
Entity: avoid double-checking block intersections for moving entities
fixes #1824
2023-04-16 17:38:26 +01:00
Dylan K. Taylor
b5dc72b0ee
tools/simulate-chunk-selector: fixed the script being completely broken
getopt() behaviour is really, really dumb
2023-04-16 16:47:17 +01:00
Dylan K. Taylor
4ba57f2b03
RegisteredListener: use try...finally to stop timings
While event handlers should not throw exceptions, we need to make sure the timings get stopped in the correct order, because the parent Event timer will be stopped due to using a finally block.
If this happens while the handler timing is still running, a second exception will occur, obscuring the real error.
2023-04-16 00:40:43 +01:00
Dylan K. Taylor
1026811741
Merge branch 'minor-next' into major-next 2023-04-14 21:00:08 +01:00
Dylan K. Taylor
84cb070d56
Merge branch 'stable' into minor-next 2023-04-14 20:12:33 +01:00
Dylan K. Taylor
df0d72bf61
4.19.3 is next 2023-04-14 18:43:44 +01:00
Dylan K. Taylor
a534ac759a
Release 4.19.2 4.19.2 2023-04-14 18:43:41 +01:00
Dylan K. Taylor
5ab954b7a0
Update composer dependencies 2023-04-14 18:31:57 +01:00
Dylan K. Taylor
6c6f686f8e
Timings: be more intelligent about shortening timer names
non-pocketmine classes may reuse the names of pocketmine core classes. We don't want timers to get erroneously reused in this case.
2023-04-14 18:24:53 +01:00
Dylan K. Taylor
bf7975da57
Timings: use class to index packet timings, not IDs
on multi version servers, the same packet may have different IDs, or different packets might use the same ID. In these cases, we don't want the timings to get split up or erroneously reused.
2023-04-14 18:22:35 +01:00
Dylan K. Taylor
7aeedd8220
Timings: fixed every player getting its own timings
we need a more consistent way to deal with this
2023-04-14 17:32:56 +01:00
Dylan K. Taylor
3dd1ce2d02
4.19.2 is next 2023-04-14 16:47:46 +01:00
Dylan K. Taylor
5a29d07021
Release 4.19.1 4.19.1 2023-04-14 16:47:43 +01:00
Dylan K. Taylor
692e1253c6
Fixed AABB height for farmland and grass paths (fixed in 1.19.50) 2023-04-14 16:02:28 +01:00
Dylan K. Taylor
ab0c444823
Player: fixed ticking chunks not being re-registered if they never left the view distance
closes #5699
2023-04-14 16:02:28 +01:00
Dylan K. Taylor
e48a4aaa55
World: fixed chunk ticking not being disabled by setting chunk ticking radius to 0
I can't believe I missed this ...
2023-04-14 16:02:28 +01:00
Dylan K. Taylor
6fc4ce0f86
ÂTimingsCommand: include HTTP response code in debug message
we should probably show this in the regular response message, but we need new translations for that.
2023-04-14 16:02:27 +01:00
Dylan K. Taylor
6acabf7a1b
Block: add clarifying note about isSameType()
I'm still not happy with this method though...
2023-04-13 13:40:53 +01:00
dependabot[bot]
10243c7b2c
Bump phpstan/phpstan from 1.10.11 to 1.10.13 (#5697)
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.10.11 to 1.10.13.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.11.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.10.11...1.10.13)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-13 13:19:24 +01:00
Dylan K. Taylor
b122703fd0
BaseCoral: fixed late property initialization 2023-04-13 13:18:47 +01:00
Dylan K. Taylor
e40774d62f
Block: make internal methods private (they are no longer used outside of Block) 2023-04-13 13:06:56 +01:00
Dylan K. Taylor
027d8f7377
always the CS... 2023-04-13 12:55:18 +01:00
Dylan K. Taylor
5950707267
Block: simplify required type data / state data bits code 2023-04-13 12:55:09 +01:00
Dylan K. Taylor
6cace51a21
Remove unused variable 2023-04-13 12:47:17 +01:00
Dylan K. Taylor
6703f46a08
Remove random dead TODOs 2023-04-13 12:47:08 +01:00
Dylan K. Taylor
874fdf5adb
ItemBlock: reference blocks directly (take 2)
This was first attempted in f64dc01bd1c14ff3f79bd6c18d0c337dbc0e87e0, but reverted, since I hadn't considered how to handle stripping state data from blocks.

This removes the abusable API RuntimeBlockStateRegistry::fromTypeId() and related methods. These were only used to allow ItemBlocks to magically start referencing other blocks if the blocks were overridden by a plugin, but this was never a well-supported use-case anyway.

Instead of relying on RuntimeBlockStateRegistry, we remember the state that the block had during its constructor, and use that to normalize the non-item properties for asItem().

closes #5609
2023-04-13 12:44:54 +01:00
Dylan K. Taylor
1c626baf1a
Fixed dodgy custom block registration test 2023-04-13 12:27:55 +01:00
Dylan K. Taylor
c3a2199f0e
Reduce global usage in world providers 2023-04-13 12:05:37 +01:00
Dylan K. Taylor
499b29b53a
Merge branch 'minor-next' into major-next 2023-04-12 21:04:08 +01:00
Dylan K. Taylor
8102586ee0
Merge branch 'stable' into minor-next 2023-04-12 21:04:03 +01:00
Dylan K. Taylor
18b528f72d
ItemStackRequestExecutor: fixed borked taking of created items
closes #5695
2023-04-12 21:01:46 +01:00
Dylan K. Taylor
0336394098
Human: remove useless NameTag tag
this is not written anywhere, so this code never does anything.
2023-04-12 16:44:10 +01:00
Dylan K. Taylor
7e92da126d
DelegateInventory: fixed slots being synced twice and breaking ItemStackRequests
the second time the slot is synced, there is no prediction, so the slot update isn't associated with a request anymore. This causes subsequent requests in the same packet to fail, since the dependency request ID isn't associated with the slot anymore.

This change fixes the problem by only allowing the backing inventory to trigger a call to DelegateInventory->on*Change(). While we could have removed and re-added the listener instead, this way is safer since it doesn't assume that the backing inventory won't modify the given item in setItem().

closes #5692
2023-04-12 15:43:51 +01:00
Dylan K. Taylor
b80d7a57e3
Merge branch 'minor-next' into major-next 2023-04-11 23:56:28 +01:00
Dylan K. Taylor
1569bed37a
Merge branch 'stable' into minor-next 2023-04-11 23:56:22 +01:00
Dylan K. Taylor
ba62e0f9cb
WorldManager: fixed borked pre-generation for new worlds' spawn terrain
perhaps directly altering the behaviour of selectChunks() wasn't a good
idea? ...
2023-04-11 23:55:53 +01:00
Dylan K. Taylor
a6e79c5004
TimingsHandler: remove useless paste metadata
these fields are not used by any version of timings, so this code is redundant.
2023-04-11 23:45:01 +01:00