Example #1
0
 /**
  *
  * @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;
 }