From 18b6b1742cd39e3a23fa590d8dc64d2dd94bacc0 Mon Sep 17 00:00:00 2001 From: zSALLAZAR <59490940+zSALLAZAR@users.noreply.github.com> Date: Sun, 25 May 2025 10:04:33 +0200 Subject: [PATCH] Rename `PlayerExhaustEvent` to `EntityExhaustEvent` (#6674) Removed the `getPlayer` function --- src/entity/Human.php | 6 +++--- src/entity/HungerManager.php | 10 +++++----- src/entity/effect/HungerEffect.php | 4 ++-- .../EntityExhaustEvent.php} | 20 ++++++------------- src/player/Player.php | 12 +++++------ 5 files changed, 22 insertions(+), 30 deletions(-) rename src/event/{player/PlayerExhaustEvent.php => entity/EntityExhaustEvent.php} (82%) diff --git a/src/entity/Human.php b/src/entity/Human.php index 1bed6d0a1b..fd3287cdfe 100644 --- a/src/entity/Human.php +++ b/src/entity/Human.php @@ -30,7 +30,7 @@ use pocketmine\entity\effect\EffectInstance; use pocketmine\entity\effect\VanillaEffects; use pocketmine\entity\projectile\ProjectileSource; use pocketmine\event\entity\EntityDamageEvent; -use pocketmine\event\player\PlayerExhaustEvent; +use pocketmine\event\entity\EntityExhaustEvent; use pocketmine\inventory\CallbackInventoryListener; use pocketmine\inventory\Inventory; use pocketmine\inventory\InventoryHolder; @@ -173,9 +173,9 @@ class Human extends Living implements ProjectileSource, InventoryHolder{ public function jump() : void{ parent::jump(); if($this->isSprinting()){ - $this->hungerManager->exhaust(0.2, PlayerExhaustEvent::CAUSE_SPRINT_JUMPING); + $this->hungerManager->exhaust(0.2, EntityExhaustEvent::CAUSE_SPRINT_JUMPING); }else{ - $this->hungerManager->exhaust(0.05, PlayerExhaustEvent::CAUSE_JUMPING); + $this->hungerManager->exhaust(0.05, EntityExhaustEvent::CAUSE_JUMPING); } } diff --git a/src/entity/HungerManager.php b/src/entity/HungerManager.php index 7e3b40e745..3167eaec07 100644 --- a/src/entity/HungerManager.php +++ b/src/entity/HungerManager.php @@ -24,8 +24,8 @@ declare(strict_types=1); namespace pocketmine\entity; use pocketmine\event\entity\EntityDamageEvent; +use pocketmine\event\entity\EntityExhaustEvent; use pocketmine\event\entity\EntityRegainHealthEvent; -use pocketmine\event\player\PlayerExhaustEvent; use pocketmine\world\World; use function max; use function min; @@ -130,13 +130,13 @@ class HungerManager{ * * @return float the amount of exhaustion level increased */ - public function exhaust(float $amount, int $cause = PlayerExhaustEvent::CAUSE_CUSTOM) : float{ + public function exhaust(float $amount, int $cause = EntityExhaustEvent::CAUSE_CUSTOM) : float{ if(!$this->enabled){ return 0; } $evAmount = $amount; - if(PlayerExhaustEvent::hasHandlers()){ - $ev = new PlayerExhaustEvent($this->entity, $amount, $cause); + if(EntityExhaustEvent::hasHandlers()){ + $ev = new EntityExhaustEvent($this->entity, $amount, $cause); $ev->call(); if($ev->isCancelled()){ return 0.0; @@ -205,7 +205,7 @@ class HungerManager{ if($food >= 18){ if($health < $this->entity->getMaxHealth()){ $this->entity->heal(new EntityRegainHealthEvent($this->entity, 1, EntityRegainHealthEvent::CAUSE_SATURATION)); - $this->exhaust(6.0, PlayerExhaustEvent::CAUSE_HEALTH_REGEN); + $this->exhaust(6.0, EntityExhaustEvent::CAUSE_HEALTH_REGEN); } }elseif($food <= 0){ if(($difficulty === World::DIFFICULTY_EASY && $health > 10) || ($difficulty === World::DIFFICULTY_NORMAL && $health > 1) || $difficulty === World::DIFFICULTY_HARD){ diff --git a/src/entity/effect/HungerEffect.php b/src/entity/effect/HungerEffect.php index 949b148bcc..5ce85dfe84 100644 --- a/src/entity/effect/HungerEffect.php +++ b/src/entity/effect/HungerEffect.php @@ -26,7 +26,7 @@ namespace pocketmine\entity\effect; use pocketmine\entity\Entity; use pocketmine\entity\Human; use pocketmine\entity\Living; -use pocketmine\event\player\PlayerExhaustEvent; +use pocketmine\event\entity\EntityExhaustEvent; class HungerEffect extends Effect{ @@ -36,7 +36,7 @@ class HungerEffect extends Effect{ public function applyEffect(Living $entity, EffectInstance $instance, float $potency = 1.0, ?Entity $source = null) : void{ if($entity instanceof Human){ - $entity->getHungerManager()->exhaust(0.1 * $instance->getEffectLevel(), PlayerExhaustEvent::CAUSE_POTION); + $entity->getHungerManager()->exhaust(0.1 * $instance->getEffectLevel(), EntityExhaustEvent::CAUSE_POTION); } } } diff --git a/src/event/player/PlayerExhaustEvent.php b/src/event/entity/EntityExhaustEvent.php similarity index 82% rename from src/event/player/PlayerExhaustEvent.php rename to src/event/entity/EntityExhaustEvent.php index 9a13ff900a..6a4954a210 100644 --- a/src/event/player/PlayerExhaustEvent.php +++ b/src/event/entity/EntityExhaustEvent.php @@ -21,17 +21,16 @@ declare(strict_types=1); -namespace pocketmine\event\player; +namespace pocketmine\event\entity; -use pocketmine\entity\Human; +use pocketmine\entity\Entity; use pocketmine\event\Cancellable; use pocketmine\event\CancellableTrait; -use pocketmine\event\entity\EntityEvent; /** - * @phpstan-extends EntityEvent + * @phpstan-extends EntityEvent */ -class PlayerExhaustEvent extends EntityEvent implements Cancellable{ +class EntityExhaustEvent extends EntityEvent implements Cancellable{ use CancellableTrait; public const CAUSE_ATTACK = 1; @@ -47,18 +46,11 @@ class PlayerExhaustEvent extends EntityEvent implements Cancellable{ public const CAUSE_CUSTOM = 11; public function __construct( - protected Human $human, + Entity $entity, private float $amount, private int $cause ){ - $this->entity = $human; - } - - /** - * @return Human - */ - public function getPlayer(){ - return $this->human; + $this->entity = $entity; } public function getAmount() : float{ diff --git a/src/player/Player.php b/src/player/Player.php index ff8a67c948..056a628e30 100644 --- a/src/player/Player.php +++ b/src/player/Player.php @@ -46,6 +46,7 @@ use pocketmine\entity\projectile\Arrow; use pocketmine\entity\Skin; use pocketmine\event\entity\EntityDamageByEntityEvent; use pocketmine\event\entity\EntityDamageEvent; +use pocketmine\event\entity\EntityExhaustEvent; use pocketmine\event\entity\EntityExtinguishEvent; use pocketmine\event\inventory\InventoryCloseEvent; use pocketmine\event\inventory\InventoryOpenEvent; @@ -60,7 +61,6 @@ use pocketmine\event\player\PlayerDropItemEvent; use pocketmine\event\player\PlayerEmoteEvent; use pocketmine\event\player\PlayerEntityInteractEvent; use pocketmine\event\player\PlayerEntityPickEvent; -use pocketmine\event\player\PlayerExhaustEvent; use pocketmine\event\player\PlayerGameModeChangeEvent; use pocketmine\event\player\PlayerInteractEvent; use pocketmine\event\player\PlayerItemConsumeEvent; @@ -1442,9 +1442,9 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ if($horizontalDistanceTravelled > 0){ //TODO: check for swimming if($this->isSprinting()){ - $this->hungerManager->exhaust(0.01 * $horizontalDistanceTravelled, PlayerExhaustEvent::CAUSE_SPRINTING); + $this->hungerManager->exhaust(0.01 * $horizontalDistanceTravelled, EntityExhaustEvent::CAUSE_SPRINTING); }else{ - $this->hungerManager->exhaust(0.0, PlayerExhaustEvent::CAUSE_WALKING); + $this->hungerManager->exhaust(0.0, EntityExhaustEvent::CAUSE_WALKING); } if($this->nextChunkOrderRun > 20){ @@ -1910,7 +1910,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ $returnedItems = []; if($this->getWorld()->useBreakOn($pos, $item, $this, true, $returnedItems)){ $this->returnItemsFromAction($oldItem, $item, $returnedItems); - $this->hungerManager->exhaust(0.005, PlayerExhaustEvent::CAUSE_MINING); + $this->hungerManager->exhaust(0.005, EntityExhaustEvent::CAUSE_MINING); return true; } }else{ @@ -2013,7 +2013,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ $heldItem->onAttackEntity($entity, $returnedItems); $this->returnItemsFromAction($oldItem, $heldItem, $returnedItems); - $this->hungerManager->exhaust(0.1, PlayerExhaustEvent::CAUSE_ATTACK); + $this->hungerManager->exhaust(0.1, EntityExhaustEvent::CAUSE_ATTACK); } return true; @@ -2584,7 +2584,7 @@ class Player extends Human implements CommandSender, ChunkListener, IPlayer{ protected function applyPostDamageEffects(EntityDamageEvent $source) : void{ parent::applyPostDamageEffects($source); - $this->hungerManager->exhaust(0.1, PlayerExhaustEvent::CAUSE_DAMAGE); + $this->hungerManager->exhaust(0.1, EntityExhaustEvent::CAUSE_DAMAGE); } public function attack(EntityDamageEvent $source) : void{