From 90c194b2a42a8d49089ef0738237059bf3040f07 Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Thu, 19 Apr 2018 08:31:39 +0300 Subject: [PATCH] Player info packet --- src/main/java/mc/core/network/NetStream.java | 1 + .../proto_125/ByteArrayOutputNetStream.java | 6 ++++ .../proto_125/netty/PacketHandler.java | 7 +++++ .../netty/wrappers/WrapperNetStream.java | 5 ++++ .../proto_125/packets/PacketManager.java | 1 + .../proto_125/packets/PlayerInfoPacket.java | 29 +++++++++++++++++++ 6 files changed, 49 insertions(+) create mode 100644 src/main/java/mc/core/network/proto_125/packets/PlayerInfoPacket.java diff --git a/src/main/java/mc/core/network/NetStream.java b/src/main/java/mc/core/network/NetStream.java index e41952a..7012583 100644 --- a/src/main/java/mc/core/network/NetStream.java +++ b/src/main/java/mc/core/network/NetStream.java @@ -25,6 +25,7 @@ public abstract class NetStream { public abstract void writeBoolean(boolean value); public abstract void writeByte(int value); public abstract void writeBytes(byte[] buffer); + public abstract void writeShort(int value); public abstract void writeInt(int value); public abstract void writeFloat(float value); public abstract void writeDouble(double value); diff --git a/src/main/java/mc/core/network/proto_125/ByteArrayOutputNetStream.java b/src/main/java/mc/core/network/proto_125/ByteArrayOutputNetStream.java index daf577a..fc3302e 100644 --- a/src/main/java/mc/core/network/proto_125/ByteArrayOutputNetStream.java +++ b/src/main/java/mc/core/network/proto_125/ByteArrayOutputNetStream.java @@ -69,6 +69,12 @@ public class ByteArrayOutputNetStream extends NetStream_p125 { baos.write(buffer, 0, buffer.length); } + @Override + public void writeShort(int value) { + baos.write((byte) value >>> 8); + baos.write((byte) value); + } + @Override public void writeInt(int value) { baos.write((byte) value >>> 24); diff --git a/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java b/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java index 7a51942..572990e 100644 --- a/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java +++ b/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java @@ -88,6 +88,13 @@ public class PacketHandler extends SimpleChannelInboundHandler { abilitiesPkt.setInstantDestroyBlocks(true); channel.write(abilitiesPkt); + // send Player info + PlayerInfoPacket infoPkt = new PlayerInfoPacket(); + infoPkt.setPlayerName(player.getName()); + infoPkt.setOnline(true); + infoPkt.setPing(4); + channel.write(infoPkt); + PositionAndLookPacket pkt = new PositionAndLookPacket(); pkt.setLocation(new Location(0, 0, 0)); pkt.setStance(0); diff --git a/src/main/java/mc/core/network/proto_125/netty/wrappers/WrapperNetStream.java b/src/main/java/mc/core/network/proto_125/netty/wrappers/WrapperNetStream.java index d4da090..e033f2b 100644 --- a/src/main/java/mc/core/network/proto_125/netty/wrappers/WrapperNetStream.java +++ b/src/main/java/mc/core/network/proto_125/netty/wrappers/WrapperNetStream.java @@ -71,6 +71,11 @@ public class WrapperNetStream extends NetStream_p125 { byteBuf.writeBytes(buffer); } + @Override + public void writeShort(int value) { + byteBuf.writeShort(value); + } + @Override public void writeInt(int value) { byteBuf.writeInt(value); diff --git a/src/main/java/mc/core/network/proto_125/packets/PacketManager.java b/src/main/java/mc/core/network/proto_125/packets/PacketManager.java index dfb7059..a3177a9 100644 --- a/src/main/java/mc/core/network/proto_125/packets/PacketManager.java +++ b/src/main/java/mc/core/network/proto_125/packets/PacketManager.java @@ -16,6 +16,7 @@ public class PacketManager { .put(0x02, HandshakePacket.class) .put(0x06, SpawnPositionPacket.class) .put(0x0D, PositionAndLookPacket.class) + .put(0xC9, PlayerInfoPacket.class) .put(0xCA, PlayerAbilitiesPacket.class) .put(0xFE, PingPacket.class) .put(0xFF, KickPacket.class) diff --git a/src/main/java/mc/core/network/proto_125/packets/PlayerInfoPacket.java b/src/main/java/mc/core/network/proto_125/packets/PlayerInfoPacket.java new file mode 100644 index 0000000..a70a84d --- /dev/null +++ b/src/main/java/mc/core/network/proto_125/packets/PlayerInfoPacket.java @@ -0,0 +1,29 @@ +/* + * DmitriyMX + * 2018-04-19 + */ +package mc.core.network.proto_125.packets; + +import lombok.Setter; +import lombok.ToString; +import mc.core.network.SCPacket; +import mc.core.network.proto_125.ByteArrayOutputNetStream; + +@Setter +@ToString +public class PlayerInfoPacket implements SCPacket { + private String playerName; + private boolean online; + private int ping; + + @Override + public byte[] toByteArray() { + ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); + + netStream.writeString(playerName); + netStream.writeBoolean(online); + netStream.writeShort(ping); + + return netStream.toByteArray(); + } +}