From 2e2d0dc4d949fea89d01a45d757c412d6ef3b56b Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Tue, 22 May 2018 20:50:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../proto_125/packets/AnimationPacket.java | 43 +++++++++++++++++++ .../proto_125/packets/PacketManager.java | 1 + .../proto_125/netty/PacketHandler.java | 7 +++ 3 files changed, 51 insertions(+) create mode 100644 proto125/src/main/java/mc/core/network/proto_125/packets/AnimationPacket.java diff --git a/proto125/src/main/java/mc/core/network/proto_125/packets/AnimationPacket.java b/proto125/src/main/java/mc/core/network/proto_125/packets/AnimationPacket.java new file mode 100644 index 0000000..7767f1d --- /dev/null +++ b/proto125/src/main/java/mc/core/network/proto_125/packets/AnimationPacket.java @@ -0,0 +1,43 @@ +/* + * d.mihailov + * 2018-05-22 + */ +package mc.core.network.proto_125.packets; + +import lombok.*; +import mc.core.network.CSPacket; +import mc.core.network.NetStream; +import mc.core.network.SCPacket; +import mc.core.network.proto_125.ByteArrayOutputNetStream; + +@AllArgsConstructor +@NoArgsConstructor +@Setter +@Getter +@ToString +public class AnimationPacket implements SCPacket, CSPacket { + public static final int NO_ANIMATION = 0, + SWING_ARM = 1, + DAMAGE = 2, + LEAVE_BED = 3, + EAT_FOOD = 5, + CROUCH = 104, + UNCROUCH = 105; + + private int id; + private int animation; + + @Override + public void readSelf(NetStream netStream) { + id = netStream.readInt(); + animation = netStream.readByte(); + } + + @Override + public byte[] toByteArray() { + ByteArrayOutputNetStream netStream = new ByteArrayOutputNetStream(); + netStream.writeInt(id); + netStream.writeByte(animation); + return netStream.toByteArray(); + } +} diff --git a/proto125/src/main/java/mc/core/network/proto_125/packets/PacketManager.java b/proto125/src/main/java/mc/core/network/proto_125/packets/PacketManager.java index 13d75e6..9c3d88c 100644 --- a/proto125/src/main/java/mc/core/network/proto_125/packets/PacketManager.java +++ b/proto125/src/main/java/mc/core/network/proto_125/packets/PacketManager.java @@ -20,6 +20,7 @@ public class PacketManager { .put(0x0B, PlayerPositionPacket.class) .put(0x0C, PlayerLookPacket.class) .put(0x0D, PositionAndLookPacket.class) + .put(0x12, AnimationPacket.class) .put(0x14, SpawnNamedEntityPacket.class) .put(0x1D, DestroyEntityPacket.class) .put(0x1F, EntityRelativeMovePacket.class) diff --git a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java index 1fdcbb6..26d4931 100644 --- a/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java +++ b/proto125_netty/src/main/java/mc/core/network/proto_125/netty/PacketHandler.java @@ -285,4 +285,11 @@ public class PacketHandler extends SimpleChannelInboundHandler { packet.getMessage() ); } + + private void onAnimationPacket(Channel channel, AnimationPacket packet) { + Player player = channel.attr(ATTR_PLAYER).get(); + playerManager.getPlayers().stream().filter(pl -> !pl.equals(player)).forEach(pl -> { + pl.getChannel().writeAndFlush(packet); + }); + } }