Use try...finally in Player->sendDataPacket() so we don't forget to stop timings

This commit is contained in:
Dylan K. Taylor 2017-09-27 13:52:25 +01:00
parent 1c9b4f3e21
commit 8f63117dac

View File

@ -1119,23 +1119,23 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
$timings = Timings::getSendDataPacketTimings($packet);
$timings->startTiming();
$this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
if($ev->isCancelled()){
try{
$this->server->getPluginManager()->callEvent($ev = new DataPacketSendEvent($this, $packet));
if($ev->isCancelled()){
return false;
}
$identifier = $this->interface->putPacket($this, $packet, $needACK, $immediate);
if($needACK and $identifier !== null){
$this->needACK[$identifier] = false;
return $identifier;
}
return true;
}finally{
$timings->stopTiming();
return false;
}
$identifier = $this->interface->putPacket($this, $packet, $needACK, $immediate);
if($needACK and $identifier !== null){
$this->needACK[$identifier] = false;
$timings->stopTiming();
return $identifier;
}
$timings->stopTiming();
return true;
}
/**