public function onCancel() { $flags = (int) $this->target->getDataProperty(Player::DATA_FLAGS); $dataProperty = [Player::DATA_FLAGS => [Player::DATA_TYPE_BYTE, $flags]]; $pk = new SetEntityDataPacket(); $pk->eid = $this->target->getId(); $pk->metadata = $dataProperty; Server::broadcastPacket($this->target->getLevel()->getPlayers(), $pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); unset(FlameThrower::$tasks[$this->target->getName()]); }
public function setFlaming(Player $target) { $flags = (int) $target->getDataProperty(Player::DATA_FLAGS); $flags ^= 1 << Player::DATA_FLAG_ONFIRE; $dataProperty = [Player::DATA_FLAGS => [Player::DATA_TYPE_BYTE, $flags]]; $pk = new SetEntityDataPacket(); $pk->eid = $target->getId(); $pk->metadata = $dataProperty; Server::broadcastPacket($this->getPlayer()->getLevel()->getPlayers(), $pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); }
/** * @param Player[]|Player $player * @param array $data Properly formatted entity data, defaults to everything */ public function sendData($player, array $data = null) { if (!is_array($player)) { $player = [$player]; } $pk = new SetEntityDataPacket(); $pk->eid = $this->id; $pk->metadata = $data === null ? $this->dataProperties : $data; Server::broadcastPacket($player, $pk->setChannel(Network::CHANNEL_WORLD_EVENTS)); }
/** * @param Player[]|Player $player */ public function sendMetadata($player) { if ($player instanceof Player) { $player = [$player]; } $pk = new SetEntityDataPacket(); $pk->eid = $this->id; $pk->metadata = $this->getData(); $pk->encode(); $pk->isEncoded = true; foreach ($player as $p) { if ($p === $this) { /** @var Player $p */ $pk2 = new SetEntityDataPacket(); $pk2->eid = 0; $pk2->metadata = $this->getData(); $p->dataPacket($pk2); } else { $p->dataPacket($pk); } } }