mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 01:09:44 +00:00
NetworkSession: seal up actor removal behind API
This commit is contained in:
parent
adadd5423d
commit
c8c0a1533c
@ -47,7 +47,6 @@ use pocketmine\network\mcpe\protocol\ActorEventPacket;
|
|||||||
use pocketmine\network\mcpe\protocol\AddActorPacket;
|
use pocketmine\network\mcpe\protocol\AddActorPacket;
|
||||||
use pocketmine\network\mcpe\protocol\AnimatePacket;
|
use pocketmine\network\mcpe\protocol\AnimatePacket;
|
||||||
use pocketmine\network\mcpe\protocol\MoveActorAbsolutePacket;
|
use pocketmine\network\mcpe\protocol\MoveActorAbsolutePacket;
|
||||||
use pocketmine\network\mcpe\protocol\RemoveActorPacket;
|
|
||||||
use pocketmine\network\mcpe\protocol\SetActorMotionPacket;
|
use pocketmine\network\mcpe\protocol\SetActorMotionPacket;
|
||||||
use pocketmine\network\mcpe\protocol\types\entity\Attribute as NetworkAttribute;
|
use pocketmine\network\mcpe\protocol\types\entity\Attribute as NetworkAttribute;
|
||||||
use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataCollection;
|
use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataCollection;
|
||||||
@ -1560,7 +1559,7 @@ abstract class Entity{
|
|||||||
$id = spl_object_id($player);
|
$id = spl_object_id($player);
|
||||||
if(isset($this->hasSpawned[$id])){
|
if(isset($this->hasSpawned[$id])){
|
||||||
if($send){
|
if($send){
|
||||||
$player->getNetworkSession()->sendDataPacket(RemoveActorPacket::create($this->id));
|
$player->getNetworkSession()->onEntityRemoved($this);
|
||||||
}
|
}
|
||||||
unset($this->hasSpawned[$id]);
|
unset($this->hasSpawned[$id]);
|
||||||
}
|
}
|
||||||
|
@ -67,6 +67,7 @@ use pocketmine\network\mcpe\protocol\PacketDecodeException;
|
|||||||
use pocketmine\network\mcpe\protocol\PacketPool;
|
use pocketmine\network\mcpe\protocol\PacketPool;
|
||||||
use pocketmine\network\mcpe\protocol\PlayerListPacket;
|
use pocketmine\network\mcpe\protocol\PlayerListPacket;
|
||||||
use pocketmine\network\mcpe\protocol\PlayStatusPacket;
|
use pocketmine\network\mcpe\protocol\PlayStatusPacket;
|
||||||
|
use pocketmine\network\mcpe\protocol\RemoveActorPacket;
|
||||||
use pocketmine\network\mcpe\protocol\serializer\PacketBatch;
|
use pocketmine\network\mcpe\protocol\serializer\PacketBatch;
|
||||||
use pocketmine\network\mcpe\protocol\ServerboundPacket;
|
use pocketmine\network\mcpe\protocol\ServerboundPacket;
|
||||||
use pocketmine\network\mcpe\protocol\ServerToClientHandshakePacket;
|
use pocketmine\network\mcpe\protocol\ServerToClientHandshakePacket;
|
||||||
@ -709,6 +710,10 @@ class NetworkSession{
|
|||||||
$this->sendDataPacket(MobEffectPacket::remove($entity->getId(), $effect->getId()));
|
$this->sendDataPacket(MobEffectPacket::remove($entity->getId(), $effect->getId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function onEntityRemoved(Entity $entity) : void{
|
||||||
|
$this->sendDataPacket(RemoveActorPacket::create($entity->getId()));
|
||||||
|
}
|
||||||
|
|
||||||
public function syncAvailableCommands() : void{
|
public function syncAvailableCommands() : void{
|
||||||
$pk = new AvailableCommandsPacket();
|
$pk = new AvailableCommandsPacket();
|
||||||
foreach($this->server->getCommandMap()->getCommands() as $name => $command){
|
foreach($this->server->getCommandMap()->getCommands() as $name => $command){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user