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);
|
Class<? extends ClientboundPacket> clazz = Protocol.getPacketByPacket(p);
|
||||||
|
|
||||||
if (clazz == null) {
|
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);
|
binQueueIn.remove(0);
|
||||||
continue;
|
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.logging.Log;
|
||||||
import de.bixilon.minosoft.protocol.network.Connection;
|
import de.bixilon.minosoft.protocol.network.Connection;
|
||||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketEncryptionKeyRequest;
|
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.login.PacketLoginSuccess;
|
||||||
import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketJoinGame;
|
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.PacketStatusPong;
|
||||||
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusResponse;
|
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusResponse;
|
||||||
import de.bixilon.minosoft.protocol.packets.serverbound.login.PacketEncryptionResponse;
|
import de.bixilon.minosoft.protocol.packets.serverbound.login.PacketEncryptionResponse;
|
||||||
@ -48,4 +50,12 @@ public class PacketHandler {
|
|||||||
|
|
||||||
public void handle(PacketJoinGame pkg) {
|
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.ClientboundPacket;
|
||||||
import de.bixilon.minosoft.protocol.packets.clientbound.login.PacketEncryptionKeyRequest;
|
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.login.PacketLoginSuccess;
|
||||||
import de.bixilon.minosoft.protocol.packets.clientbound.play.PacketJoinGame;
|
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.PacketStatusPong;
|
||||||
import de.bixilon.minosoft.protocol.packets.clientbound.status.PacketStatusResponse;
|
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.STATUS_PONG, PacketStatusPong.class);
|
||||||
packetClassMapping.put(Packets.Clientbound.LOGIN_ENCRYPTION_REQUEST, PacketEncryptionKeyRequest.class);
|
packetClassMapping.put(Packets.Clientbound.LOGIN_ENCRYPTION_REQUEST, PacketEncryptionKeyRequest.class);
|
||||||
packetClassMapping.put(Packets.Clientbound.LOGIN_LOGIN_SUCCESS, PacketLoginSuccess.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_JOIN_GAME, PacketJoinGame.class);
|
||||||
|
packetClassMapping.put(Packets.Clientbound.PLAY_PLAYER_INFO, PacketPlayerInfo.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user