Fixed packed encoding

This commit is contained in:
Nanit 2021-10-30 15:08:07 +03:00
parent aded28cfef
commit 515fd392c3
5 changed files with 20 additions and 5 deletions

View File

@ -42,7 +42,10 @@ public class PacketEncoder extends MessageToByteEncoder<Packet> {
try { try {
packet.encode(msg, version); packet.encode(msg, version);
Logger.debug("Sending %s packet", packet.toString());
if (Logger.getLevel() >= 3) {
Logger.debug("Sending %s packet (%d bytes)", packet.toString(), msg.readableBytes());
}
} catch (Exception e) { } catch (Exception e) {
Logger.warning("Cannot encode packet 0x%s: %s", Integer.toHexString(packetId), e.getMessage()); Logger.warning("Cannot encode packet 0x%s: %s", Integer.toHexString(packetId), e.getMessage());
} }

View File

@ -21,7 +21,11 @@ public class PacketLoginSuccess implements PacketOut {
@Override @Override
public void encode(ByteMessage msg, Version version) { public void encode(ByteMessage msg, Version version) {
if (version.moreOrEqual(Version.V1_16)) {
msg.writeUuid(uuid); msg.writeUuid(uuid);
} else {
msg.writeString(uuid.toString());
}
msg.writeString(username); msg.writeString(username);
} }

View File

@ -90,7 +90,7 @@ public class PacketJoinGame implements PacketOut {
if (version.fromTo(Version.V1_8, Version.V1_13_2)) { if (version.fromTo(Version.V1_8, Version.V1_13_2)) {
msg.writeByte(gameMode); msg.writeByte(gameMode);
msg.writeByte(dimension.getId()); msg.writeInt(dimension.getId());
msg.writeByte(0); // Difficulty msg.writeByte(0); // Difficulty
msg.writeByte(maxPlayers); msg.writeByte(maxPlayers);
msg.writeString("flat"); // Level type msg.writeString("flat"); // Level type
@ -99,7 +99,7 @@ public class PacketJoinGame implements PacketOut {
if (version.fromTo(Version.V1_14, Version.V1_14_4)) { if (version.fromTo(Version.V1_14, Version.V1_14_4)) {
msg.writeByte(gameMode); msg.writeByte(gameMode);
msg.writeByte(dimension.getId()); msg.writeInt(dimension.getId());
msg.writeByte(maxPlayers); msg.writeByte(maxPlayers);
msg.writeString("flat"); // Level type msg.writeString("flat"); // Level type
msg.writeVarInt(viewDistance); msg.writeVarInt(viewDistance);
@ -108,7 +108,7 @@ public class PacketJoinGame implements PacketOut {
if (version.fromTo(Version.V1_15, Version.V1_15_2)) { if (version.fromTo(Version.V1_15, Version.V1_15_2)) {
msg.writeByte(gameMode); msg.writeByte(gameMode);
msg.writeByte(dimension.getId()); msg.writeInt(dimension.getId());
msg.writeLong(hashedSeed); msg.writeLong(hashedSeed);
msg.writeByte(maxPlayers); msg.writeByte(maxPlayers);
msg.writeString("flat"); // Level type msg.writeString("flat"); // Level type

View File

@ -34,4 +34,8 @@ public class PacketKeepAlive implements Packet {
} }
} }
@Override
public String toString() {
return getClass().getSimpleName();
}
} }

View File

@ -14,6 +14,10 @@ public final class Logger {
debugLevel = level; debugLevel = level;
} }
public static int getLevel() {
return debugLevel;
}
public static void info(Object msg, Object... args) { public static void info(Object msg, Object... args) {
print(Level.INFO, msg, null, args); print(Level.INFO, msg, null, args);
} }