mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-05-13 17:29:44 +00:00
box up TakeItemActorPacket sending behind NetworkSession API
we need to start thinking about moving this into interfaces.
This commit is contained in:
parent
1122f2a29f
commit
d8968e9e40
@ -31,7 +31,6 @@ use pocketmine\item\Item;
|
|||||||
use pocketmine\nbt\tag\CompoundTag;
|
use pocketmine\nbt\tag\CompoundTag;
|
||||||
use pocketmine\network\mcpe\convert\TypeConverter;
|
use pocketmine\network\mcpe\convert\TypeConverter;
|
||||||
use pocketmine\network\mcpe\protocol\AddItemActorPacket;
|
use pocketmine\network\mcpe\protocol\AddItemActorPacket;
|
||||||
use pocketmine\network\mcpe\protocol\TakeItemActorPacket;
|
|
||||||
use pocketmine\network\mcpe\protocol\types\entity\EntityLegacyIds;
|
use pocketmine\network\mcpe\protocol\types\entity\EntityLegacyIds;
|
||||||
use pocketmine\player\Player;
|
use pocketmine\player\Player;
|
||||||
use function get_class;
|
use function get_class;
|
||||||
@ -235,7 +234,9 @@ class ItemEntity extends Entity{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->server->broadcastPackets($this->getViewers(), [TakeItemActorPacket::create($player->getId(), $this->getId())]);
|
foreach($this->getViewers() as $viewer){
|
||||||
|
$viewer->getNetworkSession()->onPlayerPickUpItem($player, $this);
|
||||||
|
}
|
||||||
|
|
||||||
$playerInventory->addItem(clone $item);
|
$playerInventory->addItem(clone $item);
|
||||||
$this->flagForDespawn();
|
$this->flagForDespawn();
|
||||||
|
@ -31,7 +31,6 @@ use pocketmine\item\VanillaItems;
|
|||||||
use pocketmine\math\RayTraceResult;
|
use pocketmine\math\RayTraceResult;
|
||||||
use pocketmine\nbt\tag\CompoundTag;
|
use pocketmine\nbt\tag\CompoundTag;
|
||||||
use pocketmine\network\mcpe\protocol\ActorEventPacket;
|
use pocketmine\network\mcpe\protocol\ActorEventPacket;
|
||||||
use pocketmine\network\mcpe\protocol\TakeItemActorPacket;
|
|
||||||
use pocketmine\network\mcpe\protocol\types\entity\EntityLegacyIds;
|
use pocketmine\network\mcpe\protocol\types\entity\EntityLegacyIds;
|
||||||
use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataFlags;
|
use pocketmine\network\mcpe\protocol\types\entity\EntityMetadataFlags;
|
||||||
use pocketmine\player\Player;
|
use pocketmine\player\Player;
|
||||||
@ -185,7 +184,9 @@ class Arrow extends Projectile{
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->server->broadcastPackets($this->getViewers(), [TakeItemActorPacket::create($player->getId(), $this->getId())]);
|
foreach($this->getViewers() as $viewer){
|
||||||
|
$viewer->getNetworkSession()->onPlayerPickUpItem($player, $this);
|
||||||
|
}
|
||||||
|
|
||||||
$playerInventory->addItem(clone $item);
|
$playerInventory->addItem(clone $item);
|
||||||
$this->flagForDespawn();
|
$this->flagForDespawn();
|
||||||
|
@ -26,6 +26,7 @@ namespace pocketmine\network\mcpe;
|
|||||||
use Mdanter\Ecc\Crypto\Key\PublicKeyInterface;
|
use Mdanter\Ecc\Crypto\Key\PublicKeyInterface;
|
||||||
use pocketmine\entity\Attribute;
|
use pocketmine\entity\Attribute;
|
||||||
use pocketmine\entity\effect\EffectInstance;
|
use pocketmine\entity\effect\EffectInstance;
|
||||||
|
use pocketmine\entity\Entity;
|
||||||
use pocketmine\entity\Human;
|
use pocketmine\entity\Human;
|
||||||
use pocketmine\entity\Living;
|
use pocketmine\entity\Living;
|
||||||
use pocketmine\event\player\PlayerCreationEvent;
|
use pocketmine\event\player\PlayerCreationEvent;
|
||||||
@ -72,6 +73,7 @@ use pocketmine\network\mcpe\protocol\ServerToClientHandshakePacket;
|
|||||||
use pocketmine\network\mcpe\protocol\SetPlayerGameTypePacket;
|
use pocketmine\network\mcpe\protocol\SetPlayerGameTypePacket;
|
||||||
use pocketmine\network\mcpe\protocol\SetSpawnPositionPacket;
|
use pocketmine\network\mcpe\protocol\SetSpawnPositionPacket;
|
||||||
use pocketmine\network\mcpe\protocol\SetTitlePacket;
|
use pocketmine\network\mcpe\protocol\SetTitlePacket;
|
||||||
|
use pocketmine\network\mcpe\protocol\TakeItemActorPacket;
|
||||||
use pocketmine\network\mcpe\protocol\TextPacket;
|
use pocketmine\network\mcpe\protocol\TextPacket;
|
||||||
use pocketmine\network\mcpe\protocol\TransferPacket;
|
use pocketmine\network\mcpe\protocol\TransferPacket;
|
||||||
use pocketmine\network\mcpe\protocol\types\command\CommandData;
|
use pocketmine\network\mcpe\protocol\types\command\CommandData;
|
||||||
@ -829,6 +831,10 @@ class NetworkSession{
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function onPlayerPickUpItem(Player $collector, Entity $pickedUp) : void{
|
||||||
|
$this->sendDataPacket(TakeItemActorPacket::create($collector->getId(), $pickedUp->getId()));
|
||||||
|
}
|
||||||
|
|
||||||
public function syncPlayerList() : void{
|
public function syncPlayerList() : void{
|
||||||
$this->sendDataPacket(PlayerListPacket::add(array_map(function(Player $player) : PlayerListEntry{
|
$this->sendDataPacket(PlayerListPacket::add(array_map(function(Player $player) : PlayerListEntry{
|
||||||
return PlayerListEntry::createAdditionEntry($player->getUniqueId(), $player->getId(), $player->getDisplayName(), SkinAdapterSingleton::get()->toSkinData($player->getSkin()), $player->getXuid());
|
return PlayerListEntry::createAdditionEntry($player->getUniqueId(), $player->getId(), $player->getDisplayName(), SkinAdapterSingleton::get()->toSkinData($player->getSkin()), $player->getXuid());
|
||||||
|
Loading…
x
Reference in New Issue
Block a user