Commit Graph

13415 Commits

Author SHA1 Message Date
493977661f Require pocketmine/binaryutils ^0.2.1 2021-05-30 20:46:39 +01:00
7d99b0115c Added a getName() override for RakLibServer 2021-05-29 23:51:46 +01:00
0402e7e697 Separate CommandReader impl from CommandReaderThread 2021-05-29 23:41:11 +01:00
4bcc7e09cb PacketSerializer: fix unnecessary FQN 2021-05-29 14:24:48 +01:00
8171b18002 Separate ItemTypeDictionary implementation from initialization
we're not going to want implementation details like how it's setup getting in the way when we separate protocol from the core.
2021-05-29 14:24:05 +01:00
f68b9e79e1 Use typed properties in block namespace 2021-05-22 23:52:31 +01:00
73c229a236 Block: fixed LSP violations in blocks using BlockIdentifierFlattened
a property's type can't be changed by a subclass
2021-05-22 23:40:54 +01:00
285ad25168 BlockFactory: use the vars we already have, instead of repeated method calls 2021-05-22 12:45:08 +01:00
f655d262be Added stripped all-sided-log variants
again, these should be dynamic; but right now it's not possible.
2021-05-22 12:43:07 +01:00
ac04911e88 BlockFactory: fix potential crash 2021-05-21 21:44:17 +01:00
24405b63c1 Coarse is now a state of Dirt, instead of a separate block 2021-05-21 21:36:49 +01:00
df260034cd BlockFactory: Fill default state for all variants covered by bitmask when mismatch occurs 2021-05-21 21:12:34 +01:00
e7b21cf9dc World: remove obsolete TODO comment
[ci skip]
2021-05-21 13:10:48 +01:00
2ab751f985 World: fixed potential bug scheduling async light updates multiple times 2021-05-21 13:09:38 +01:00
f6f0938b3b Merge branch 'stable' 2021-05-21 01:27:35 +01:00
61077c48f1 Worker: fixed quit() usually being useless
Worker::isRunning() returns false after it exits the run() function, even if tasks are stacked and it isn't shutdown.
While this is mostly harmless (since the internal destructor will join the thread anyway), this should be fixed anyway.
2021-05-21 01:24:07 +01:00
7968a72f0e Eliminate some duplicated breakinfos 2021-05-20 23:18:33 +01:00
376d2c4cd4 Consistently declare BlockBreakInfo at the constructor call site
instead of inside the class
2021-05-20 22:49:51 +01:00
e0c61071e1 3.19.3 is next 2021-05-19 22:53:31 +01:00
813d431208 Release 3.19.2 3.19.2 2021-05-19 22:53:30 +01:00
8b4aa36e16 Merge branch 'master' of github.com:pmmp/PocketMine-MP 2021-05-19 22:50:15 +01:00
af678f985d All types of coral now have fully dynamic types 2021-05-19 22:49:44 +01:00
4a367b4b0e ... 2021-05-19 00:49:10 +01:00
821c9c550b github web editor sucks 2021-05-19 00:48:25 +01:00
ee112b992d Bump phpstan/phpstan from 0.12.87 to 0.12.88 (#4222)
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 0.12.87 to 0.12.88.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Commits](https://github.com/phpstan/phpstan/compare/0.12.87...0.12.88)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-19 00:18:48 +01:00
69fa8e8db7 Added documentation to BlockFormEvent 2021-05-19 00:17:39 +01:00
f8cfa191dd Fixed confusing hierarchy of BlockGrow/Form/SpreadEvent, closes #2792 2021-05-19 00:17:38 +01:00
4122517292 [ci skip] update changelog 2021-05-18 23:51:58 +01:00
1d8680aaa9 Update to released versions of BinaryUtils, Log, LogPthreads, NBT, RakLib and RakLibIpc
these all had to be updated in tandem because of the dependency tree - RakLib, RakLibIpc and NBT -> BinaryUtils, RakLib and LogPthreads -> Log, RakLibIpc -> RakLib.
2021-05-18 23:25:19 +01:00
f5da91b42a changelog: added a Configuration section
this might be incomplete.
[ci skip]
2021-05-17 23:49:47 +01:00
e4750ad2cd WorldTimings: apply native typehints 2021-05-17 23:23:46 +01:00
7217ff5ff5 World: added an extra subtiming for random chunk updates 2021-05-17 23:18:56 +01:00
4736b5968d WorldTimings: change some idiotic timer names 2021-05-17 23:14:30 +01:00
cdaf734470 World: Clean up ticking chunk loader tracking 2021-05-17 23:07:48 +01:00
643c3ed14e World: Require all adjacent chunks to a ticking chunk candidate to be unlocked, generated, loaded and light-populated
this should address the remaining problems with grass spread/death.
2021-05-17 20:59:40 +01:00
7abf50f503 World: Extracted a tickChunk() method from tickChunks()
most of what's left in tickChunks() is just selecting the chunks, rather than actually ticking them.
2021-05-17 20:54:51 +01:00
bab76f4a6e World: extract some blocks of logic from tickChunks() into their own methods
the amount of nested loops, cx/dx/chunkx/etc clusterfuck in this code makes it very difficult to work with...
2021-05-17 20:50:46 +01:00
10391be615 Remove useless class 2021-05-17 20:06:28 +01:00
5a14c1cb89 Entity: don't rebuild metadata every tick unless an associated property changed
this should improve performance back to PM3 levels.
2021-05-17 20:05:52 +01:00
c9b33e2b9f Bump phpstan/phpstan-phpunit from 0.12.18 to 0.12.19 (#4214)
Bumps [phpstan/phpstan-phpunit](https://github.com/phpstan/phpstan-phpunit) from 0.12.18 to 0.12.19.
- [Release notes](https://github.com/phpstan/phpstan-phpunit/releases)
- [Commits](https://github.com/phpstan/phpstan-phpunit/compare/0.12.18...0.12.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 15:17:18 +01:00
2f2be84b12 Bump phpstan/phpstan from 0.12.86 to 0.12.87 (#4217)
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 0.12.86 to 0.12.87.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Commits](https://github.com/phpstan/phpstan/compare/0.12.86...0.12.87)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-05-13 12:25:25 +01:00
bdce781c6d Chunk: do not close preexisting tiles in addTile()
if it's desired to actually replace a tile, the old tile should be explicitly removed and closed first.
2021-05-12 12:32:36 +01:00
b2e806e2fa World: Harden chunk loading against bad data in entity/tile NBT 2021-05-12 12:26:41 +01:00
80e4da85df Fixed PHPStan build 2021-05-12 12:12:29 +01:00
42e915b902 Player: added locking variable to prevent reentry into respawn() while awaiting spawn terrain generation 2021-05-12 12:10:32 +01:00
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
4a68e0219e shut 2021-05-11 19:29:30 +01:00
4c4db1836f Merge remote-tracking branch 'origin/stable' 2021-05-11 19:28:09 +01:00
dfdd59734c [ci skip] update changelog 2021-05-11 19:26:01 +01:00
ab0500ae4f Player: Fixed a multitude of bugs with respawning
the following things are changed:
- Player->getSpawn() no longer returns a safe spawn by default. Instead, if the player doesn't have a spawn set, it returns the world's stored spawn directly. This allows consistent behaviour of locating safe respawn positions without double calculation of safe spawn position, and also fixes crash issues during the login sequence if the player's spawn position referred to ungenerated terrain.
- Player->respawn() is now asynchronous, using the promise returned by orderChunkPopulation() to complete respawn after the terrain is generated. This allows consistently selecting a safe respawn position and fixes crashes when respawning if the spawn location was in ungenerated terrain.

There remains a problem that ragequit respawns are still only handled right after PlayerJoinEvent, which leads to the original spawn terrain being sent to the player, which is obviously very wasteful. However, that's a problem for a later commit.
2021-05-11 19:15:31 +01:00