104 Commits

Author SHA1 Message Date
Dylan K. Taylor
d35d9e6ecf
Enable compression-threads by default 2023-11-13 15:07:38 +00:00
Dylan K. Taylor
0f9f0a3b7f
Remove async compression pocketmine.yml options
CompressBatchTask is kept for internal testing for now
2023-06-05 21:36:33 +01:00
Dylan K. Taylor
20c2fae0c6
First look at specialized network compression threads
closes #5641

This has been mostly tested on Windows so far, where it offers substantial performance gains for compression.
On *nix, the performance advantage is smaller, since there's less overhead to creating new AsyncTask instances; however, the performance benefit is still clearly visible.

There are still some wrinkles to iron out, such as the dumb algorithm used for cycling through threads which wastes memory on small servers, but this change is mainly aimed at large servers, where the benefit will be clearly apparent.
In practice, this should reduce main thread CPU load by 10-20% on some of the largest servers, offering a large amount of headroom for increased player counts.
2023-06-05 21:11:13 +01:00
Dylan K. Taylor
ee9ce8a4f4
Merge branch 'minor-next' into major-next 2023-05-17 15:45:03 +01:00
Dylan K. Taylor
599c4284f5
Introduce 10 KB threshold for async compression
due to the extremely large performance cost of instantiating AsyncTasks, it's usually not worth bothering with async compression except for very large packets.
While this large overhead can be significantly reduced by using specialized threads, it's early days in the testing stages for such improvements, and for now, we still have this to deal with.

Since async compression is always used prior to player spawn, this change may slightly improve the performance of the pre-join stage of the game.
2023-05-16 22:54:06 +01:00
Dylan K. Taylor
cfa1e7486a
Move legacy recipes and creative items in-house
having them here allows BedrockData to represent latest versions freely, without being limited by technical limitations of PM4.
2023-02-02 15:25:03 +00:00
Dylan K. Taylor
a205d64732
Merge branch 'next-minor' into next-major 2022-11-12 17:02:56 +00:00
Dylan K. Taylor
83ddcce987
World: Considerably simplify ticked chunk selection
WARNING: This WILL have a performance impact on larger servers, but that's the price to pay for having crops actually grow.

