mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-13 09:26:11 -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.logging.Log;
|
||||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||||
import de.bixilon.minosoft.protocol.packets.ServerboundPacket;
|
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.packets.serverbound.login.PacketEncryptionResponse;
|
||||||
import de.bixilon.minosoft.protocol.protocol.*;
|
import de.bixilon.minosoft.protocol.protocol.*;
|
||||||
import de.bixilon.minosoft.util.Util;
|
import de.bixilon.minosoft.util.Util;
|
||||||
@ -157,6 +158,11 @@ public class Network {
|
|||||||
try {
|
try {
|
||||||
ClientboundPacket packet = clazz.getConstructor().newInstance();
|
ClientboundPacket packet = clazz.getConstructor().newInstance();
|
||||||
packet.read(inPacketBuffer, connection.getVersion());
|
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);
|
connection.handle(packet);
|
||||||
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
} catch (InstantiationException | IllegalAccessException | InvocationTargetException | NoSuchMethodException e) {
|
||||||
// safety first, but will not occur
|
// safety first, but will not occur
|
||||||
|
@ -45,7 +45,8 @@ public class PacketHandler {
|
|||||||
|
|
||||||
public void handle(PacketLoginSuccess pkg) {
|
public void handle(PacketLoginSuccess pkg) {
|
||||||
// now we are playing
|
// now we are playing
|
||||||
connection.setConnectionState(ConnectionState.PLAY);
|
// already done in packet thread
|
||||||
|
// connection.setConnectionState(ConnectionState.PLAY);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handle(PacketJoinGame pkg) {
|
public void handle(PacketJoinGame pkg) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user