15263 Commits

Author SHA1 Message Date
Dylan K. Taylor
4dbac79e86
Merge branch 'stable' into next-minor 2022-05-16 18:02:25 +01:00
Dylan K. Taylor
5abc7f866a
4.3.4 is next 2022-05-16 17:50:41 +01:00
Dylan K. Taylor
9dc2a01c2e
Release 4.3.3 4.3.3 2022-05-16 17:50:29 +01:00
dependabot[bot]
6f0aa360d1
Bump build/php from 19222cf to 8138c6a (#5039)
Bumps [build/php](https://github.com/pmmp/php-build-scripts) from `19222cf` to `8138c6a`.
- [Release notes](https://github.com/pmmp/php-build-scripts/releases)
- [Commits](19222cfb28...8138c6a4a4)

---
updated-dependencies:
- dependency-name: build/php
  dependency-type: direct:production
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-16 17:20:24 +01:00
Dylan K. Taylor
7c3b78b0a0
ItemFactory: fix missing registration for dead coral fans
closes #5032

this is evidently not an ideal solution, and something more dynamic would be preferred so that we don't have to manually register an item for every permutation.
2022-05-13 13:53:28 +01:00
Dylan K. Taylor
12e4724b19
Merge remote-tracking branch 'origin/stable' into next-minor 2022-05-11 20:45:16 +01:00
Dylan T
52e74296de
Stop the server if any plugin failed to load or enable (#4951)
closes #3080 

If plugins fail to load for some reason, it's highly likely that some critical functionality of the server is compromised. For example:
- if an NPC plugin fails to load, all custom entities added by that plugin will be deleted from worlds
- if a world protection plugin fails, players will be able to grief your otherwise immutable lobby map
- if a worldgen plugin fails, worlds using custom generators won't load
- if a permission plugin fails, players might have access to commands and features they aren't supposed to have
- the list goes on...

This change makes the server commit graceful suicide if any plugin fails to load for error-related reasons, including (but not limited to):
- Incompatible API version
- Missing dependencies
- Invalid plugin.yml
- Invalid main class

Plugins prevented from loading by `plugin_list.yml` are not considered errors and **are not** included in this change. If a plugin is disallowed from loading due to the `plugin_list`, the server will continue to run as if the plugin was not present.
2022-05-11 20:43:38 +01:00
Dylan K. Taylor
3b7e274c34
Server: localize 'forcing server shutdown' message 2022-05-11 14:54:29 +01:00
Dylan K. Taylor
db6abfb227
Stop the server if generators specified for new worlds are not valid
I thought I did this already in eff856d8e513a1f01eca16ab55bacf6e83399527, but it looks like my brain slipped a gear.

Without this change, it's possible to crash the server by specifying an invalid generator for the default world if it doesn't yet exist.
2022-05-11 14:35:20 +01:00
Dylan T
2adaca2521
README: remove unnecessary things
[ci skip]
2022-05-11 13:53:52 +01:00
Dylan T
b6f39035f8
README: fix logo URLs
[ci skip]
2022-05-11 13:52:00 +01:00
XenialDan
cfd550451f
Added dark mode variant of the logo (#5014)
Since the text is barely visible on dark mode (black on black), i added an inverted version that only shows with dark mode using the [picture](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/picture) tag.
The tag is supported in all browsers except IE since ~2015
I added an exception block for old IE versions, new versions dropped support for `[if IE]` though
2022-05-11 13:44:20 +01:00
Dylan K. Taylor
9ff1bf6deb
Merge remote-tracking branch 'origin/stable' into next-minor 2022-05-11 13:12:45 +01:00
Dylan K. Taylor
212c94ce98
PluginManager: Log an error message when a plugin disables itself during enabling 2022-05-11 13:07:45 +01:00
dependabot[bot]
77530b0c24
Bump build/php from 0b5760b to 19222cf (#5027)
Bumps [build/php](https://github.com/pmmp/php-build-scripts) from `0b5760b` to `19222cf`.
- [Release notes](https://github.com/pmmp/php-build-scripts/releases)
- [Commits](0b5760bb3b...19222cfb28)

---
updated-dependencies:
- dependency-name: build/php
  dependency-type: direct:production
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-11 12:55:36 +01:00
Dylan K. Taylor
3e1246acff
FormattedCommandAlias: Invoke commands directly with pre-parsed arguments
this resolves a range of issues with quoted arguments when using placeholders, as well as improving performance (no redundant combine -> re-parse needed).
2022-05-10 16:03:09 +01:00
Dylan K. Taylor
4c29f98292
"Fix CS" are going to be my final words ... 2022-05-10 15:39:44 +01:00
Dylan K. Taylor
5cc0d92eff
Fixed PHPStan errors 2022-05-10 15:38:26 +01:00
Dylan K. Taylor
b875b68fc7
Fix PHPStan error in CommandStringHelperTest 2022-05-10 15:24:14 +01:00
Dylan K. Taylor
a5ebbf8adb
Fix CS again 2022-05-10 15:23:55 +01:00
Dylan K. Taylor
217385efb9
CommandStringHelper::parse() returns a non-empty list of strings 2022-05-10 15:22:46 +01:00
Dylan K. Taylor
f70c36baf9
SimpleCommandMap: parse config-defined commands according to the same rules as manually typed commands 2022-05-10 15:21:39 +01:00
Dylan K. Taylor
eda4ae9181
Added unit tests for CommandStringHelper 2022-05-10 15:11:29 +01:00
Dylan K. Taylor
d2e421c424
CommandStringHelper: fixed backslashes not being removed from escaped quotes
this time, without breaking eval commands ... stripslashes likes to strip ALL backslashes, whether they are actually escaping something or not, which is super annoying.
2022-05-10 15:09:57 +01:00
Dylan K. Taylor
6da53536ca
Merge branch 'next-minor' of github.com:pmmp/PocketMine-MP into next-minor 2022-05-10 14:30:21 +01:00
Duo Incure
1da6aa40f8
Leaves: drop sticks with a 2% chance (#5019)
as per vanilla
2022-05-10 14:17:18 +01:00
Dylan K. Taylor
a913736235
fix CS 2022-05-10 14:13:01 +01:00
Dylan K. Taylor
124edeacaf
fix build 2022-05-10 14:11:46 +01:00
Dylan K. Taylor
a216f4d089
Utils: improve representation of int, float and null in stack trace parameters 2022-05-10 14:07:07 +01:00
Dylan K. Taylor
17b0e0be84
Utils: use match to clean up stringifyValueForTrace() 2022-05-10 14:04:52 +01:00
Dylan K. Taylor
81d8aed2e2
Utils: account for named variadic arguments in printableTrace() 2022-05-10 13:59:42 +01:00
Nick
69418084bc
Boat: fixed max stack size to match vanilla (#5018) 2022-05-10 13:16:04 +01:00
Dylan K. Taylor
593a4b65ea
World: fixed crash when using unloadChunk() during ChunkPopulateEvent, ChunkLoadEvent or when using ChunkListeners
I sure hope there isn't any other cases where this edge case can appear ...

closes #5022
2022-05-10 13:09:26 +01:00
Dylan K. Taylor
869d340f10
Regenerate PHPStan baselines 2022-05-10 12:38:20 +01:00
Dylan K. Taylor
5d64d4a1e3
Updated phpstan-strict-rules 2022-05-10 12:34:27 +01:00
dependabot[bot]
cc3c5bdb8d
Bump phpstan/phpstan from 1.6.7 to 1.6.8 (#5025)
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.6.7 to 1.6.8.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.7.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.6.7...1.6.8)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-10 12:32:22 +01:00
Dylan K. Taylor
e1c4150dff
4.3.3 is next 2022-05-10 00:57:50 +01:00
Dylan K. Taylor
755ca1af9b
Release 4.3.2 4.3.2 2022-05-10 00:57:50 +01:00
dependabot[bot]
7d78b9cb2c
Bump build/php from f5d7b45 to 0b5760b (#5023)
Bumps [build/php](https://github.com/pmmp/php-build-scripts) from `f5d7b45` to `0b5760b`.
- [Release notes](https://github.com/pmmp/php-build-scripts/releases)
- [Commits](f5d7b45990...0b5760bb3b)

---
updated-dependencies:
- dependency-name: build/php
  dependency-type: direct:production
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-10 00:55:07 +01:00
dependabot[bot]
91f802ac7a
Bump phpstan/phpstan from 1.6.3 to 1.6.7 (#5015)
Bumps [phpstan/phpstan](https://github.com/phpstan/phpstan) from 1.6.3 to 1.6.7.
- [Release notes](https://github.com/phpstan/phpstan/releases)
- [Changelog](https://github.com/phpstan/phpstan/blob/1.7.x/CHANGELOG.md)
- [Commits](https://github.com/phpstan/phpstan/compare/1.6.3...1.6.7)

---
updated-dependencies:
- dependency-name: phpstan/phpstan
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-05 11:49:27 +01:00
Dylan K. Taylor
72cfea3a63
SimpleCommandMap: extract command string parsing code into its own unit 2022-05-01 22:05:38 +01:00
Dylan K. Taylor
a353872327
FormattedCommandAlias: match placeholders using regex 2022-05-01 21:16:13 +01:00
Dylan K. Taylor
f4d71d0b48
FormattedCommandAlias: reduce complexity of buildCommand() 2022-05-01 21:04:38 +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
6e372d9e36
Entity: fixed setNameTagVisible not having immediately visible effect 2022-05-01 14:54:41 +01:00
dependabot[bot]
ad8132ae11
Bump build/php from 7b357f8 to f5d7b45 (#5004)
Bumps [build/php](https://github.com/pmmp/php-build-scripts) from `7b357f8` to `f5d7b45`.
- [Release notes](https://github.com/pmmp/php-build-scripts/releases)
- [Commits](7b357f8cf9...f5d7b45990)

---
updated-dependencies:
- dependency-name: build/php
  dependency-type: direct:production
...

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

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-05-01 14:04:38 +01:00
Dylan K. Taylor
5d39d7a1c8
Version bump to 4.4 2022-04-28 21:00:49 +01:00
Dylan K. Taylor
937bb4c6ce
Merge branch 'stable' into next-minor 2022-04-28 21:00:23 +01:00
Dylan K. Taylor
cf15a0913d
World: fixed a corner case assertion failure in generation system
This required the following:
- A generation task (taskA) to already be running for any chunk (chunkA)
- A chunk (chunkB) is requested for generation, and the task (taskB) to do the generation
  is commenced immediately
- chunkB generation promise is aborted (e.g. due to chunk unload) and
  taskB is orphaned
- chunkB is subsequently re-requested, but ends up in the generation
  queue because taskB is still running
- taskA completes and drains the generation queue
- chunkB attempts to be populated a second time, but taskB has not yet
  been collected, resulting in an assertion failure.

This bug has been appearing intermittently ever since PM 4.0 release.
For most users there is no obvious effect since production servers don't
have assertions enabled; however, it's unclear what kind of weird side
effects this bug may have had.
2022-04-28 20:23:23 +01:00
Dylan K. Taylor
33cf085692
PHPStan 1.6.3 2022-04-28 16:06:20 +01:00