diff --git a/src/pocketmine/network/mcpe/NetworkSession.php b/src/pocketmine/network/mcpe/NetworkSession.php index 16a87b1f3..048d2e778 100644 --- a/src/pocketmine/network/mcpe/NetworkSession.php +++ b/src/pocketmine/network/mcpe/NetworkSession.php @@ -527,14 +527,18 @@ class NetworkSession{ }, $reason); } - public function setAuthenticationStatus(bool $authenticated, bool $authRequired, ?string $error, PublicKeyInterface $clientPubKey) : void{ + public function setAuthenticationStatus(bool $authenticated, bool $authRequired, ?string $error, ?PublicKeyInterface $clientPubKey) : void{ if(!$this->connected){ return; } - if($authenticated and $this->info->getXuid() === ""){ - $error = "Expected XUID but none found"; - }elseif(!$authenticated and $this->info->getXuid() !== ""){ - $error = "Unexpected XUID for non-XBOX-authenticated player"; + if($error === null){ + if($authenticated and $this->info->getXuid() === ""){ + $error = "Expected XUID but none found"; + }elseif(!$authenticated and $this->info->getXuid() !== ""){ + $error = "Unexpected XUID for non-XBOX-authenticated player"; + }elseif($clientPubKey === null){ + $error = "Missing client public key"; //failsafe + } } if($error !== null){