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); + }); + } }