#pragma once #include "Packet.h" class MovePlayerPacket : public Packet, public std::enable_shared_from_this { public: class PosRot; class Pos; class Rot; double x, y, z, yView; float yRot, xRot; bool onGround; bool hasPos, hasRot; bool isFlying; // 4J Added MovePlayerPacket(); MovePlayerPacket(bool onGround, bool isFlying); virtual void handle(PacketListener* listener); virtual void read(DataInputStream* dis); virtual void write(DataOutputStream* dos); virtual int getEstimatedSize(); virtual bool canBeInvalidated(); virtual bool isInvalidatedBy(std::shared_ptr packet); public: static std::shared_ptr create() { return std::shared_ptr(new MovePlayerPacket()); } virtual int getId() { return 10; } }; class MovePlayerPacket::PosRot : public MovePlayerPacket { public: PosRot(); PosRot(double x, double y, double yView, double z, float yRot, float xRot, bool onGround, bool isFlying); virtual void read(DataInputStream* dis); virtual void write(DataOutputStream* dos); virtual int getEstimatedSize(); public: static std::shared_ptr create() { return std::shared_ptr(new MovePlayerPacket::PosRot()); } virtual int getId() { return 13; } }; class MovePlayerPacket::Pos : public MovePlayerPacket { public: Pos(); Pos(double x, double y, double yView, double z, bool onGround, bool isFlying); virtual void read(DataInputStream* dis); virtual void write(DataOutputStream* dos); virtual int getEstimatedSize(); public: static std::shared_ptr create() { return std::shared_ptr(new MovePlayerPacket::Pos()); } virtual int getId() { return 11; } }; class MovePlayerPacket::Rot : public MovePlayerPacket { public: Rot(); Rot(float yRot, float xRot, bool onGround, bool isFlying); virtual void read(DataInputStream* dis); virtual void write(DataOutputStream* dos); virtual int getEstimatedSize(); public: static std::shared_ptr create() { return std::shared_ptr(new MovePlayerPacket::Rot()); } virtual int getId() { return 12; } };