public function onDataPacketSend(DataPacketSendEvent $event) { if ($event->getPacket() instanceof AddPlayerPacket) { /** @var $pk AddPlayerPacket */ $pk = $event->getPacket(); if (isset($this->blockMans[spl_object_hash($event->getPlayer()->getLevel()->getEntity($pk->eid))])) { $event->setCancelled(true); } } }
public function onSendPack(DataPacketSendEvent $event) { $pk = $event->getPacket(); if (!$pk instanceof MessagePacket) { return; } $p = $event->getPlayer(); if ($pk->source === "chatlinebreaker.ignore") { return; } if (!$this->isPEnable($p->getName())) { return; } $event->setCancelled(); $msg = $pk->message; if ($pk->source) { $msg = "<{$pk->source}> {$msg}"; } $this->processMessage($p, $msg); }
public function onSendPacket(DataPacketSendEvent $ev) { if ($ev->getPacket()->pid() !== ProtocolInfo::FULL_CHUNK_DATA_PACKET) { return; } // Re-spawn as chunks get sent... $pl = $ev->getPlayer(); $level = $pl->getLevel(); if (!isset($this->cases[$level->getName()])) { return; } $chunkX = $ev->getPacket()->chunkX; $chunkZ = $ev->getPacket()->chunkZ; foreach (array_keys($this->cases[$level->getName()]) as $cid) { $pos = explode(":", $cid); if ($pos[0] >> 4 == $chunkX && $pos[2] >> 4 == $chunkZ) { //echo "Respawn case... $cid\n"; //##DEBUG $this->sndItemCase($level, $cid, [$pl]); } } }
public function onDataPacketSendEvent(DataPacketSendEvent $event) { $pk = $event->getPacket(); if ($pk instanceof SetHealthPacket) { $attribute = Attribute::getAttribute(Attribute::MAX_HEALTH); $attributeData = AttributeProvider::getInstance()->getAttribute($event->getPlayer()); $attribute->setMinValue(0); $attribute->setMaxValue($attributeData->getMaxHealth()); if ($pk->health > $attributeData->getMaxHealth()) { $pk->health = $attributeData->getMaxHealth(); } $attribute->setValue($pk->health); $attributePacket = new UpdateAttributesPacket(); $attributePacket->entityId = 0; $attributePacket->entries = [$attribute]; $event->setCancelled(); $event->getPlayer()->dataPacket($attributePacket); } }
public function onSend(DataPacketSendEvent $event) { $player = $event->getPlayer(); $user = $this->main->getUserByPlayer($player); $pk = $event->getPacket(); if ($pk::NETWORK_ID === Info::CONTAINER_SET_CONTENT_PACKET) { /** @var ContainerSetContentPacket $pk */ if ($user !== null and $user->isPlaying()) { return; } if ($player->isSurvival()) { // survival/adventure if ($pk->windowid === ContainerSetContentPacket::SPECIAL_ARMOR or $pk->windowid === ContainerSetContentPacket::SPECIAL_INVENTORY) { $event->setCancelled(); } } } }
public function onDataPacket(DataPacketSendEvent $event) { if ($event->getPacket() instanceof MessagePacket) { if ($event->getPacket()->pid() != 0x85) { return; } if ($event->isCancelled()) { return; } if (isset($this->db[$event->getPlayer()->getName()]["CHAT"])) { if ($this->db[$event->getPlayer()->getName()]["CHAT"] == false) { $event->setCancelled(); return; } } if (isset($this->db[$event->getPlayer()->getName()]["localCHAT"])) { if ($this->db[$event->getPlayer()->getName()]["localCHAT"] == false) { if (isset($this->localChatQueue["Player"])) { if ($this->localChatQueue["Player"] instanceof Player) { if ($this->localChatQueue["Message"] == null) { $this->localChatQueue["Message"] = $event->getPacket()->message; } // 보내는 메시지가 동일할때만 if ($this->localChatQueue["Message"] == $event->getPacket()->message) { $dx = abs($event->getPlayer()->x - $this->localChatQueue["Player"]->x); $dy = abs($event->getPlayer()->y - $this->localChatQueue["Player"]->y); $dz = abs($event->getPlayer()->z - $this->localChatQueue["Player"]->z); // 거리가 멀면 패킷보내지않음 if ($dx > 25 or $dy > 25 or $dz > 25) { $event->setCancelled(); return; } } } } } } if (isset($this->db[$event->getPlayer()->getName()]["NameTAG"])) { if ($this->db[$event->getPlayer()->getName()]["NameTAG"] == true) { $event->setCancelled(); $this->putStack($event->getPlayer()->getName(), $event->getPacket()->message); return; } } } }
public function onPacketSend(DataPacketSendEvent $event) { if (isset($event->getPacket()->eid)) { if ($this->isDisguised($event->getPacket()->eid) && !$event->getPlayer()->hasPermission("disguiseme.exempt")) { if ($event->getPacket() instanceof MovePlayerPacket) { $pk = new MoveEntityPacket(); $pk->entities = [[$event->getPacket()->eid, $event->getPacket()->x, $event->getPacket()->y, $event->getPacket()->z, $event->getPacket()->yaw, $event->getPacket()->pitch]]; $event->getPlayer()->dataPacket($pk); $event->setCancelled(); } elseif ($event->getPacket() instanceof AddPlayerPacket) { $pk = new AddEntityPacket(); $pk->eid = $event->getPacket()->eid; $pk->type = $this->e[$event->getPacket()->eid]->getType(); $pk->x = $event->getPacket()->x; $pk->y = $event->getPacket()->y; $pk->z = $event->getPacket()->z; $pk->pitch = $event->getPacket()->pitch; $pk->yaw = $event->getPacket()->yaw; $pk->metadata = []; $event->getPlayer()->dataPacket($pk); $event->setCancelled(); } elseif ($event->getPacket() instanceof RemovePlayerPacket) { $pk = new RemoveEntityPacket(); $pk->eid = $event->getPacket()->eid; $event->getPlayer()->dataPacket($pk); $event->setCancelled(); } } } }
public function onDataPacket(DataPacketSendEvent $event) { if (!$event->getPacket() instanceof TextPacket or $event->getPacket()->pid() != 0x85 or $event->isCancelled()) { return; } if (isset($this->db[$event->getPlayer()->getName()]["chat"]) and $this->db[$event->getPlayer()->getName()]["chat"] == false) { $event->setCancelled(); return; } if (isset($this->db[$event->getPlayer()->getName()]["nametag"]) and $this->db[$event->getPlayer()->getName()]["nametag"] == true) { $message = $this->getServer()->getLanguage()->translate(new TranslationContainer($event->getPacket()->message, $event->getPacket()->parameters)); $this->putStack($event->getPlayer()->getName(), $message); } }
public function onDataPacketSend(DataPacketSendEvent $event) { $pk = $event->getPacket(); $p = $event->getPlayer(); if ($pk instanceof SetHealthPacket) { $health = floor($p->getHealth() / $p->getMaxHealth() * 20); $pk->health = $p->dead ? 0 : ($health <= 0 && $p->getHealth() > 0 ? 1 : $health); } }