From bbbed22467d060a865fa3e03fc28c81185069d2e Mon Sep 17 00:00:00 2001 From: Oreo Oreoniv <28255085+zKoz210@users.noreply.github.com> Date: Wed, 15 Nov 2017 14:16:02 +0300 Subject: [PATCH] Save player data after PlayerQuitEvent (#1544), close #1543, close #1482 This reverses a bad solution for #1482 for level unloading on PlayerQuitEvent which caused more widespread issues with plugins doing other, more common things on player quit which directly affected the save data. --- src/pocketmine/Player.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pocketmine/Player.php b/src/pocketmine/Player.php index 329dd201d..6fdca0ca7 100644 --- a/src/pocketmine/Player.php +++ b/src/pocketmine/Player.php @@ -3373,17 +3373,17 @@ class Player extends Human implements CommandSender, ChunkLoader, IPlayer{ $this->stopSleep(); if($this->joined){ + $this->server->getPluginManager()->callEvent($ev = new PlayerQuitEvent($this, $message, $reason)); + if($ev->getQuitMessage() != ""){ + $this->server->broadcastMessage($ev->getQuitMessage()); + } + 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, $reason)); - if($ev->getQuitMessage() != ""){ - $this->server->broadcastMessage($ev->getQuitMessage()); - } } $this->joined = false;