Added packet exception handling, updated RakLib

This commit is contained in:
Shoghi Cervantes 2014-10-31 19:14:59 +01:00
parent 01ffb14e39
commit ae06681b60
2 changed files with 15 additions and 4 deletions

View File

@ -74,6 +74,7 @@ use pocketmine\network\protocol\UpdateBlockPacket;
use pocketmine\network\protocol\UseItemPacket;
use pocketmine\Player;
use pocketmine\Server;
use pocketmine\utils\MainLogger;
use pocketmine\utils\TextFormat;
use raklib\protocol\EncapsulatedPacket;
use raklib\RakLib;
@ -175,9 +176,19 @@ class RakLibInterface implements ServerInstance, SourceInterface{
public function handleEncapsulated($identifier, EncapsulatedPacket $packet, $flags){
if(isset($this->players[$identifier])){
try{
$pk = $this->getPacket($packet->buffer);
$pk->decode();
$this->players[$identifier]->handleDataPacket($pk);
}catch (\Exception $e){
if(\pocketmine\DEBUG > 1){
$logger = $this->server->getLogger();
if($logger instanceof MainLogger){
$logger->logException($e);
$logger->debug("Packet ".get_class($pk)." 0x".bin2hex($packet->buffer));
}
}
}
}
}

@ -1 +1 @@
Subproject commit 9a041749f3b8bba460ae413e7fa89f488dd7b652
Subproject commit cb3c3efd9cc8b04b686788a3a3450731f9ff97e4