ÂLocalize disconnect reasons for RakLib disconnects

This commit is contained in:
Dylan K. Taylor
2023-02-13 14:10:25 +00:00
parent 525f62e1e4
commit 886b40a455
6 changed files with 30 additions and 10 deletions

View File

@@ -668,7 +668,7 @@ class NetworkSession{
* Called by the network interface to close the session when the client disconnects without server input, for
* example in a timeout condition or voluntary client disconnect.
*/
public function onClientDisconnect(string $reason) : void{
public function onClientDisconnect(Translatable|string $reason) : void{
$this->tryDisconnect(function() use ($reason) : void{
if($this->player !== null){
$this->player->onPostDisconnect($reason, null);

View File

@@ -147,7 +147,12 @@ class RakLibInterface implements ServerEventListener, AdvancedNetworkInterface{
if(isset($this->sessions[$sessionId])){
$session = $this->sessions[$sessionId];
unset($this->sessions[$sessionId]);
$session->onClientDisconnect(DisconnectReason::toString($reason));
$session->onClientDisconnect(match($reason){
DisconnectReason::CLIENT_DISCONNECT => KnownTranslationFactory::pocketmine_disconnect_clientDisconnect(),
DisconnectReason::PEER_TIMEOUT => KnownTranslationFactory::pocketmine_disconnect_error_timeout(),
DisconnectReason::CLIENT_RECONNECT => KnownTranslationFactory::pocketmine_disconnect_clientReconnect(),
default => "Unknown RakLib disconnect reason (ID $reason)"
});
}
}