mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-07-12 21:05:12 +00:00
parent
bc10edfdd3
commit
a724395148
@ -3645,6 +3645,7 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
||||
*/
|
||||
final public function close($message = "", $reason = "generic reason", $notify = true){
|
||||
if($this->connected and !$this->closed){
|
||||
try{
|
||||
if($notify and strlen((string) $reason) > 0){
|
||||
$pk = new DisconnectPacket();
|
||||
$pk->message = $reason;
|
||||
@ -3657,7 +3658,12 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
||||
$this->server->getPluginManager()->unsubscribeFromPermission(Server::BROADCAST_CHANNEL_ADMINISTRATIVE, $this);
|
||||
|
||||
if($this->joined){
|
||||
try{
|
||||
$this->save();
|
||||
}catch(\Throwable $e){
|
||||
$this->server->getLogger()->critical("Failed to save player data for " . $this->getName());
|
||||
$this->server->getLogger()->logException($e);
|
||||
}
|
||||
|
||||
$this->server->getPluginManager()->callEvent($ev = new PlayerQuitEvent($this, $message));
|
||||
if($ev->getQuitMessage() != ""){
|
||||
@ -3697,9 +3703,6 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
||||
|
||||
$this->interface->close($this, $notify ? $reason : "");
|
||||
|
||||
if($this->loggedIn){
|
||||
$this->server->removeOnlinePlayer($this);
|
||||
}
|
||||
$this->loggedIn = false;
|
||||
|
||||
$this->server->getLogger()->info($this->getServer()->getLanguage()->translateString("pocketmine.player.logOut", [
|
||||
@ -3721,9 +3724,14 @@ class Player extends Human implements CommandSender, InventoryHolder, ChunkLoade
|
||||
$this->currentTransaction = null;
|
||||
}
|
||||
|
||||
}catch(\Throwable $e){
|
||||
$this->server->getLogger()->logException($e);
|
||||
}finally{
|
||||
$this->server->removeOnlinePlayer($this);
|
||||
$this->server->removePlayer($this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function __debugInfo(){
|
||||
return [];
|
||||
|
Loading…
x
Reference in New Issue
Block a user