/** * @param DataPacket $packet * @param bool $needACK * * @return bool|int */ public function directDataPacket(DataPacket $packet, $needACK = false) { if ($this->connected === false) { return false; } $timings = Timings::getSendDataPacketTimings($packet); $timings->startTiming(); $this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet)); if ($ev->isCancelled()) { $timings->stopTiming(); return false; } $identifier = $this->interface->putPacket($this, $packet, $needACK, true); if ($needACK and $identifier !== null) { $this->needACK[$identifier] = false; $timings->stopTiming(); return $identifier; } $timings->stopTiming(); return true; }
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 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; } } } }
/** * @param DataPacket $packet * @param bool $needACK * * @return bool|int */ public function directDataPacket(DataPacket $packet, $needACK = \false) { if ($this->connected === \false) { return \false; } $this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet)); if ($ev->isCancelled()) { return \false; } $identifier = $this->interface->putPacket($this, $packet, $needACK, \true); if ($needACK and $identifier !== \null) { $this->needACK[$identifier] = \false; return $identifier; } return \true; }