diff --git a/changelogs/3.9.md b/changelogs/3.9.md index 57c82b7cd..3da77cc31 100644 --- a/changelogs/3.9.md +++ b/changelogs/3.9.md @@ -104,4 +104,26 @@ Plugin developers should **only** update their required API to this version if y # 3.9.7 - Fixed a crash that could occur during timezone detection. - Squid no longer spin around constantly in enclosed spaces. Their performance impact is reduced. -- Cleaned up the bootstrap file. \ No newline at end of file +- Cleaned up the bootstrap file. + +# 3.9.8 +- Added [PHPStan](https://github.com/phpstan/phpstan) configuration. PHPStan is now used on CI for automated QA, which should improve stability and quality going forward. +- The following constants are now autoloaded when loading the Composer autoloader: + - `pocketmine\NAME` + - `pocketmine\BASE_VERSION` + - `pocketmine\IS_DEVELOPMENT_BUILD` + - `pocketmine\BUILD_NUMBER` + - `INT32_MIN` + - `INT32_MAX` + - `INT32_MASK` +- Fixed memory leaks and crashes caused by plugin use of `Player->showPlayer()` and `Entity->spawnTo()`. +- Fixed crashes that could occur when tile classes were overridden with classes incompatible with the originals. +- Fixed improper handling of non-Compound root NBT tags on network itemstack decoding. +- Fixed paintings dropping multiple items when destroyed by block updates. +- Fixed `var_dump()` not showing private and protected properties of `DataPacket` subclasses. +- Fixed overloads with zero arguments being missing when decoding `AvailableCommandsPacket`. +- `CraftingDataPacket` now retains the `cleanRecipes` field when decoding. +- Fixed `Block->getMetadata()` returning null (non-iterable). +- `PlayerChatEvent` documentation has been updated to specify that `CommandSender` recipients are accepted. This behaviour was already present in previous versions, but incorrectly documented. +- Fixed various issues with PHPDoc comments reported by PHPStan. +- Fixed various minor code nits reported by PHPStan. diff --git a/src/GlobalConstants.php b/src/GlobalConstants.php index a9550cc43..d3b4a9f9a 100644 --- a/src/GlobalConstants.php +++ b/src/GlobalConstants.php @@ -27,4 +27,4 @@ define('pocketmine\_GLOBAL_CONSTANTS_INCLUDED', true); const INT32_MIN = -0x80000000; const INT32_MAX = 0x7fffffff; -define("INT32_MASK", is_int(0xffffffff) ? 0xffffffff : -1); +const INT32_MASK = 0xffffffff; diff --git a/src/network/upnp/UPnP.php b/src/network/upnp/UPnP.php index 56702f882..6862df185 100644 --- a/src/network/upnp/UPnP.php +++ b/src/network/upnp/UPnP.php @@ -63,8 +63,7 @@ class UPnP implements NetworkInterface{ /** @noinspection PhpUndefinedClassInspection */ $com = new \COM("HNetCfg.NATUPnP"); /** @noinspection PhpUndefinedFieldInspection */ - - if($com === false or !is_object($com->StaticPortMappingCollection)){ + if(!is_object($com->StaticPortMappingCollection)){ throw new \RuntimeException("UPnP unsupported or network discovery is not enabled"); } /** @noinspection PhpUndefinedFieldInspection */