006cdaf6ea
RakLibInterface: log the name of the session which triggered an unhandled exception
...
this makes it easier to identify what sequence of events led up to the crash.
2023-03-26 18:56:24 +01:00
acc8ae87fb
4.18.1 is next
2023-03-25 20:51:38 +00:00
0e8b28716a
Release 4.18.0
4.18.0
2023-03-25 20:51:34 +00:00
7c77233d12
Merge branch 'stable' into minor-next
2023-03-25 20:26:54 +00:00
6f02b83a26
Update composer dependencies
2023-03-25 20:26:50 +00:00
fbfdf749f2
Merge branch 'stable' into minor-next
2023-03-25 20:25:48 +00:00
289c0b08f4
Explicitly state that pocketmine\network\mcpe is an internal package
2023-03-24 14:06:25 +00:00
dd37b531ad
CONTRIBUTING.md: document network API policy
2023-03-24 14:02:23 +00:00
58d5126ada
InventoryManager: fixed crashes when setting contents or slots of inventories during InventoryCloseEvent (and other similar logic)
2023-03-24 13:31:30 +00:00
f978c1e9a0
Merge remote-tracking branch 'origin/stable' into minor-next
2023-03-22 22:45:41 +00:00
0b8193aeb3
4.17.2 is next
2023-03-22 22:35:25 +00:00
00286e761c
Release 4.17.1
4.17.1
2023-03-22 22:35:24 +00:00
db59f71130
attempt to fix ghcr.io docker image push
2023-03-22 22:29:00 +00:00
b11457d605
Fixed uncaught exception when retrieving a packet from the pool
2023-03-22 22:24:25 +00:00
ea386c42d3
InGamePacketHandler: fixed dropping items from unselected hotbar slots
2023-03-21 14:45:18 +00:00
043e81e737
4.18.0-ALPHA3 is next
2023-03-21 00:26:19 +00:00
66a4c4c88b
Release 4.18.0-ALPHA2
4.18.0-ALPHA2
2023-03-21 00:26:19 +00:00
1a9322c00a
ItemStackRequestExecutor: added some missing @throws
2023-03-21 00:23:31 +00:00
c8d9477da1
ItemStackRequestExecutor: make non-final, and make some stuff protected
...
this allows for plugin extension, for example to implement anvils.
2023-03-21 00:22:21 +00:00
08e8ef275f
remove comment
2023-03-21 00:17:24 +00:00
e57fbff28c
ItemStackRequestExecutor: added a sanity check for recipe repetitions
2023-03-21 00:16:03 +00:00
f90315c4a2
ItemStackRequestExecutor: harden against invalid item counts
...
these cases should all be impossible, but that's assuming that the core code doesn't start using them for a different purpose in the future.
2023-03-21 00:13:21 +00:00
955f7944bb
ItemStackRequestExecutor: fixed another possible crash condition
2023-03-21 00:06:33 +00:00
ccd288d7fa
Avoid repeated calls to getItemInHand() in drop item handler
2023-03-21 00:04:29 +00:00
097632902a
InGamePacketHandler: fixed crash condition in drop item handler
2023-03-21 00:02:32 +00:00
e7771d76f2
Cover buffered inventory sync in timings
2023-03-20 23:29:02 +00:00
ecc830a689
InventoryManager: avoid calling TypeConverter::getInstance() in a loop
2023-03-20 23:24:52 +00:00
ee72e80fbb
ItemStackResponseBuilder: removed incorrect code
...
the client expects that all itemstacks must be acked by ItemStackResponse, regardless of whether the server changed them to some other item.
We'll overwrite the item to the correct thing at the end of the tick anyway.
2023-03-20 23:21:24 +00:00
63310cf764
Do not cache ItemStacks for every item
...
this is very memory inefficient, and only provides a performance advantage in cold code anyway.
2023-03-20 23:18:43 +00:00
1992d3b6db
InventoryManager: avoid useless work in trackItemStack()
...
this attempts to accommodate slots being set to themselves, which is a rare enough occurrence (only plugins will cause it) that it doesn't make sense to penalize every inventory update this way.
attempting to avoid changing the itemstackID in this way is detrimental to performance, and it doesn't actually matter if we set a new itemstackID anyway.
2023-03-20 23:08:17 +00:00
035a0a4e9d
InventoryManager: specialize trackItemStack() to avoid useless lookups
2023-03-20 22:57:58 +00:00
23ea721164
Reduce packets-per-batch limit to 100
...
this should be well in excess of requirements with the ItemStackRequest system in use.
2023-03-20 22:15:02 +00:00
8408da8534
Merge branch 'item-stack-request' into minor-next
2023-03-20 22:05:50 +00:00
c9601ae67d
Fixed crash when opening crafting table and other 'UI' inventories
2023-03-20 22:00:38 +00:00
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
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
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
a83fc85f1e
InventoryManagerEntry: fixed missing default
2023-03-20 17:32:44 +00:00
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
6ccb8f7373
git
2023-03-20 16:57:38 +00:00
59bae9b077
Give InventoryManager internals clearer names
...
and stop mixing 'window' and 'inventory' terminology...
2023-03-20 16:53:57 +00:00
2751e1ec02
replacing new Vector3(0, 0, 0) with Vector3::zero() ( #5640 )
2023-03-20 12:54:28 +00:00
c91168db66
...
2023-03-20 01:35:15 +00:00
4e55433ed8
Fixed request rejecting
2023-03-20 01:35:03 +00:00
eece6c4433
InGamePacketHandler: remove dead code
2023-03-20 01:28:18 +00:00
67b7b60d18
..............
2023-03-20 01:19:07 +00:00
804feedb67
Added some dumb limits
2023-03-20 00:54:33 +00:00
d57aca1367
CS
2023-03-20 00:53:00 +00:00
7b0816e42f
Properly handle transaction building errors instead of kicking the player
2023-03-20 00:52:26 +00:00
4864444440
Added CraftingManager::getCraftingRecipeFromIndex()
2023-03-19 22:14:23 +00:00