13456 Commits

Author SHA1 Message Date
Dylan K. Taylor
77a74d84e2
CrashDump: phpversion() could return false for a loaded extension
if the extension wrote NULL into the zend_module_entry->version field, phpversion() will return false.
2021-12-08 19:58:28 +00:00
Dylan K. Taylor
5b868e6d5e
Merge branch 'stable' into next-minor 2021-12-08 19:40:25 +00:00
Dylan K. Taylor
889d048ca3
Make use of Utils::assumeNotFalse() in a bunch of places
I've stuck to only doing this in the places where I'm sure we should never get false back. Other places I'm less sure of (and I found more bugs along the way).
2021-12-08 19:39:04 +00:00
Dylan K. Taylor
8b73549355
Use JSON_THROW_ON_ERROR for json_encode() and json_decode() 2021-12-08 19:14:07 +00:00
Dylan K. Taylor
c6466a6da9
Utils: added crutch assumeNotFalse()
this can be used to get PHPStan to shut up about stuff that will never return false in normal contexts.
It's more fine-grained than @phpstan-ignore-line and less hassle than ignoreErrors (and works in PhpStorm too).
In addition, it's easy to search for references.
2021-12-08 18:58:39 +00:00
Dylan K. Taylor
3d9e19546f
EntityShootBowEvent: fixed incorrect field type 2021-12-07 23:35:45 +00:00
Dylan K. Taylor
45b4fa0e96
Server: improve confusing condition in crashDump() 2021-12-07 23:08:06 +00:00
Dylan K. Taylor
bf29409a45
Server: fixed PHPStan level 7 error in crashDump() 2021-12-07 23:06:10 +00:00
Dylan K. Taylor
503c888838
bootstrap: use phpversion() for checking extension presence
fixes 2 PHPStan errors on level 7
2021-12-07 22:50:16 +00:00
Dylan K. Taylor
e0eeb87ea0
World: simplify tile position checking code 2021-12-07 16:45:20 +00:00
Dylan K. Taylor
78ffad5ffc
World: add checks for tile position outside of world bounds, closes #4622 2021-12-07 16:41:52 +00:00
Dylan K. Taylor
1d14c8cb6b
Merge branch 'stable' into next-minor 2021-12-07 00:41:48 +00:00
Dylan K. Taylor
49d0d01f9f
Merge branch 'next-minor' of github.com:pmmp/PocketMine-MP into next-minor 2021-12-07 00:41:17 +00:00
Dylan K. Taylor
ed4978c31b
Added VanillaItems::AIR()
we don't usually add VanillaItems entries for blocks since they already exist in VanillaBlocks, but air has a special use case specifically as an itemstack, so we make an exception for this case.
2021-12-07 00:41:07 +00:00
Matthew Jordan
3728ddbf24
ClearCommand: Cleanup logic & fix vanilla disparities (#4619) 2021-12-06 23:57:07 +00:00
Dylan K. Taylor
5a351d3b17
StringToItemParser: fixed not recognizing slime or slime_block 2021-12-06 23:51:30 +00:00
Dylan K. Taylor
0530cb72df
StringToItemParser: fixed some bogus aliases inherited from Item::fromString() 2021-12-06 23:44:41 +00:00
Rush2929
8f2ca92f02
Implement dropped item merging (#4419)
- The following classes have been added:
  - `ItemMergeEvent`
  - `ItemEntityStackSizeChangeAnimation`
- The following API methods have been added:
  - `ItemEntity->isMergeable()`
  - `ItemEntity->tryMergeInto()`
  - `ItemEntity->setStackSize()`
2021-12-06 22:23:18 +00:00
Drew B
ce54d268f2
Player: allow controlling client-sided block collisions irrespective of Spectator Mode (#4563)
- Added the following API methods:
  - `Player::hasBlockCollision()`
  - `Player::setHasBlockCollision()`

This enables spectator-like noclip behaviour in other gamemodes (could be useful for builders).
2021-12-06 21:14:22 +00:00
xxAROX
cd850b111d
SplashPotion: added getType() (#4613) 2021-12-06 20:29:01 +00:00
Dylan K. Taylor
6e4b73c183
FallingBlock: fixed crash when block is unable to be determined 2021-12-06 16:40:47 +00:00
Dylan K. Taylor
2486dabd8a
Fire: extract more unrelated changes from #4617 2021-12-06 01:04:59 +00:00
Dylan K. Taylor
4f3a60ac90
Merge branch 'stable' into next-minor 2021-12-05 16:07:23 +00:00
Dylan K. Taylor
98c31cf07b
Update version number 2021-12-05 16:07:20 +00:00
Dylan K. Taylor
9256afd439
Call BlockSpreadEvent when spreading fire to incinerated blocks 2021-12-05 16:06:29 +00:00
Dylan K. Taylor
527e975fa9
shut 2021-12-05 00:45:23 +00:00
Dylan K. Taylor
8e37f86480
Avoid file_put_contents() when overwriting files
this fixes many cases of corruption during disk-full situations - file_put_contents() would write an empty file, destroying the original data.
fixes #3152
2021-12-05 00:26:48 +00:00
Dylan K. Taylor
8e8cee45b8
Config: use JSON_THROW_ON_ERROR for encoding 2021-12-04 21:44:12 +00:00
Dylan K. Taylor
1a046c6cd5
LevelDB: fixed server crash when corrupted / invalid blockstate NBT is encountered 2021-12-04 18:17:17 +00:00
Dylan K. Taylor
e61aaaccca
LevelDB: removed hack for problem fixed by 1f9400f9011546ab914090853069aaa76192a722 2021-12-04 16:20:57 +00:00
marshall
1b86355c40
Server: Suppress "Minecraft network interface running" messages if RakLibInterface registration is cancelled (#4603) 2021-12-02 20:29:01 +00:00
Dylan K. Taylor
2da65c5a6e
4.0.1 is next 2021-12-01 22:33:58 +00:00
Dylan K. Taylor
468faa464b
Release 4.0.0 2021-12-01 22:33:52 +00:00
Dylan K. Taylor
20d6b69813
3.26.2 is next 2021-11-30 22:27:42 +00:00
Dylan K. Taylor
6b7d0307af
Release 3.26.1 2021-11-30 22:27:42 +00:00
Dylan K. Taylor
baeac2eb07
Fixed tiles not being sent with chunks 2021-11-30 22:19:28 +00:00
Dylan K. Taylor
2850ea1e89
4.0.0-BETA16 is next 2021-11-30 19:27:05 +00:00
Dylan K. Taylor
d560cf17fc
Release 4.0.0-BETA15 2021-11-30 19:27:04 +00:00
Dylan K. Taylor
aea124af74
Fix inconsistent class name 2021-11-30 19:17:26 +00:00
Dylan K. Taylor
8620e67d88
Protocol changes for 1.18.0 2021-11-30 19:16:38 +00:00
Dylan K. Taylor
d5f81fe261
3.26.1 is next 2021-11-30 18:53:36 +00:00
Dylan K. Taylor
0aeac3af7d
Release 3.26.0 2021-11-30 18:53:36 +00:00
Dylan K. Taylor
9931c1d50a
Protocol changes for 1.18.0 2021-11-30 18:46:29 +00:00
Dylan K. Taylor
d21a3d8750
4.0.0-BETA15 is next 2021-11-30 01:26:07 +00:00
Dylan K. Taylor
6d62b06ce6
Release 4.0.0-BETA14 2021-11-30 01:26:07 +00:00
Dylan K. Taylor
f239b077b9
Fixed PHPStan complaints 2021-11-30 00:36:38 +00:00
Dylan K. Taylor
6f8f460a6c
Partially revert "ConsoleReaderChildProcess: Commit suicide in more cases"
This reverts commit cbe0f44c4f7bc3715acbf148f981bd93111c4c8f.

This achieves the same result as the reverted commit wrt. process in the
same manner (writing a keepalive into the socket and checking if it
failed to send). However, it does _not_ allow the process to die on
reaching pipe EOF, since this can cause many spams of subprocesses when
stdin is actually not a tty (e.g. in a Docker container).
2021-11-30 00:27:52 +00:00
Dylan K. Taylor
882df94bcb
ConsoleReaderThread: fixed zombie process leak 2021-11-29 23:45:10 +00:00
Dylan K. Taylor
4a8ca603a1
Log a message when forceShutdown() is called for anything other than a graceful shutdown 2021-11-28 18:53:34 +00:00
Dylan K. Taylor
e2815eed60
BlockFactory: remap a bunch more invalid states 2021-11-27 20:07:58 +00:00