16880 Commits

Author SHA1 Message Date
Dylan K. Taylor
758b5ee500
InventoryManager: fixed armor slots hack
the correct condition for this should be an unsynced armor slot changed during a transaction, but conveying this information to syncSlot() is a bit of a hassle, so this will do for now.
2023-03-20 21:27:56 +00:00
Dylan K. Taylor
ca6d51498f
Buffer slot and content syncing until the end of the tick
we may receive multiple requests in one tick (e.g. crafting in a batch)
2023-03-20 19:16:00 +00:00
Dylan K. Taylor
e8085e22a0
Fixed crash when opening main inventory
the InventoryManagerEntry was getting overwritten, since we don't expect to open the same inventory with two different window IDs.
2023-03-20 18:40:18 +00:00
Dylan K. Taylor
a83fc85f1e
InventoryManagerEntry: fixed missing default 2023-03-20 17:32:44 +00:00
Dylan K. Taylor
3d70a169e1
Reduce chaos in InventoryManager
the information in these arrays is usually needed all at the same time, so it doesn't make sense to force multiple array lookups for it.

in addition, this (obviously) cleans up the code quite a lot.
2023-03-20 17:31:54 +00:00
Dylan K. Taylor
6ccb8f7373
git 2023-03-20 16:57:38 +00:00
Dylan K. Taylor
59bae9b077
Give InventoryManager internals clearer names
and stop mixing 'window' and 'inventory' terminology...
2023-03-20 16:53:57 +00:00
João
2751e1ec02
replacing new Vector3(0, 0, 0) with Vector3::zero() (#5640) 2023-03-20 12:54:28 +00:00
Dylan K. Taylor
c91168db66
... 2023-03-20 01:35:15 +00:00
Dylan K. Taylor
4e55433ed8
Fixed request rejecting 2023-03-20 01:35:03 +00:00
Dylan K. Taylor
eece6c4433
InGamePacketHandler: remove dead code 2023-03-20 01:28:18 +00:00
Dylan K. Taylor
67b7b60d18
.............. 2023-03-20 01:19:07 +00:00
Dylan K. Taylor
804feedb67
Added some dumb limits 2023-03-20 00:54:33 +00:00
Dylan K. Taylor
d57aca1367
CS 2023-03-20 00:53:00 +00:00
Dylan K. Taylor
7b0816e42f
Properly handle transaction building errors instead of kicking the player 2023-03-20 00:52:26 +00:00
Dylan K. Taylor
4864444440
Added CraftingManager::getCraftingRecipeFromIndex() 2023-03-19 22:14:23 +00:00
Dylan K. Taylor
52ea4feac0
Updated pocketmine/locale-data 2023-03-19 16:53:02 +00:00
Dylan K. Taylor
01d557062a
Remove dead baseline 2023-03-19 16:41:01 +00:00
Dylan K. Taylor
a619fd2be6
Scrub PHPStan baselines 2023-03-19 16:37:38 +00:00
Dylan K. Taylor
05d9298958
PHPStan 1.10.7 2023-03-19 16:33:59 +00:00
Dylan K. Taylor
f696a5881b
Merge remote-tracking branch 'origin/stable' into minor-next 2023-03-19 16:23:09 +00:00
Dylan K. Taylor
419962d3a2
Added timer for player-specific movement code
players use an entirely different pathway for movement processing, which could be costly.
2023-03-19 16:12:47 +00:00
Dylan K. Taylor
054c06fab9
Add specialized entityBaseTick timer for item entities
since item merging is a potential hotspot, we want to know if this code section is a performance problem.
Current timers only tell us whether overall ticking of a particular entity is slow, but that includes movement and therefore isn't particularly helpful.
2023-03-19 15:59:06 +00:00
Dylan K. Taylor
7bc5d8c824
Rename more timers 2023-03-19 15:57:36 +00:00
Dylan K. Taylor
607bdfa42f
Timings: added new timers for entity move collision checks and projectile move ray tracing
projectiles get their own distinct sub-timer, since the logic is completely different from regular entities.
2023-03-19 15:49:35 +00:00
Dylan K. Taylor
eec53f9ae0
Timings: clean up timer names 2023-03-19 15:39:44 +00:00
Dylan K. Taylor
3d56bd267c
Timings: fixup network timer inheritance 2023-03-18 23:13:25 +00:00
Dylan K. Taylor
9a969e21c7
ÂNetworkSession: ensure onResolve handler for CompressBatchPromise is covered by network send timings 2023-03-18 22:49:52 +00:00
Dylan K. Taylor
195bc3b623
NetworkSession: prevent dev client asserts from missing ability flags 2023-03-18 21:53:17 +00:00
Dylan K. Taylor
2177d8d352
Push Docker image tags to ghcr.io 2023-03-17 16:32:28 +00:00
Dylan T
471625e697
readme: remove docker hub shield
sadly there isn't any ghcr replacement right now.

[ci skip]
2023-03-17 16:24:13 +00:00
Dylan T
2135776c19
readme: goodbye docker hub, won't miss you
[ci skip]
2023-03-17 16:21:57 +00:00
Dylan K. Taylor
765aef0810
4.18.0-ALPHA2 is next 2023-03-16 21:45:21 +00:00
Dylan K. Taylor
bd21feffc4
Release 4.18.0-ALPHA1 4.18.0-ALPHA1 2023-03-16 21:45:18 +00:00
Dylan K. Taylor
cf0e7b4213
Merge branch 'minor-next' into major-next 2023-03-16 15:04:27 +00:00
Dylan K. Taylor
5b324f695c
Merge branch 'stable' into minor-next 2023-03-16 15:04:19 +00:00
Dylan K. Taylor
9caed10488
update-updater-api: use github.repository_owner to make fork testing of this workflow less obnoxious 2023-03-16 15:03:14 +00:00
Dylan K. Taylor
83945ff0a0
Do not update release channels if the new build has a lower version ID
this prevents stuff like 5.0.0 beta versions getting overwritten by 4.x beta versions.
2023-03-16 15:02:42 +00:00
Dylan K. Taylor
ef45180b80
Rename DataPacketPreReceiveEvent -> DataPacketDecodeEvent
thank you @IvanCraft623 for the suggestion
2023-03-16 13:40:37 +00:00
Dylan K. Taylor
ec2b53f61a
Remove unnecessary PacketBatch instantiations 2023-03-16 13:35:12 +00:00
Dylan K. Taylor
11ef6414b0
Server: remove deprecated method 2023-03-16 13:32:46 +00:00
Dylan K. Taylor
abd4ef01eb
Merge branch 'minor-next' into major-next 2023-03-15 23:02:41 +00:00
Dylan K. Taylor
941fd03998
Remove useless code 2023-03-15 22:58:10 +00:00
Dylan K. Taylor
1af8da3c1f
Merge branch 'minor-next' of github.com:pmmp/PocketMine-MP into minor-next 2023-03-15 22:54:05 +00:00
Dylan K. Taylor
a5985dcf7d
Merge branch 'stable' into minor-next 2023-03-15 22:53:44 +00:00
Armen Deroian
183d1f4038
Implement DataPacketPreReceiveEvent (#5559)
closes #5554

This is called just before the packet is decoded, allowing the event to be used to drop packets from clients without wasting CPU time decoding them. This can be particularly useful for mitigating denial-of-service attacks.
2023-03-15 22:47:19 +00:00
Dylan K. Taylor
08ee825d91
StandardPacketBroadcaster: Include varint length prefix in length calculation
varints encode 7 bits per byte, so a log with base 128 will tell us how many bytes are required to encode the length of the packet.
2023-03-15 22:41:19 +00:00
Dylan K. Taylor
337a254768
Use NetworkBroadcastUtils for broadcasting packets
this eradicates all but 4 usages of Server in Entity, which is extremely cool.
2023-03-15 22:28:51 +00:00
Dylan K. Taylor
a31e3331fd
Move Server::broadcastPackets() to NetworkBroadcastUtils::broadcastPackets()
this has no business being in Server, and it also doesn't need to be an instance method, since it never uses $this.
2023-03-15 22:25:23 +00:00
Dylan K. Taylor
acebbeed16
Added version channels for update.pmmp.io 2023-03-15 20:59:36 +00:00