BGHDDevelopment / PlayerBalancer

The repository for the plugin PlayerBalancer
https://www.spigotmc.org/resources/55011/
MIT License
28 stars 25 forks source link

Unexpected packet received during server login process after disconnecting #7

Closed Alexre closed 4 years ago

Alexre commented 4 years ago

Tras desconectar del servidor por completo (salir desde el menú), playerbalancer interpreta que he sido kickeado y me envía al lobby (estando desconectado) y bungeecord detecta un paquete inválido (supongo que por estar el usuario desconectado).

Adjunto momento de lo que ocurre:

[23:26:20] [Netty Worker IO Thread #16/INFO]: »» AlexReq (bot): chao!

[23:26:20] [Netty Worker IO Thread #16/INFO]: [/|AlexReq] -> UpstreamBridge has disconnected

[23:26:20] [Netty Worker IO Thread #16/INFO]: [/|AlexReq] <-> DownstreamBridge <-> [murder] has disconnected

[23:26:20] [Netty Worker IO Thread #16/INFO]: [AlexReq|/] <-> ServerConnector [lobby3] has connected
[23:26:20] [Netty Worker IO Thread #16/WARN]: No client connected for pending server!

[23:26:20] [Netty Worker IO Thread #16/ERROR]: [AlexReq|/] <-> ServerConnector [lobby3] - encountered exception: net.md_5.bungee.util.QuietException: Unexpected packet received during server login process!
4100

[23:26:20] [Netty Worker IO Thread #16/INFO]: [AlexReq|/] <-> ServerConnector [lobby3] has disconnected

Tras el mensaje "chao!" me desconecto del servidor, pero playerbalancer me envía al lobby por el kick handler, desactivando este no ocurre. Esto causa que los jugadores se queden conectados en el lobby y redis los detecte en línea no estándolo, además de los sistemas que utilizan redis como el de amigos.

Utilizo la última versión de waterfall y de playerbalancer,

jamezrin commented 4 years ago

Habilita la información de debut, si se envía un mensaje por la consola, PlayerBalancer está haciendo algo.

Pero con la información que me has dado me parece raro que el plugin detecte una desconexión voluntaria como un Kick.

Alexre commented 4 years ago

Según he podido ver, bungee envía el mensaje lost_connection en determinadas ocasiones cuando el usuario sale del servidor, cuando ese mensaje creo que es solo para cuando se pierde la conexión inesperadamente. Claro, tengo ese mensaje en la lista de kick, para llevar a la gente al lobby cuando un servidor cae inesperadamente y no manda otro.

Lo raro es que playerbalancer haga el send aunque el jugador haya salido del servidor y ya no esté online. Aunque creo que también es un problema de bungee por mandar ese mensaje cuando no debe

jamezrin commented 4 years ago

No puedo ayudarte si ni siquiera te molestas en leer mi respuesta, necesito ver la información de debug del modulo kick_handler. No te molestes en reabrir sin enviarme esa información. Los logs de bungeecord no me sirven para nada.