0ef5c67b9b
Use static constructor for MovePlayerPacket
...
this marks the last of the packets created using the old way.
2021-10-27 21:10:16 +01:00
6d89265510
Player: reduce code duplication
...
back when this was just hardcoded >> 4 everywhere, nobody thought anything of it, but now it uses constants, it's easy to cross-reference and see where the duplicates are.
2021-10-26 23:02:50 +01:00
a7d8a598e1
World: reduce code duplication for chunk coordinate calculation
2021-10-26 22:58:17 +01:00
51fbff204b
World: make PhpStorm understand return type of getAdjacentChunks()
2021-10-26 20:32:09 +01:00
1873457840
PopulationTask: stop using dynamic properties
2021-10-26 20:21:58 +01:00
fca70efbb1
World: move chunk population related methods to be in the same overall place
2021-10-26 16:44:08 +01:00
8f88393184
World: Specialize generateChunkCallback() for PopulationTask
...
this allows us to also set the adjacent chunks before calling ChunkPopulateEvent, to give a more accurate picture of what changed.
2021-10-26 15:28:00 +01:00
b9d9b69bbe
ConsoleReaderThread: trim the string before returning it
...
it will have a newline at the end that was added by the subprocess when posting it to the main process.
2021-10-26 01:07:14 +01:00
1d99cd329a
CS again
2021-10-26 00:50:43 +01:00
bd8cba1a7f
Added unit tests for Utils::testValidInstance()
2021-10-26 00:49:41 +01:00
24d4daec90
Utils::testValidInstance() now accepts interfaces for the baseName
2021-10-26 00:32:32 +01:00
4178c81209
Utils: fixed testValidInstance() not accepting the same valid class for both className and baseName
...
this caused problems in PlayerCreationEvent because plugins set the base class and then set the player class to the same thing.
2021-10-26 00:31:30 +01:00
94f4ef5862
PopulationTask: Throw AssumptionFailedError if center chunk is null for some reason
2021-10-25 21:07:03 +01:00
2e2515354c
PopulationTask: fixed undefined method call
...
fuck you PhpStorm! fuck you PhpStorm! fuck you PhpStorm!
2021-10-25 20:57:43 +01:00
359d0835f3
CS
2021-10-25 20:54:39 +01:00
d4cbde6f10
PopulationTask: use modification counters to detect changed chunks
...
instead of using terrain dirty flags, which aren't suitable for this purpose
2021-10-25 20:53:50 +01:00
a5418a019d
Chunk: added modification counter
...
this is independent from the terrain dirty flags (which are specifically used to track state of chunks needing to be saved).
2021-10-25 20:53:11 +01:00
baba25953f
Chunk: make all parameters of __construct() mandatory and non-nullable
...
having the constructor fill in defaults for these invariably causes bugs.
2021-10-25 20:22:50 +01:00
d53347454b
Chunk: use HeightArray::fill()
2021-10-25 20:17:30 +01:00
401e8d117b
Flat: use a less dumb way to build biome array
2021-10-25 20:15:33 +01:00
9835d75f65
Chunk: removed heighArray parameter from constructor
...
we don't pass this anywhere, and really it should be dynamically initialized anyway, just like light.
2021-10-25 20:13:50 +01:00
b8519d1af4
World: fixed every chunk having terrain saved at least once, even if unmodified
...
setPopulated() sets dirty flags on the chunk, causing the autosave sweep
to think they've been changed when they haven't. We now pass
terrainPopulated to the constructor to avoid this ambiguity recurring in
the future.
2021-10-25 19:53:47 +01:00
42ede30e77
...
2021-10-23 23:57:28 +01:00
04aedc6494
Updated BedrockProtocol
2021-10-23 23:54:49 +01:00
701a71a4ee
Sound::encode() position is no longer nullable
...
making this nullable was based on the invalid assumption that global sounds have no position, but it turns out they _do_ still use the position to make the sound come from the correct direction.
2021-10-23 02:01:26 +01:00
e50072dc27
Clean PHPStan baselines
2021-10-23 01:55:10 +01:00
c77829f4ad
Migrate packet creation to use ::create() methods in all but one case
...
MovePlayerPacket doesn't yet have a ::create() due to a complication with fields that aren't always present.
2021-10-23 01:46:01 +01:00
c773e43eda
Updated BedrockProtocol to pmmp/BedrockProtocol@97fa88e9ef
2021-10-23 01:16:45 +01:00
c262c2e726
Updated composer dependencies
2021-10-23 01:14:54 +01:00
a4b65d6a3f
PlayerCreationEvent: verify that the class actually exists and is instantiable
...
this ensures that crashdumps blame the plugin instead of the core on bad classes, such as in this case: https://crash.pmmp.io/view/5331225
2021-10-21 20:37:45 +01:00
2971bf30a5
actions: combine code verify into one step
...
this way the diff takes one less click to get to.
2021-10-21 00:30:19 +01:00
4f2bcb61d6
Fixed crashdump generation when crashing before PluginManager was created
2021-10-20 23:35:04 +01:00
e2275cc8ec
PluginManager: Prevent infinite recursion in loadPlugins()
...
if a plugin calls loadPlugins(server->getPluginPath()) during its onLoad(), and it itself is in that plugin path, an infinite recursion will occur.
2021-10-20 23:10:18 +01:00
620874d902
PluginManager: Extract checkPluginLoadability() to a PluginLoadabilityChecker unit
...
this can be more easily unit-tested.
2021-10-20 22:31:56 +01:00
44508a138f
Moved plugin extension requirement checks to PluginManager::checkPluginLoadability()
...
these don't really belong in PluginDescription.
2021-10-20 22:13:30 +01:00
aa408c9a97
Fixed 9646128d01
2021-10-20 21:54:57 +01:00
6d78a0b435
CS
2021-10-20 21:52:42 +01:00
76b4b23d98
PluginManager: remove loadPlugin()
...
loadPlugins() is now the preferred option, since it does all the proper checks.
In addition, the server now acknowledges that loading a single plugin may cause multiple plugins to be loaded, so returning only a single Plugin is not representative of what's actually happening.
2021-10-20 21:52:19 +01:00
03fcd844eb
PluginManager::loadPlugins() now accepts files as well as directories
...
loadPlugins() is now a superior option to loadPlugin(), since it enforces dependency checks and also supports automatic loading of plugins when new loaders are installed.
2021-10-20 21:36:14 +01:00
fecc13f362
Merge branch 'master' of github.com:pmmp/PocketMine-MP
2021-10-20 21:23:14 +01:00
9646128d01
Updated resources/locale submodule to pmmp/Language@09c709f242
2021-10-20 21:22:56 +01:00
a788954551
Fixed dependency handling across plugin loaders ( #3971 )
2021-10-20 20:22:00 +01:00
ec3986827c
Update BedrockProtocol to 3.0.1, widen constraint to allow newer patch versions
2021-10-20 16:20:10 +01:00
09c840b66a
Update transient composer dependencies
2021-10-20 16:19:20 +01:00
80b402e529
ItemTranslator: throw the proper exceptions when failing to map network IDs
2021-10-20 14:01:39 +01:00
a3f8546ac4
4.0.0-BETA7 is next
2021-10-19 19:13:43 +01:00
46920818b5
Release 4.0.0-BETA6
4.0.0-BETA6
2021-10-19 19:13:43 +01:00
69cb575789
Merge branch 'stable'
2021-10-19 19:05:25 +01:00
fee6478cbe
Updated BedrockData and BedrockProtocol for 1.17.40 support
2021-10-19 19:00:29 +01:00
9c5cec77b1
3.25.1 is next
2021-10-19 18:27:30 +01:00