Commit Graph

13461 Commits

Author SHA1 Message Date
Dylan K. Taylor
b24eb153f9 Constrain inventory transaction predictions
these are now only used for actions done with a closed inventory window. This means that they can only predict the slots of inventory, offhand and armor (total 41 slots) and perhaps include some DropItem actions.
2023-01-05 21:18:30 +00:00
Dylan K. Taylor
36525d9055 Fixed multi-output recipe handling 2023-01-05 20:41:44 +00:00
Dylan K. Taylor
3d6baa8a55 Working creative inventory, with a few more hacks than I'd like 2023-01-05 18:09:57 +00:00
Dylan K. Taylor
30d3869eea Remove dead code 2023-01-05 17:26:58 +00:00
Dylan K. Taylor
81697111b9 Merge branch 'item-stack-request' of github.com:pmmp/PocketMine-MP into item-stack-request 2023-01-05 17:24:15 +00:00
Dylan K. Taylor
eedc943766 Confine legacy transaction handling to dropping items only 2023-01-05 17:23:50 +00:00
IvanCraft623
e647e8c933 World: Use existing function to notify nearby blocks of an update (#5494) 2023-01-05 16:55:35 +00:00
IvanCraft623
c6e11a8453 Remove unnecessary ternary operator (#5493) 2023-01-04 23:22:31 +00:00
Dylan K. Taylor
2e9a3f9160 Working crafting :woohoo: 2023-01-04 22:29:29 +00:00
IvanCraft623
433f5451d7 Improve World::notifyNeighbourBlockUpdate() doc (#5491) 2023-01-04 20:11:55 +00:00
Dylan K. Taylor
3d4ed5308e Merge branch 'stable' into item-stack-request 2023-01-04 01:28:42 +00:00
Dylan K. Taylor
33d1755eae Player: fixed not receiving slot updates for small crafting grid
I'm not really sure why this tracking logic is here and not in InventoryManager, but for now it is what it is.
2023-01-04 01:28:25 +00:00
Dylan K. Taylor
58dd4a44e3 Merge branch 'stable' into item-stack-request 2023-01-04 00:41:58 +00:00
Dylan K. Taylor
fc63c54116 CraftingManager: more detailed type information for shapelessRecipes and shapedRecipes 2023-01-04 00:32:26 +00:00
Dylan K. Taylor
5fdbb19852 Fixed a whole bunch of issues with legacy transactions 2023-01-04 00:13:51 +00:00
Dylan K. Taylor
6b2156151f Merge branch 'stable' into item-stack-request 2023-01-03 23:51:37 +00:00
Dylan K. Taylor
db07976aab TypeConverter: do not send useless meta to the client 2023-01-03 23:50:31 +00:00
Dylan K. Taylor
d8d236842f Fixed merge error 2023-01-03 19:54:41 +00:00
Dylan K. Taylor
f51717323b Merge branch 'stable' into item-stack-request 2023-01-03 19:53:25 +00:00
Dylan K. Taylor
0e4b79ea77 InGamePacketHandler: fixed client-side predictions not getting rolled back for block placement 2023-01-03 19:43:21 +00:00
Dylan K. Taylor
588c9b114b 4.12.5 is next 2023-01-03 19:30:02 +00:00
Dylan K. Taylor
b095f606c1 Release 4.12.4 2023-01-03 19:29:47 +00:00
Dylan K. Taylor
b312e93176 Limit list max size in transactions
this duct tape is to limit the impact of a security vulnerability being actively exploited.
2023-01-02 22:59:48 +00:00
Alexey
172ce659b8 Use str_starts_with, str_ends_with and str_contains instead of strpos (#5485) 2022-12-31 13:02:23 +00:00
Dylan K. Taylor
61933624d2 NetworkSession: Lift batch limit to 1300 to allow shift-click crafting to work correctly
the theoretical limit for transactions in this case is 64x9 (inputs) + 64x9 (output on crafting grid) + 64 (outputs to main slot) + 64 CraftingEventPackets = 1280.
This is an extreme case which assumes that a recipe could generate up to 64x10 (640) output items per iteration, filling every slot of the output grid, which should never occur in any reasonable circumstances.
2022-12-30 22:11:35 +00:00
Alexey
0d31b25fba Use str_starts_with and str_contains instead of strpos (#5482) 2022-12-30 21:41:30 +00:00
Dylan K. Taylor
90beaeaeb4 4.12.4 is next 2022-12-28 21:01:50 +00:00
Dylan K. Taylor
466f7e98ed Release 4.12.3 2022-12-28 21:01:47 +00:00
Dylan K. Taylor
59be901efe Fixed unauthenticated sessions taking up player slots 2022-12-28 20:42:33 +00:00
Dylan K. Taylor
0d169b4e80 Filesystem: added fileGetContents to reduce ErrorToExceptionHandler boilerplate code 2022-12-25 17:13:51 +00:00
Dylan K. Taylor
b1c0eae1f6 NetworkSession: tidy up common disconnection logic 2022-12-24 20:36:18 +00:00
Dylan K. Taylor
80832ff763 NetworkSession: do not send packets to disconnected sessions
this is mostly harmless, since the packets land in a buffer that gets discarded, but we also need to avoid calling DataPacketSendEvent.
2022-12-24 20:12:50 +00:00
Dylan K. Taylor
f7d0d16eb3 NetworkSession: defer destructive cleanup until the next session tick() call
this fixes crashes when kicking players during PlayerJoinEvent and various other events.
2022-12-24 20:06:00 +00:00
Dylan K. Taylor
6375139d0b DefaultPermissions: improve readability slightly 2022-12-24 17:47:17 +00:00
Dylan T
567bd8abb5 Add .self and .other permissions for gameplay-altering commands (#5470)
I'm not quite sure this is the best way to enable such functionality, but it's already used for some other stuff, so I'm not too worried for now.

This allows the following commands to have their usage limited to self or others:
- /effect
- /enchant
- /gamemode
- /give
- /spawnpoint
- /teleport
- /title

I envision this being useful for creative mode servers, and test servers such as test.pmmp.io.
2022-12-24 17:22:18 +00:00
Dylan K. Taylor
3d038b28ff SplashPotion: const-ify missed NBT key 2022-12-24 15:19:56 +00:00
Dylan K. Taylor
0c9b6a6797 DatFilePlayerDataProvider: added documentation 2022-12-23 19:00:45 +00:00
Dylan K. Taylor
639f089c55 .. 2022-12-23 18:59:36 +00:00
Dylan K. Taylor
9010b2743c Move player data storage handling behind an interface 2022-12-23 18:58:49 +00:00
Dylan K. Taylor
4c91c4aaf1 ÂMemoryManager: replace switch with match 2022-12-23 17:36:08 +00:00
Dylan K. Taylor
17125ce0e3 Merge branch 'stable' into next-minor 2022-12-23 16:56:54 +00:00
Dylan K. Taylor
3987ee6cb2 PluginDescription: const-ify plugin.yml parsing keys 2022-12-23 16:11:03 +00:00
Dylan K. Taylor
51a684c0ea PermissionParser: remove hardcoded default strings in defaultFromString() 2022-12-23 16:03:01 +00:00
Dylan K. Taylor
43e69041fc PermissionParser: use constants for keys 2022-12-23 16:00:38 +00:00
Dylan K. Taylor
5d2b0acfc8 GamemodeCommand: report failure if the target's game mode is already the desired game mode
this has irritated me for years.
2022-12-22 18:38:10 +00:00
Dylan K. Taylor
b03733442b Move translation flattening logic from Player to NetworkSession
this is network-specific stuff, so it doesn't belong in Player.
2022-12-22 16:51:09 +00:00
Dylan K. Taylor
9c9929ff39 Player: break cycle between sendMessage() and sendTranslation() 2022-12-22 16:37:36 +00:00
Dylan K. Taylor
566a8a261f Player: deprecate sendTranslation() in favour of sendMessage() 2022-12-22 16:32:54 +00:00
IvanCraft623
a9e5f92958 Show death message on death screen (#5386) 2022-12-22 15:36:31 +00:00
Dylan K. Taylor
ee7d4728d8 World: added cache for isChunkTickable()
this considerably reduces the amount of work done by the function, since it's usually checking the same chunks over and over again.
2022-12-19 21:20:21 +00:00