/** * @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; }
/** * @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; }