Player: add a prefixed logger

This commit is contained in:
Dylan K. Taylor 2019-06-03 19:30:26 +01:00
parent 56a4e8c032
commit df0acea2f4

View File

@ -269,6 +269,9 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
/** @var Form[] */ /** @var Form[] */
protected $forms = []; protected $forms = [];
/** @var \Logger */
protected $logger;
/** /**
* @param Server $server * @param Server $server
* @param NetworkSession $session * @param NetworkSession $session
@ -276,13 +279,16 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
* @param bool $authenticated * @param bool $authenticated
*/ */
public function __construct(Server $server, NetworkSession $session, PlayerInfo $playerInfo, bool $authenticated){ public function __construct(Server $server, NetworkSession $session, PlayerInfo $playerInfo, bool $authenticated){
$username = TextFormat::clean($playerInfo->getUsername());
$this->logger = new \PrefixedLogger($server->getLogger(), "Player: $username");
$this->server = $server; $this->server = $server;
$this->networkSession = $session; $this->networkSession = $session;
$this->playerInfo = $playerInfo; $this->playerInfo = $playerInfo;
$this->authenticated = $authenticated; $this->authenticated = $authenticated;
$this->skin = $this->playerInfo->getSkin(); $this->skin = $this->playerInfo->getSkin();
$this->username = TextFormat::clean($this->playerInfo->getUsername()); $this->username = $username;
$this->displayName = $this->username; $this->displayName = $this->username;
$this->iusername = strtolower($this->username); $this->iusername = strtolower($this->username);
$this->locale = $this->playerInfo->getLocale(); $this->locale = $this->playerInfo->getLocale();
@ -648,7 +654,7 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
$this->networkSession->syncViewAreaRadius($this->viewDistance); $this->networkSession->syncViewAreaRadius($this->viewDistance);
$this->server->getLogger()->debug("Setting view distance for " . $this->getName() . " to " . $this->viewDistance . " (requested " . $distance . ")"); $this->logger->debug("Setting view distance to " . $this->viewDistance . " (requested " . $distance . ")");
} }
/** /**
@ -1428,7 +1434,7 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
$newPos = $newPos->asVector3(); $newPos = $newPos->asVector3();
if($this->isTeleporting and $newPos->distanceSquared($this) > 1){ //Tolerate up to 1 block to avoid problems with client-sided physics when spawning in blocks if($this->isTeleporting and $newPos->distanceSquared($this) > 1){ //Tolerate up to 1 block to avoid problems with client-sided physics when spawning in blocks
$this->sendPosition($this, null, null, MovePlayerPacket::MODE_RESET); $this->sendPosition($this, null, null, MovePlayerPacket::MODE_RESET);
$this->server->getLogger()->debug("Got outdated pre-teleport movement from " . $this->getName() . ", received " . $newPos . ", expected " . $this->asVector3()); $this->logger->debug("Got outdated pre-teleport movement, received " . $newPos . ", expected " . $this->asVector3());
//Still getting movements from before teleport, ignore them //Still getting movements from before teleport, ignore them
return false; return false;
} }
@ -1470,8 +1476,8 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
* If you must tamper with this code, be aware that this can cause very nasty results. Do not waste our time * If you must tamper with this code, be aware that this can cause very nasty results. Do not waste our time
* asking for help if you suffer the consequences of messing with this. * asking for help if you suffer the consequences of messing with this.
*/ */
$this->server->getLogger()->warning($this->getName() . " moved too fast, reverting movement"); $this->logger->warning("Moved too fast, reverting movement");
$this->server->getLogger()->debug("Old position: " . $this->asVector3() . ", new position: " . $this->newPosition); $this->logger->debug("Old position: " . $this->asVector3() . ", new position: " . $this->newPosition);
$revert = true; $revert = true;
}elseif(!$this->world->isInLoadedTerrain($newPos) or !$this->world->isChunkGenerated($newPos->getFloorX() >> 4, $newPos->getFloorZ() >> 4)){ }elseif(!$this->world->isInLoadedTerrain($newPos) or !$this->world->isChunkGenerated($newPos->getFloorX() >> 4, $newPos->getFloorZ() >> 4)){
$revert = true; $revert = true;
@ -1495,8 +1501,8 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
if(!$ev->isCancelled()){ if(!$ev->isCancelled()){
$revert = true; $revert = true;
$this->server->getLogger()->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidMove", [$this->getName()])); $this->logger->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidMove", [$this->getName()]));
$this->server->getLogger()->debug("Old position: " . $this->asVector3() . ", new position: " . $this->newPosition); $this->logger->debug("Old position: " . $this->asVector3() . ", new position: " . $this->newPosition);
} }
} }
@ -1979,7 +1985,7 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
} }
if($entity instanceof ItemEntity or $entity instanceof Arrow){ if($entity instanceof ItemEntity or $entity instanceof Arrow){
$this->kick("Attempting to attack an invalid entity"); $this->kick("Attempting to attack an invalid entity");
$this->server->getLogger()->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidEntity", [$this->getName()])); $this->logger->warning($this->getServer()->getLanguage()->translateString("pocketmine.player.invalidEntity", [$this->getName()]));
return false; return false;
} }
@ -2308,15 +2314,15 @@ class Player extends Human implements CommandSender, ChunkLoader, ChunkListener,
*/ */
public function onFormSubmit(int $formId, $responseData) : bool{ public function onFormSubmit(int $formId, $responseData) : bool{
if(!isset($this->forms[$formId])){ if(!isset($this->forms[$formId])){
$this->server->getLogger()->debug("Got unexpected response for form $formId"); $this->logger->debug("Got unexpected response for form $formId");
return false; return false;
} }
try{ try{
$this->forms[$formId]->handleResponse($this, $responseData); $this->forms[$formId]->handleResponse($this, $responseData);
}catch(FormValidationException $e){ }catch(FormValidationException $e){
$this->server->getLogger()->critical("Failed to validate form " . get_class($this->forms[$formId]) . ": " . $e->getMessage()); $this->logger->critical("Failed to validate form " . get_class($this->forms[$formId]) . ": " . $e->getMessage());
$this->server->getLogger()->logException($e); $this->logger->logException($e);
}finally{ }finally{
unset($this->forms[$formId]); unset($this->forms[$formId]);
} }