diff --git a/src/pocketmine/event/entity/EntityBlockChangeEvent.php b/src/pocketmine/event/entity/EntityBlockChangeEvent.php index 482d6485c..5cd485d05 100644 --- a/src/pocketmine/event/entity/EntityBlockChangeEvent.php +++ b/src/pocketmine/event/entity/EntityBlockChangeEvent.php @@ -29,6 +29,7 @@ use pocketmine\event\Cancellable; /** * Called when an Entity, excluding players, changes a block directly + * @phpstan-extends EntityEvent */ class EntityBlockChangeEvent extends EntityEvent implements Cancellable{ /** @var Block */ diff --git a/src/pocketmine/event/entity/EntityCombustEvent.php b/src/pocketmine/event/entity/EntityCombustEvent.php index 61dea752d..e0a590258 100644 --- a/src/pocketmine/event/entity/EntityCombustEvent.php +++ b/src/pocketmine/event/entity/EntityCombustEvent.php @@ -26,6 +26,9 @@ namespace pocketmine\event\entity; use pocketmine\entity\Entity; use pocketmine\event\Cancellable; +/** + * @phpstan-extends EntityEvent + */ class EntityCombustEvent extends EntityEvent implements Cancellable{ /** @var int */ protected $duration; diff --git a/src/pocketmine/event/entity/EntityDamageEvent.php b/src/pocketmine/event/entity/EntityDamageEvent.php index ecc651f52..bfd94dc89 100644 --- a/src/pocketmine/event/entity/EntityDamageEvent.php +++ b/src/pocketmine/event/entity/EntityDamageEvent.php @@ -30,6 +30,7 @@ use function max; /** * Called when an entity takes damage. + * @phpstan-extends EntityEvent */ class EntityDamageEvent extends EntityEvent implements Cancellable{ public const MODIFIER_ARMOR = 1; diff --git a/src/pocketmine/event/entity/EntityDeathEvent.php b/src/pocketmine/event/entity/EntityDeathEvent.php index 4eb9953ab..65aef71d0 100644 --- a/src/pocketmine/event/entity/EntityDeathEvent.php +++ b/src/pocketmine/event/entity/EntityDeathEvent.php @@ -26,6 +26,9 @@ namespace pocketmine\event\entity; use pocketmine\entity\Living; use pocketmine\item\Item; +/** + * @phpstan-extends EntityEvent + */ class EntityDeathEvent extends EntityEvent{ /** @var Item[] */ private $drops = []; diff --git a/src/pocketmine/event/entity/EntityDespawnEvent.php b/src/pocketmine/event/entity/EntityDespawnEvent.php index ca6850f6c..298b1dc8b 100644 --- a/src/pocketmine/event/entity/EntityDespawnEvent.php +++ b/src/pocketmine/event/entity/EntityDespawnEvent.php @@ -32,6 +32,7 @@ use pocketmine\entity\Vehicle; /** * Called when a entity is despawned + * @phpstan-extends EntityEvent */ class EntityDespawnEvent extends EntityEvent{ /** @var int */ diff --git a/src/pocketmine/event/entity/EntityEffectEvent.php b/src/pocketmine/event/entity/EntityEffectEvent.php index 072144bdd..12671e646 100644 --- a/src/pocketmine/event/entity/EntityEffectEvent.php +++ b/src/pocketmine/event/entity/EntityEffectEvent.php @@ -27,6 +27,9 @@ use pocketmine\entity\EffectInstance; use pocketmine\entity\Entity; use pocketmine\event\Cancellable; +/** + * @phpstan-extends EntityEvent + */ class EntityEffectEvent extends EntityEvent implements Cancellable{ /** @var EffectInstance */ private $effect; diff --git a/src/pocketmine/event/entity/EntityEvent.php b/src/pocketmine/event/entity/EntityEvent.php index 2799441f2..0a13ff0eb 100644 --- a/src/pocketmine/event/entity/EntityEvent.php +++ b/src/pocketmine/event/entity/EntityEvent.php @@ -29,12 +29,19 @@ namespace pocketmine\event\entity; use pocketmine\entity\Entity; use pocketmine\event\Event; +/** + * @phpstan-template TEntity of Entity + */ abstract class EntityEvent extends Event{ - /** @var Entity */ + /** + * @var Entity + * @phpstan-var TEntity + */ protected $entity; /** * @return Entity + * @phpstan-return TEntity */ public function getEntity(){ return $this->entity; diff --git a/src/pocketmine/event/entity/EntityExplodeEvent.php b/src/pocketmine/event/entity/EntityExplodeEvent.php index 4d920a3d2..fc76400b8 100644 --- a/src/pocketmine/event/entity/EntityExplodeEvent.php +++ b/src/pocketmine/event/entity/EntityExplodeEvent.php @@ -30,6 +30,7 @@ use pocketmine\level\Position; /** * Called when a entity explodes + * @phpstan-extends EntityEvent */ class EntityExplodeEvent extends EntityEvent implements Cancellable{ /** @var Position */ diff --git a/src/pocketmine/event/entity/EntityInventoryChangeEvent.php b/src/pocketmine/event/entity/EntityInventoryChangeEvent.php index f5fbb6ea3..1ef3b5ffd 100644 --- a/src/pocketmine/event/entity/EntityInventoryChangeEvent.php +++ b/src/pocketmine/event/entity/EntityInventoryChangeEvent.php @@ -29,6 +29,7 @@ use pocketmine\item\Item; /** * Called before a slot in an entity's inventory changes. + * @phpstan-extends EntityEvent */ class EntityInventoryChangeEvent extends EntityEvent implements Cancellable{ /** @var Item */ diff --git a/src/pocketmine/event/entity/EntityLevelChangeEvent.php b/src/pocketmine/event/entity/EntityLevelChangeEvent.php index c9118665b..df688c0ec 100644 --- a/src/pocketmine/event/entity/EntityLevelChangeEvent.php +++ b/src/pocketmine/event/entity/EntityLevelChangeEvent.php @@ -27,6 +27,9 @@ use pocketmine\entity\Entity; use pocketmine\event\Cancellable; use pocketmine\level\Level; +/** + * @phpstan-extends EntityEvent + */ class EntityLevelChangeEvent extends EntityEvent implements Cancellable{ /** @var Level */ private $originLevel; diff --git a/src/pocketmine/event/entity/EntityMotionEvent.php b/src/pocketmine/event/entity/EntityMotionEvent.php index 9b6e81a87..fce46493c 100644 --- a/src/pocketmine/event/entity/EntityMotionEvent.php +++ b/src/pocketmine/event/entity/EntityMotionEvent.php @@ -27,6 +27,9 @@ use pocketmine\entity\Entity; use pocketmine\event\Cancellable; use pocketmine\math\Vector3; +/** + * @phpstan-extends EntityEvent + */ class EntityMotionEvent extends EntityEvent implements Cancellable{ /** @var Vector3 */ private $mot; diff --git a/src/pocketmine/event/entity/EntityRegainHealthEvent.php b/src/pocketmine/event/entity/EntityRegainHealthEvent.php index 44a86833a..213ae5de8 100644 --- a/src/pocketmine/event/entity/EntityRegainHealthEvent.php +++ b/src/pocketmine/event/entity/EntityRegainHealthEvent.php @@ -26,6 +26,9 @@ namespace pocketmine\event\entity; use pocketmine\entity\Entity; use pocketmine\event\Cancellable; +/** + * @phpstan-extends EntityEvent + */ class EntityRegainHealthEvent extends EntityEvent implements Cancellable{ public const CAUSE_REGEN = 0; public const CAUSE_EATING = 1; diff --git a/src/pocketmine/event/entity/EntityShootBowEvent.php b/src/pocketmine/event/entity/EntityShootBowEvent.php index 05e9d4325..cf2775bb0 100644 --- a/src/pocketmine/event/entity/EntityShootBowEvent.php +++ b/src/pocketmine/event/entity/EntityShootBowEvent.php @@ -30,6 +30,9 @@ use pocketmine\event\Cancellable; use pocketmine\item\Item; use function count; +/** + * @phpstan-extends EntityEvent + */ class EntityShootBowEvent extends EntityEvent implements Cancellable{ /** @var Item */ private $bow; diff --git a/src/pocketmine/event/entity/EntitySpawnEvent.php b/src/pocketmine/event/entity/EntitySpawnEvent.php index beb00bd32..d1e45649f 100644 --- a/src/pocketmine/event/entity/EntitySpawnEvent.php +++ b/src/pocketmine/event/entity/EntitySpawnEvent.php @@ -33,6 +33,7 @@ use pocketmine\level\Position; /** * Called when a entity is spawned + * @phpstan-extends EntityEvent */ class EntitySpawnEvent extends EntityEvent{ /** @var int */ diff --git a/src/pocketmine/event/entity/EntityTeleportEvent.php b/src/pocketmine/event/entity/EntityTeleportEvent.php index 530991270..6ed4c517b 100644 --- a/src/pocketmine/event/entity/EntityTeleportEvent.php +++ b/src/pocketmine/event/entity/EntityTeleportEvent.php @@ -27,6 +27,9 @@ use pocketmine\entity\Entity; use pocketmine\event\Cancellable; use pocketmine\level\Position; +/** + * @phpstan-extends EntityEvent + */ class EntityTeleportEvent extends EntityEvent implements Cancellable{ /** @var Position */ private $from; diff --git a/src/pocketmine/event/entity/ExplosionPrimeEvent.php b/src/pocketmine/event/entity/ExplosionPrimeEvent.php index d35cf45fd..145afb9cb 100644 --- a/src/pocketmine/event/entity/ExplosionPrimeEvent.php +++ b/src/pocketmine/event/entity/ExplosionPrimeEvent.php @@ -28,6 +28,7 @@ use pocketmine\event\Cancellable; /** * Called when a entity decides to explode + * @phpstan-extends EntityEvent */ class ExplosionPrimeEvent extends EntityEvent implements Cancellable{ /** @var float */ diff --git a/src/pocketmine/event/entity/ItemDespawnEvent.php b/src/pocketmine/event/entity/ItemDespawnEvent.php index 269e7658d..8bcf851f7 100644 --- a/src/pocketmine/event/entity/ItemDespawnEvent.php +++ b/src/pocketmine/event/entity/ItemDespawnEvent.php @@ -26,6 +26,9 @@ namespace pocketmine\event\entity; use pocketmine\entity\object\ItemEntity; use pocketmine\event\Cancellable; +/** + * @phpstan-extends EntityEvent + */ class ItemDespawnEvent extends EntityEvent implements Cancellable{ public function __construct(ItemEntity $item){ diff --git a/src/pocketmine/event/entity/ItemSpawnEvent.php b/src/pocketmine/event/entity/ItemSpawnEvent.php index 367555037..59154f029 100644 --- a/src/pocketmine/event/entity/ItemSpawnEvent.php +++ b/src/pocketmine/event/entity/ItemSpawnEvent.php @@ -25,6 +25,9 @@ namespace pocketmine\event\entity; use pocketmine\entity\object\ItemEntity; +/** + * @phpstan-extends EntityEvent + */ class ItemSpawnEvent extends EntityEvent{ public function __construct(ItemEntity $item){ diff --git a/src/pocketmine/event/entity/ProjectileHitEvent.php b/src/pocketmine/event/entity/ProjectileHitEvent.php index b5a800d1c..70230f3fa 100644 --- a/src/pocketmine/event/entity/ProjectileHitEvent.php +++ b/src/pocketmine/event/entity/ProjectileHitEvent.php @@ -28,6 +28,7 @@ use pocketmine\math\RayTraceResult; /** * @allowHandle + * @phpstan-extends EntityEvent */ abstract class ProjectileHitEvent extends EntityEvent{ /** @var RayTraceResult */ diff --git a/src/pocketmine/event/entity/ProjectileLaunchEvent.php b/src/pocketmine/event/entity/ProjectileLaunchEvent.php index 30cf1149c..6c20832ed 100644 --- a/src/pocketmine/event/entity/ProjectileLaunchEvent.php +++ b/src/pocketmine/event/entity/ProjectileLaunchEvent.php @@ -26,6 +26,9 @@ namespace pocketmine\event\entity; use pocketmine\entity\projectile\Projectile; use pocketmine\event\Cancellable; +/** + * @phpstan-extends EntityEvent + */ class ProjectileLaunchEvent extends EntityEvent implements Cancellable{ public function __construct(Projectile $entity){ $this->entity = $entity; diff --git a/src/pocketmine/event/player/PlayerExhaustEvent.php b/src/pocketmine/event/player/PlayerExhaustEvent.php index 6a9d5b8cc..0607661cf 100644 --- a/src/pocketmine/event/player/PlayerExhaustEvent.php +++ b/src/pocketmine/event/player/PlayerExhaustEvent.php @@ -27,6 +27,9 @@ use pocketmine\entity\Human; use pocketmine\event\Cancellable; use pocketmine\event\entity\EntityEvent; +/** + * @phpstan-extends EntityEvent + */ class PlayerExhaustEvent extends EntityEvent implements Cancellable{ public const CAUSE_ATTACK = 1; public const CAUSE_DAMAGE = 2; diff --git a/src/pocketmine/event/player/PlayerExperienceChangeEvent.php b/src/pocketmine/event/player/PlayerExperienceChangeEvent.php index 1bab52257..3322a91b8 100644 --- a/src/pocketmine/event/player/PlayerExperienceChangeEvent.php +++ b/src/pocketmine/event/player/PlayerExperienceChangeEvent.php @@ -29,6 +29,7 @@ use pocketmine\event\entity\EntityEvent; /** * Called when a player gains or loses XP levels and/or progress. + * @phpstan-extends EntityEvent */ class PlayerExperienceChangeEvent extends EntityEvent implements Cancellable{ /** @var Human */ diff --git a/tests/phpstan/configs/actual-problems.neon b/tests/phpstan/configs/actual-problems.neon index 87c8a06dc..670d85c03 100644 --- a/tests/phpstan/configs/actual-problems.neon +++ b/tests/phpstan/configs/actual-problems.neon @@ -705,41 +705,11 @@ parameters: count: 1 path: ../../../src/pocketmine/block/Wool.php - - - message: "#^Method pocketmine\\\\event\\\\entity\\\\EntityDeathEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\Living but returns pocketmine\\\\entity\\\\Entity\\.$#" - count: 1 - path: ../../../src/pocketmine/event/entity/EntityDeathEvent.php - - - - message: "#^Method pocketmine\\\\event\\\\entity\\\\EntityShootBowEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\Living but returns pocketmine\\\\entity\\\\Entity\\.$#" - count: 1 - path: ../../../src/pocketmine/event/entity/EntityShootBowEvent.php - - message: "#^Property pocketmine\\\\event\\\\entity\\\\EntityShootBowEvent\\:\\:\\$projectile \\(pocketmine\\\\entity\\\\projectile\\\\Projectile\\) does not accept pocketmine\\\\entity\\\\Entity\\.$#" count: 1 path: ../../../src/pocketmine/event/entity/EntityShootBowEvent.php - - - message: "#^Method pocketmine\\\\event\\\\entity\\\\ItemDespawnEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\object\\\\ItemEntity but returns pocketmine\\\\entity\\\\Entity\\.$#" - count: 1 - path: ../../../src/pocketmine/event/entity/ItemDespawnEvent.php - - - - message: "#^Method pocketmine\\\\event\\\\entity\\\\ItemSpawnEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\object\\\\ItemEntity but returns pocketmine\\\\entity\\\\Entity\\.$#" - count: 1 - path: ../../../src/pocketmine/event/entity/ItemSpawnEvent.php - - - - message: "#^Method pocketmine\\\\event\\\\entity\\\\ProjectileHitEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\projectile\\\\Projectile but returns pocketmine\\\\entity\\\\Entity\\.$#" - count: 1 - path: ../../../src/pocketmine/event/entity/ProjectileHitEvent.php - - - - message: "#^Method pocketmine\\\\event\\\\entity\\\\ProjectileLaunchEvent\\:\\:getEntity\\(\\) should return pocketmine\\\\entity\\\\projectile\\\\Projectile but returns pocketmine\\\\entity\\\\Entity\\.$#" - count: 1 - path: ../../../src/pocketmine/event/entity/ProjectileLaunchEvent.php - - message: "#^pocketmine\\\\inventory\\\\DoubleChestInventory\\:\\:__construct\\(\\) does not call parent constructor from pocketmine\\\\inventory\\\\ChestInventory\\.$#" count: 1