mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 08:58:02 -04:00
fix miss handling of play connection status due to multiple threads
This commit is contained in:
parent
b160d9be69
commit
f5fa4c9ead
@ -3,6 +3,7 @@ package de.bixilon.minosoft.protocol.network;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.ServerboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketLoginSuccess;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.login.PacketEncryptionResponse;
|
||||
import de.bixilon.minosoft.protocol.protocol.*;
|
||||
import de.bixilon.minosoft.util.Util;
|
||||
@ -157,6 +158,11 @@ public class Network {
|
||||
try {
|
||||
ClientboundPacket packet = clazz.getConstructor().newInstance();
|
||||
packet.read(inPacketBuffer, connection.getVersion());
|
||||
|
||||
if (packet instanceof PacketLoginSuccess) {
|
||||
// login was okay, setting play status to avoid miss timing issues
|
||||
connection.setConnectionState(ConnectionState.PLAY);
|
||||
}
|
||||
connection.handle(packet);
|
||||
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
||||
// safety first, but will not occur
|
||||
|
@ -45,7 +45,8 @@ public class PacketHandler {
|
||||
|
||||
public void handle(PacketLoginSuccess pkg) {
|
||||
// now we are playing
|
||||
connection.setConnectionState(ConnectionState.PLAY);
|
||||
// already done in packet thread
|
||||
// connection.setConnectionState(ConnectionState.PLAY);
|
||||
}
|
||||
|
||||
public void handle(PacketJoinGame pkg) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user