The old overengineered method for doing this was causing glacially slow crop growth, vanilla parity issues and really just didn't make much sense. This method is probably incorrect too, but it will at least produce visible results.
2022-11-12 16:57:35 +00:00
Dylan K. Taylor
1c6a2b66f7
Merge remote-tracking branch 'origin/next-minor' into next-major 2022-09-29 22:38:26 +01:00
BrandPVP
b21cd82e94
Allow specifying a key for encrypted resource packs (#5297) 2022-09-28 17:27:33 +01:00
Dylan K. Taylor
f80ffd8de0
Merge branch 'next-minor' into next-major 2022-09-15 13:59:21 +01:00
Dylan K. Taylor
14d3e6c7d5
Allow disabling the console reader via pocketmine.yml
Useful to save resources on headless servers where the console is never used (e.g. hosted server, Docker, etc.)
2022-09-01 23:43:54 +01:00
Dylan K. Taylor
ea3d5ac563
LegacyStringToItemParser: use string IDs directly
this allows plugins to add their own mappings (though they should really be using StringToItemParser) without needing any legacy numeric ID bullshit in the mix.
2022-06-29 15:25:50 +01:00
Dylan K. Taylor
a6299b0927
pocketmine.yml: moar docs for command aliases hidden features 2022-05-01 16:16:32 +01:00
Dylan K. Taylor
fefd3e6b29
Document how to passthru arguments to aliased commands 2022-04-07 23:36:04 +01:00
Dylan K. Taylor
9b43be9d9c
Improved documentation of pocketmine.yml aliases 2022-04-07 23:10:18 +01:00
Dylan K. Taylor
3faeb5a556
disable-block-ticking directive now supports names a la /give 2022-01-07 21:06:06 +00:00
Dylan K. Taylor
4c07078586
Merge branch 'stable' 2021-11-08 19:01:08 +00:00
Dylan K. Taylor
3c754b079c
Move resources/locale to Composer dependency
all remaining submodules are now non-essential to running a server.
They are also versioned and updates can be done automatically using 'composer update'.

Finally, we can also put an end to the issue of translations being rendered incorrectly or being missing due to outdated submodules.
2021-11-06 00:32:58 +00:00
Dylan K. Taylor
275f145418
BedrockData is now a Composer dependency
this should put a stop to people nagging me about incorrect blocks (we have a check to make sure composer dependencies are up to date).
2021-11-02 16:45:45 +00:00
Dylan K. Taylor
7e4be29fc4
Gracefully force-shutdown on failure to start RakLib
this now won't generate a crashdump.
2021-11-02 13:51:01 +00:00
Dylan K. Taylor
9646128d01
Updated resources/locale submodule to pmmp/Language@09c709f242 2021-10-20 21:22:56 +01:00
Dylan K. Taylor
fee6478cbe
Updated BedrockData and BedrockProtocol for 1.17.40 support 2021-10-19 19:00:29 +01:00
Dylan K. Taylor
2db53775e0
Sort item_from_string_bc_map using SORT_NATURAL 2021-10-13 21:01:59 +01:00
Dylan K. Taylor
b570324288
LegacyStringToItemParser: rely exclusively on item_from_string_bc_map.json, do not interpret integers given as strings
fixes #4507
2021-10-13 20:29:18 +01:00
Dylan K. Taylor
34f54750c8
Added support for creation-time validation of generator options, closes #2717 2021-10-11 17:37:47 +01:00
Dylan K. Taylor
19a66a8d03
committing the new strings would have helped ... 2021-10-11 01:14:00 +01:00
Dylan K. Taylor
e1ee320c8d
PluginManager: Localize plugin loading error messages 2021-10-11 00:58:33 +01:00
Dylan K. Taylor
ccc881ee58
Switch to custom permission denied message
closes #4494
2021-10-09 00:57:15 +01:00
Dylan K. Taylor
a101d1cdf9
Drop pocketmine.plugin.fileError in favour of pocketmine.plugin.loadError
fileError was unnecessarily noisy, putting the directory path on the console twice. This conveys just as much information but with less wasted space.
2021-10-05 23:31:00 +01:00
Dylan K. Taylor
fec48003d9
..... 2021-10-05 20:29:24 +01:00
Dylan K. Taylor
7d06b76aaf
PluginManager: account for possible invalid format of API version
we're seeing a lot of crashes because of this.
2021-10-05 18:36:00 +01:00
Dylan K. Taylor
fb570970a8
Localize gamemode command errors 2021-10-02 21:22:54 +01:00
Dylan K. Taylor
30e10c38b6
Localize /help 2021-10-02 20:59:36 +01:00
Dylan K. Taylor
05dc675d5b
Replace commands.generic.notFound with a custom PM version
this also fixes #4379.
2021-10-02 20:42:59 +01:00
Dylan K. Taylor
d63b9d1648
WorldManager: localize strings for world loading, generation and conversion 2021-10-02 20:33:32 +01:00
Dylan K. Taylor
3813caf5ec
Updated BedrockProtocol and BedrockData for 1.17.30 2021-09-22 00:36:21 +01:00
Dylan K. Taylor
273aa8ab42
Drop useless usage translation strings for commands with no parameters 2021-09-11 17:06:26 +01:00
Dylan K. Taylor
aa5a9f6d12
Enchantment: use Translatable instead of hardcoded translation keys 2021-09-03 20:52:05 +01:00
Dylan K. Taylor
e140614a63
Localize /gc 2021-08-26 15:06:43 +01:00
Dylan K. Taylor
47120022c2
Localize messages for /op and /deop 2021-08-26 13:31:19 +01:00
Dylan K. Taylor
715fbc9ee5
fix last remaining non-usages of KnownTranslationFactory 2021-08-15 16:35:51 +01:00
Dylan K. Taylor
13d4131d0d
Remove player update warnings
a player ingame is not going to have access to the terminal to update PM, and if they do, they can see the warning on the console themselves anyway.
2021-08-14 13:27:21 +01:00
Dylan K. Taylor
fd41a0f510
Remove colors from VersionCommand
these will have to stay gone for now, until we have some way to terminate formatting codes without breaking logger output. (we need &p!! #4364)
2021-08-12 20:35:34 +01:00
Dylan K. Taylor
f42c9bb6d6
Removed unused translation 2021-08-10 19:48:30 +01:00
Dylan K. Taylor
2cdd6e634f
New /version format 2021-08-10 19:32:28 +01:00
Dylan K. Taylor
b07000f613
Merge branch 'pm3-bedrock-1.17.10' into pm4-bedrock-1.17.10 2021-07-09 20:02:30 +01:00
Dylan K. Taylor
2bbb24fab7
Merge branch 'stable' 2021-06-08 20:00:08 +01:00
Dylan K. Taylor
34ee1c2354
pocketmine.yml: update preset example for worlds
preset is now supported as its own key, and it's less confusing to present it separately, since that's how it's displayed in the server.properties also.
2021-05-12 12:00:52 +01:00
Dylan K. Taylor
2bc0f9f7a2
TimingsCommand: do not enable timings if they are already enabled
this causes timings to be reset, which is potentially undesirable (loss of already-collected timing data).
closes #4194
2021-04-27 22:39:13 +01:00