diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 3151d8d16..db5bef9a5 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -2016,7 +2016,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade $pk = new EntityEventPacket(); $pk->eid = $this->getId(); - $pk->event = 9; + $pk->event = EntityEventPacket::USE_ITEM; $pk->setChannel(Network::CHANNEL_WORLD_EVENTS); $this->dataPacket($pk); Server::broadcastPacket($this->getViewers(), $pk); @@ -2309,7 +2309,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade $pk = new EntityEventPacket(); $pk->eid = $this->getId(); - $pk->event = 9; + $pk->event = EntityEventPacket::USE_ITEM; $pk->setChannel(Network::CHANNEL_WORLD_EVENTS); $this->dataPacket($pk); Server::broadcastPacket($this->getViewers(), $pk); @@ -3020,7 +3020,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade }elseif($this->getLastDamageCause() === $source and $this->spawned){ $pk = new EntityEventPacket(); $pk->eid = $this->getId(); - $pk->event = 2; + $pk->event = EntityEventPacket::HURT_ANIMATION; $this->dataPacket($pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); } } diff --git a/src/pocketmine/entity/Living.php b/src/pocketmine/entity/Living.php index d12b7dd69..ccdc6d36f 100644 --- a/src/pocketmine/entity/Living.php +++ b/src/pocketmine/entity/Living.php @@ -62,6 +62,17 @@ abstract class Living extends Entity implements Damageable{ $this->setHealth($this->namedtag["Health"]); } + public function setHealth($amount){ + $wasAlive = $this->isAlive(); + parent::setHealth($amount); + if($this->isAlive() and !$wasAlive){ + $pk = new EntityEventPacket(); + $pk->eid = $this->getId(); + $pk->event = EntityEventPacket::RESPAWN; + Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); + } + } + public function saveNBT(){ parent::saveNBT(); $this->namedtag->Health = new Short("Health", $this->getHealth()); @@ -117,7 +128,7 @@ abstract class Living extends Entity implements Damageable{ $pk = new EntityEventPacket(); $pk->eid = $this->getId(); - $pk->event = $this->getHealth() <= 0 ? 3 : 2; //Ouch! + $pk->event = $this->getHealth() <= 0 ? EntityEventPacket::DEATH_ANIMATION : EntityEventPacket::HURT_ANIMATION; //Ouch! Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); $this->attackTime = 10; //0.5 seconds cooldown diff --git a/src/pocketmine/entity/Squid.php b/src/pocketmine/entity/Squid.php index ebafb03ab..889a83bb7 100644 --- a/src/pocketmine/entity/Squid.php +++ b/src/pocketmine/entity/Squid.php @@ -67,7 +67,7 @@ class Squid extends WaterAnimal implements Ageable{ $pk = new EntityEventPacket(); $pk->eid = $this->getId(); - $pk->event = 15; + $pk->event = EntityEventPacket::SQUID_INK_CLOUD; Server::broadcastPacket($this->hasSpawned, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); } } diff --git a/src/pocketmine/network/protocol/EntityEventPacket.php b/src/pocketmine/network/protocol/EntityEventPacket.php index bbd915bb5..8c5777fb3 100644 --- a/src/pocketmine/network/protocol/EntityEventPacket.php +++ b/src/pocketmine/network/protocol/EntityEventPacket.php @@ -25,6 +25,23 @@ namespace pocketmine\network\protocol; class EntityEventPacket extends DataPacket{ + + const HURT_ANIMATION = 2; + const DEATH_ANIMATION = 3; + + const TAME_FAIL = 6; + const TAME_SUCCESS = 7; + const SHAKE_WET = 8; + const USE_ITEM = 9; + const EAT_GRASS_ANIMATION = 10; + const FISH_HOOK_BUBBLE = 11; + const FISH_HOOK_POSITION = 12; + const FISH_HOOK_HOOK = 13; + const FISH_HOOK_TEASE = 14; + const SQUID_INK_CLOUD = 15; + const AMBIENT_SOUND = 16; + const RESPAWN = 17; + public static $pool = []; public static $next = 0; diff --git a/src/pocketmine/network/protocol/Info.php b/src/pocketmine/network/protocol/Info.php index 1cf3d41a3..c7fa20853 100644 --- a/src/pocketmine/network/protocol/Info.php +++ b/src/pocketmine/network/protocol/Info.php @@ -30,7 +30,7 @@ interface Info{ /** * Actual Minecraft: PE protocol version */ - const CURRENT_PROTOCOL = 26; + const CURRENT_PROTOCOL = 27; const LOGIN_PACKET = 0x82; const PLAY_STATUS_PACKET = 0x83;