phpstan: make EntityEvent generic, fix a bunch of 'actual-problems' ignored errors

This commit is contained in:
Dylan K. Taylor 2020-06-21 00:18:36 +01:00
parent c523595e85
commit 49d3a42120
23 changed files with 53 additions and 31 deletions

View File

@ -29,6 +29,7 @@ use pocketmine\event\Cancellable;
/** /**
* Called when an Entity, excluding players, changes a block directly * Called when an Entity, excluding players, changes a block directly
* @phpstan-extends EntityEvent<Entity>
*/ */
class EntityBlockChangeEvent extends EntityEvent implements Cancellable{ class EntityBlockChangeEvent extends EntityEvent implements Cancellable{
/** @var Block */ /** @var Block */

View File

@ -26,6 +26,9 @@ namespace pocketmine\event\entity;
use pocketmine\entity\Entity; use pocketmine\entity\Entity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
/**
* @phpstan-extends EntityEvent<Entity>
*/
class EntityCombustEvent extends EntityEvent implements Cancellable{ class EntityCombustEvent extends EntityEvent implements Cancellable{
/** @var int */ /** @var int */
protected $duration; protected $duration;

View File

@ -30,6 +30,7 @@ use function max;
/** /**
* Called when an entity takes damage. * Called when an entity takes damage.
* @phpstan-extends EntityEvent<Entity>
*/ */
class EntityDamageEvent extends EntityEvent implements Cancellable{ class EntityDamageEvent extends EntityEvent implements Cancellable{
public const MODIFIER_ARMOR = 1; public const MODIFIER_ARMOR = 1;

View File

@ -26,6 +26,9 @@ namespace pocketmine\event\entity;
use pocketmine\entity\Living; use pocketmine\entity\Living;
use pocketmine\item\Item; use pocketmine\item\Item;
/**
* @phpstan-extends EntityEvent<Living>
*/
class EntityDeathEvent extends EntityEvent{ class EntityDeathEvent extends EntityEvent{
/** @var Item[] */ /** @var Item[] */
private $drops = []; private $drops = [];

View File

@ -32,6 +32,7 @@ use pocketmine\entity\Vehicle;
/** /**
* Called when a entity is despawned * Called when a entity is despawned
* @phpstan-extends EntityEvent<Entity>
*/ */
class EntityDespawnEvent extends EntityEvent{ class EntityDespawnEvent extends EntityEvent{
/** @var int */ /** @var int */

View File

@ -27,6 +27,9 @@ use pocketmine\entity\EffectInstance;
use pocketmine\entity\Entity; use pocketmine\entity\Entity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
/**
* @phpstan-extends EntityEvent<Entity>
*/
class EntityEffectEvent extends EntityEvent implements Cancellable{ class EntityEffectEvent extends EntityEvent implements Cancellable{
/** @var EffectInstance */ /** @var EffectInstance */
private $effect; private $effect;

View File

@ -29,12 +29,19 @@ namespace pocketmine\event\entity;
use pocketmine\entity\Entity; use pocketmine\entity\Entity;
use pocketmine\event\Event; use pocketmine\event\Event;
/**
* @phpstan-template TEntity of Entity
*/
abstract class EntityEvent extends Event{ abstract class EntityEvent extends Event{
/** @var Entity */ /**
* @var Entity
* @phpstan-var TEntity
*/
protected $entity; protected $entity;
/** /**
* @return Entity * @return Entity
* @phpstan-return TEntity
*/ */
public function getEntity(){ public function getEntity(){
return $this->entity; return $this->entity;

View File

@ -30,6 +30,7 @@ use pocketmine\level\Position;
/** /**
* Called when a entity explodes * Called when a entity explodes
* @phpstan-extends EntityEvent<Entity>
*/ */
class EntityExplodeEvent extends EntityEvent implements Cancellable{ class EntityExplodeEvent extends EntityEvent implements Cancellable{
/** @var Position */ /** @var Position */

View File

@ -29,6 +29,7 @@ use pocketmine\item\Item;
/** /**
* Called before a slot in an entity's inventory changes. * Called before a slot in an entity's inventory changes.
* @phpstan-extends EntityEvent<Entity>
*/ */
class EntityInventoryChangeEvent extends EntityEvent implements Cancellable{ class EntityInventoryChangeEvent extends EntityEvent implements Cancellable{
/** @var Item */ /** @var Item */

View File

@ -27,6 +27,9 @@ use pocketmine\entity\Entity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\level\Level; use pocketmine\level\Level;
/**
* @phpstan-extends EntityEvent<Entity>
*/
class EntityLevelChangeEvent extends EntityEvent implements Cancellable{ class EntityLevelChangeEvent extends EntityEvent implements Cancellable{
/** @var Level */ /** @var Level */
private $originLevel; private $originLevel;

View File

@ -27,6 +27,9 @@ use pocketmine\entity\Entity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\math\Vector3; use pocketmine\math\Vector3;
/**
* @phpstan-extends EntityEvent<Entity>
*/
class EntityMotionEvent extends EntityEvent implements Cancellable{ class EntityMotionEvent extends EntityEvent implements Cancellable{
/** @var Vector3 */ /** @var Vector3 */
private $mot; private $mot;

View File

@ -26,6 +26,9 @@ namespace pocketmine\event\entity;
use pocketmine\entity\Entity; use pocketmine\entity\Entity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
/**
* @phpstan-extends EntityEvent<Entity>
*/
class EntityRegainHealthEvent extends EntityEvent implements Cancellable{ class EntityRegainHealthEvent extends EntityEvent implements Cancellable{
public const CAUSE_REGEN = 0; public const CAUSE_REGEN = 0;
public const CAUSE_EATING = 1; public const CAUSE_EATING = 1;

View File

@ -30,6 +30,9 @@ use pocketmine\event\Cancellable;
use pocketmine\item\Item; use pocketmine\item\Item;
use function count; use function count;
/**
* @phpstan-extends EntityEvent<Living>
*/
class EntityShootBowEvent extends EntityEvent implements Cancellable{ class EntityShootBowEvent extends EntityEvent implements Cancellable{
/** @var Item */ /** @var Item */
private $bow; private $bow;

View File

@ -33,6 +33,7 @@ use pocketmine\level\Position;
/** /**
* Called when a entity is spawned * Called when a entity is spawned
* @phpstan-extends EntityEvent<Entity>
*/ */
class EntitySpawnEvent extends EntityEvent{ class EntitySpawnEvent extends EntityEvent{
/** @var int */ /** @var int */

View File

@ -27,6 +27,9 @@ use pocketmine\entity\Entity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\level\Position; use pocketmine\level\Position;
/**
* @phpstan-extends EntityEvent<Entity>
*/
class EntityTeleportEvent extends EntityEvent implements Cancellable{ class EntityTeleportEvent extends EntityEvent implements Cancellable{
/** @var Position */ /** @var Position */
private $from; private $from;

View File

@ -28,6 +28,7 @@ use pocketmine\event\Cancellable;
/** /**
* Called when a entity decides to explode * Called when a entity decides to explode
* @phpstan-extends EntityEvent<Entity>
*/ */
class ExplosionPrimeEvent extends EntityEvent implements Cancellable{ class ExplosionPrimeEvent extends EntityEvent implements Cancellable{
/** @var float */ /** @var float */

View File

@ -26,6 +26,9 @@ namespace pocketmine\event\entity;
use pocketmine\entity\object\ItemEntity; use pocketmine\entity\object\ItemEntity;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
/**
* @phpstan-extends EntityEvent<ItemEntity>
*/
class ItemDespawnEvent extends EntityEvent implements Cancellable{ class ItemDespawnEvent extends EntityEvent implements Cancellable{
public function __construct(ItemEntity $item){ public function __construct(ItemEntity $item){

View File

@ -25,6 +25,9 @@ namespace pocketmine\event\entity;
use pocketmine\entity\object\ItemEntity; use pocketmine\entity\object\ItemEntity;
/**
* @phpstan-extends EntityEvent<ItemEntity>
*/
class ItemSpawnEvent extends EntityEvent{ class ItemSpawnEvent extends EntityEvent{
public function __construct(ItemEntity $item){ public function __construct(ItemEntity $item){

View File

@ -28,6 +28,7 @@ use pocketmine\math\RayTraceResult;
/** /**
* @allowHandle * @allowHandle
* @phpstan-extends EntityEvent<Projectile>
*/ */
abstract class ProjectileHitEvent extends EntityEvent{ abstract class ProjectileHitEvent extends EntityEvent{
/** @var RayTraceResult */ /** @var RayTraceResult */

View File

@ -26,6 +26,9 @@ namespace pocketmine\event\entity;
use pocketmine\entity\projectile\Projectile; use pocketmine\entity\projectile\Projectile;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
/**
* @phpstan-extends EntityEvent<Projectile>
*/
class ProjectileLaunchEvent extends EntityEvent implements Cancellable{ class ProjectileLaunchEvent extends EntityEvent implements Cancellable{
public function __construct(Projectile $entity){ public function __construct(Projectile $entity){
$this->entity = $entity; $this->entity = $entity;

View File

@ -27,6 +27,9 @@ use pocketmine\entity\Human;
use pocketmine\event\Cancellable; use pocketmine\event\Cancellable;
use pocketmine\event\entity\EntityEvent; use pocketmine\event\entity\EntityEvent;
/**
* @phpstan-extends EntityEvent<Human>
*/
class PlayerExhaustEvent extends EntityEvent implements Cancellable{ class PlayerExhaustEvent extends EntityEvent implements Cancellable{
public const CAUSE_ATTACK = 1; public const CAUSE_ATTACK = 1;
public const CAUSE_DAMAGE = 2; public const CAUSE_DAMAGE = 2;

View File

@ -29,6 +29,7 @@ use pocketmine\event\entity\EntityEvent;
/** /**
* Called when a player gains or loses XP levels and/or progress. * Called when a player gains or loses XP levels and/or progress.
* @phpstan-extends EntityEvent<Human>
*/ */
class PlayerExperienceChangeEvent extends EntityEvent implements Cancellable{ class PlayerExperienceChangeEvent extends EntityEvent implements Cancellable{
/** @var Human */ /** @var Human */

View File

@ -705,41 +705,11 @@ parameters:
count: 1 count: 1
path: ../../../src/pocketmine/block/Wool.php 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\\.$#" message: "#^Property pocketmine\\\\event\\\\entity\\\\EntityShootBowEvent\\:\\:\\$projectile \\(pocketmine\\\\entity\\\\projectile\\\\Projectile\\) does not accept pocketmine\\\\entity\\\\Entity\\.$#"
count: 1 count: 1
path: ../../../src/pocketmine/event/entity/EntityShootBowEvent.php 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\\.$#" message: "#^pocketmine\\\\inventory\\\\DoubleChestInventory\\:\\:__construct\\(\\) does not call parent constructor from pocketmine\\\\inventory\\\\ChestInventory\\.$#"
count: 1 count: 1