mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-04 09:10:00 +00:00
protocol 27, added player spawn events after death from new protocol, added EntityEvent constants
This commit is contained in:
parent
51062940c5
commit
9a2170d296
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user