mirror of
https://gitlab.bixilon.de/bixilon/minosoft.git
synced 2025-09-12 17:07:55 -04:00
login disconnect, player info (tab) packet
This commit is contained in:
parent
adbc77df2e
commit
11f95213d3
@ -149,7 +149,7 @@ public class Network {
|
||||
Class<? extends ClientboundPacket> clazz = Protocol.getPacketByPacket(p);
|
||||
|
||||
if (clazz == null) {
|
||||
Log.warn(String.format("[IN] Unknown packet with command %x (%s)", inPacketBuffer.getCommand(), ((p != null) ? p.name() : "UNKNOWN")));
|
||||
Log.warn(String.format("[IN] Unknown packet with command 0x%x (%s)", inPacketBuffer.getCommand(), ((p != null) ? p.name() : "UNKNOWN")));
|
||||
binQueueIn.remove(0);
|
||||
continue;
|
||||
}
|
||||
|
@ -0,0 +1,32 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.login;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InPacketBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
|
||||
import org.json.JSONObject;
|
||||
|
||||
public class PacketLoginDisconnect implements ClientboundPacket {
|
||||
JSONObject reason;
|
||||
|
||||
@Override
|
||||
public void read(InPacketBuffer buffer, ProtocolVersion v) {
|
||||
reason = buffer.readJson();
|
||||
log();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.protocol("Receiving login disconnect packet");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
public JSONObject getReason() {
|
||||
return reason;
|
||||
}
|
||||
}
|
@ -0,0 +1,42 @@
|
||||
package de.bixilon.minosoft.protocol.packets.clientbound.play;
|
||||
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.protocol.InPacketBuffer;
|
||||
import de.bixilon.minosoft.protocol.protocol.PacketHandler;
|
||||
import de.bixilon.minosoft.protocol.protocol.ProtocolVersion;
|
||||
|
||||
public class PacketPlayerInfo implements ClientboundPacket {
|
||||
String name;
|
||||
PlayerJoinState state;
|
||||
short ping;
|
||||
|
||||
|
||||
@Override
|
||||
public void read(InPacketBuffer buffer, ProtocolVersion v) {
|
||||
switch (v) {
|
||||
case VERSION_1_7_10:
|
||||
name = buffer.readString();
|
||||
state = (buffer.readBoolean() ? PlayerJoinState.JOINED : PlayerJoinState.DISCONNECTED);
|
||||
ping = buffer.readShort();
|
||||
|
||||
break;
|
||||
}
|
||||
log();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void log() {
|
||||
Log.game(String.format("%s %s", name, (state == PlayerJoinState.JOINED ? "joined" : "disconnected")));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handle(PacketHandler h) {
|
||||
h.handle(this);
|
||||
}
|
||||
|
||||
public enum PlayerJoinState {
|
||||
JOINED,
|
||||
DISCONNECTED
|
||||
}
|
||||
}
|
@ -3,8 +3,10 @@ package de.bixilon.minosoft.protocol.protocol;
|
||||
import de.bixilon.minosoft.logging.Log;
|
||||
import de.bixilon.minosoft.protocol.network.Connection;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketEncryptionKeyRequest;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketLoginDisconnect;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketLoginSuccess;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketJoinGame;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketPlayerInfo;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusPong;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusResponse;
|
||||
import de.bixilon.minosoft.protocol.packets.serverbound.login.PacketEncryptionResponse;
|
||||
@ -48,4 +50,12 @@ public class PacketHandler {
|
||||
|
||||
public void handle(PacketJoinGame pkg) {
|
||||
}
|
||||
|
||||
public void handle(PacketLoginDisconnect pkg) {
|
||||
Log.info(String.format("Disconnecting from server(%s)", pkg.getReason().toString()));
|
||||
connection.setConnectionState(ConnectionState.DISCONNECTING);
|
||||
}
|
||||
|
||||
public void handle(PacketPlayerInfo pkg) {
|
||||
}
|
||||
}
|
||||
|
@ -2,8 +2,10 @@ package de.bixilon.minosoft.protocol.protocol;
|
||||
|
||||
import de.bixilon.minosoft.protocol.packets.ClientboundPacket;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketEncryptionKeyRequest;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketLoginDisconnect;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketLoginSuccess;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketJoinGame;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketPlayerInfo;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusPong;
|
||||
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusResponse;
|
||||
|
||||
@ -31,7 +33,9 @@ public interface Protocol {
|
||||
packetClassMapping.put(Packets.Clientbound.STATUS_PONG, PacketStatusPong.class);
|
||||
packetClassMapping.put(Packets.Clientbound.LOGIN_ENCRYPTION_REQUEST, PacketEncryptionKeyRequest.class);
|
||||
packetClassMapping.put(Packets.Clientbound.LOGIN_LOGIN_SUCCESS, PacketLoginSuccess.class);
|
||||
packetClassMapping.put(Packets.Clientbound.LOGIN_DISCONNECT, PacketLoginDisconnect.class);
|
||||
|
||||
packetClassMapping.put(Packets.Clientbound.PLAY_JOIN_GAME, PacketJoinGame.class);
|
||||
packetClassMapping.put(Packets.Clientbound.PLAY_PLAYER_INFO, PacketPlayerInfo.class);
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user