mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-06-13 06:55:29 +00:00
Get XUID from LoginPacket after authentication, add Player->getXuid()
This commit is contained in:
parent
088a44ea3a
commit
76117e7fa0
@ -206,6 +206,8 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
|||||||
public $lastBreak;
|
public $lastBreak;
|
||||||
/** @var bool */
|
/** @var bool */
|
||||||
protected $authenticated = false;
|
protected $authenticated = false;
|
||||||
|
/** @var string */
|
||||||
|
protected $xuid = "";
|
||||||
|
|
||||||
protected $windowCnt = 2;
|
protected $windowCnt = 2;
|
||||||
/** @var \SplObjectStorage<Inventory> */
|
/** @var \SplObjectStorage<Inventory> */
|
||||||
@ -352,6 +354,16 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
|||||||
return $this->authenticated;
|
return $this->authenticated;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If the player is logged into Xbox Live, returns their Xbox user ID (XUID) as a string. Returns an empty string if
|
||||||
|
* the player is not logged into Xbox Live.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function getXuid() : string{
|
||||||
|
return $this->xuid;
|
||||||
|
}
|
||||||
|
|
||||||
public function getPlayer(){
|
public function getPlayer(){
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
@ -1825,11 +1837,19 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{
|
|||||||
if(!$isAuthenticated){
|
if(!$isAuthenticated){
|
||||||
if($this->server->requiresAuthentication() and $this->kick("disconnectionScreen.notAuthenticated", false)){ //use kick to allow plugins to cancel this
|
if($this->server->requiresAuthentication() and $this->kick("disconnectionScreen.notAuthenticated", false)){ //use kick to allow plugins to cancel this
|
||||||
return;
|
return;
|
||||||
}else{
|
}
|
||||||
$this->server->getLogger()->debug($this->getName() . " is NOT logged into to Xbox Live");
|
|
||||||
|
$this->server->getLogger()->debug($this->getName() . " is NOT logged into to Xbox Live");
|
||||||
|
if($packet->xuid !== ""){
|
||||||
|
$this->server->getLogger()->warning($this->getName() . " has an XUID, but their login keychain is not signed by Mojang");
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
$this->server->getLogger()->debug($this->getName() . " is logged into Xbox Live");
|
$this->server->getLogger()->debug($this->getName() . " is logged into Xbox Live");
|
||||||
|
|
||||||
|
if($packet->xuid === ""){
|
||||||
|
$this->server->getLogger()->error($this->getName() . " should have an XUID, but none found");
|
||||||
|
}
|
||||||
|
$this->xuid = $packet->xuid; //don't set this unless we know they are logged in
|
||||||
}
|
}
|
||||||
|
|
||||||
//TODO: get data from loginpacket (xbox user ID and stuff), add events
|
//TODO: get data from loginpacket (xbox user ID and stuff), add events
|
||||||
|
@ -44,6 +44,8 @@ class LoginPacket extends DataPacket{
|
|||||||
/** @var int */
|
/** @var int */
|
||||||
public $clientId;
|
public $clientId;
|
||||||
/** @var string */
|
/** @var string */
|
||||||
|
public $xuid;
|
||||||
|
/** @var string */
|
||||||
public $identityPublicKey;
|
public $identityPublicKey;
|
||||||
/** @var string */
|
/** @var string */
|
||||||
public $serverAddress;
|
public $serverAddress;
|
||||||
@ -86,6 +88,9 @@ class LoginPacket extends DataPacket{
|
|||||||
if(isset($webtoken["extraData"]["identity"])){
|
if(isset($webtoken["extraData"]["identity"])){
|
||||||
$this->clientUUID = $webtoken["extraData"]["identity"];
|
$this->clientUUID = $webtoken["extraData"]["identity"];
|
||||||
}
|
}
|
||||||
|
if(isset($webtoken["extraData"]["XUID"])){
|
||||||
|
$this->xuid = $webtoken["extraData"]["XUID"];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isset($webtoken["identityPublicKey"])){
|
if(isset($webtoken["identityPublicKey"])){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user