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
* @phpstan-extends EntityEvent<Entity>
*/
class EntityBlockChangeEvent extends EntityEvent implements Cancellable{
/** @var Block */

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -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;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -27,6 +27,9 @@ use pocketmine\entity\Human;
use pocketmine\event\Cancellable;
use pocketmine\event\entity\EntityEvent;
/**
* @phpstan-extends EntityEvent<Human>
*/
class PlayerExhaustEvent extends EntityEvent implements Cancellable{
public const CAUSE_ATTACK = 1;
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.
* @phpstan-extends EntityEvent<Human>
*/
class PlayerExperienceChangeEvent extends EntityEvent implements Cancellable{
/** @var Human */

View File

@ -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