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
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 T
7d1d62042c
attempted fix for GitHub rate limiting php-cs-fixer installation
...
from https://github.com/shivammathur/setup-php/issues/678#issuecomment-1363128626
2022-12-22 18:13:03 +00:00
Dylan K. Taylor
2a33c9ed3b
Fix PHPStan
2022-12-22 16:53:14 +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
dependabot[bot]
17dde140a5
Bump phpstan/phpstan-phpunit from 1.3.2 to 1.3.3 ( #5465 )
...
Bumps [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit ) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/phpstan/phpstan-phpunit/releases )
- [Commits](https://github.com/phpstan/phpstan-phpunit/compare/1.3.2...1.3.3 )
---
updated-dependencies:
- dependency-name: phpstan/phpstan-phpunit
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-22 15:23:10 +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
Dylan K. Taylor
923dcec4e7
Revert "World: do not refresh ticked chunks list every tick"
...
This reverts commit aebcfc516ff97492c58ee478a3944915a777a75e.
this has edge cases in the handling of adjacent chunk locks which I
didn't consider at the time. Once accounting for those edge cases, it
became significantly more complex to the point that I realized this
needed more planning.
2022-12-19 20:57:51 +00:00
Dylan K. Taylor
1e5597f0d5
World: account for null chunk edge case in tickChunk()
...
the target chunk may no longer be loaded if it was unloaded during a previous chunk's tick (e.g. during BlockGrowEvent).
Since the parent function iterates over a pre-selected array of chunks, the chunk will still be present in the list even if it's no longer loaded by the time it's reached.
2022-12-19 20:20:52 +00:00
Dylan K. Taylor
aebcfc516f
World: do not refresh ticked chunks list every tick
...
this is just wasting CPU time, since the effects aren't noticeable on such a small timescale anyway.
This reduces the CPU impact of chunk selection by 95%. However, this is the lesser part of chunk ticking, and the lion's share of the performance impact still comes from actually ticking the chunks.
2022-12-19 20:17:29 +00:00
Dylan K. Taylor
97ef209c5f
HandlerList: added missing class-string type for constructor
2022-12-19 16:26:36 +00:00
Dylan K. Taylor
99faeb8d05
Merge remote-tracking branch 'origin/stable' into next-minor
2022-12-19 15:55:59 +00:00
Dylan K. Taylor
1305fd5fb2
Merge branch 'stable' of github.com:pmmp/PocketMine-MP into stable
2022-12-19 15:52:56 +00:00
Dylan K. Taylor
7a137f932f
Updated build/php submodule to pmmp/php-build-scripts@6b605ed7c4
2022-12-19 15:52:44 +00:00
dependabot[bot]
63e8b1cf3a
Bump phpstan/phpstan from 1.9.3 to 1.9.4 ( #5458 )
...
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan ) from 1.9.3 to 1.9.4.
- [Release notes](https://github.com/phpstan/phpstan/releases )
- [Changelog](https://github.com/phpstan/phpstan/blob/1.9.x/CHANGELOG.md )
- [Commits](https://github.com/phpstan/phpstan/compare/1.9.3...1.9.4 )
---
updated-dependencies:
- dependency-name: phpstan/phpstan
dependency-type: direct:development
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-12-19 15:39:59 +00:00
Dylan K. Taylor
65bce762ff
Updated transient Composer dependencies
2022-12-19 15:34:17 +00:00
Dylan K. Taylor
529700bb8b
PotionTypeIdMap: fixed uninitialized fields
...
I have no idea why this didn't ever cause a problem before... probably an edge-case in the typed properties implementation
2022-12-19 15:33:15 +00:00
Dylan K. Taylor
b2017c8462
and more
2022-12-18 22:14:31 +00:00
Dylan K. Taylor
bf44edd179
Constify a bunch of NBT keys, pass 1
2022-12-18 22:12:15 +00:00
Dylan K. Taylor
aa374083d8
Accept new BedrockProtocol version
2022-12-18 21:00:52 +00:00
Dylan K. Taylor
8c0d3943d8
Added length validation for resource pack encryption keys
2022-12-15 22:36:06 +00:00
Dylan K. Taylor
d02c6668b2
ResourcePackManager: added setPackEncryptionKey()
...
this allows plugins to install their own encrypted resource packs
2022-12-15 22:29:34 +00:00
Dylan K. Taylor
880d01daea
ResourcePackManager: added setResourceStack()
...
this enables plugins to modify the resource pack stack however they see fit.
Modifying the existing stack can be done by doing array modifications on the result of getResourceStack() and then setting it back again using this method.
2022-12-15 22:10:53 +00:00
Dylan K. Taylor
50b70708fb
ResourcePackManager: extracted loadPackFromPath() private method from constructor body
2022-12-15 21:59:54 +00:00
Dylan K. Taylor
437fa615b8
4.12.3 is next
2022-12-15 21:08:28 +00:00
Dylan K. Taylor
0ee6cdb058
Release 4.12.2
4.12.2
2022-12-15 21:08:23 +00:00