#pragma once #include "Packet.h" class DisconnectPacket : public Packet, public std::enable_shared_from_this { public: enum eDisconnectReason { eDisconnect_None = 0, eDisconnect_Quitting, eDisconnect_Closed, eDisconnect_LoginTooLong, eDisconnect_IllegalStance, eDisconnect_IllegalPosition, eDisconnect_MovedTooQuickly, eDisconnect_NoFlying, eDisconnect_Kicked, eDisconnect_TimeOut, eDisconnect_Overflow, eDisconnect_EndOfStream, eDisconnect_ServerFull, eDisconnect_OutdatedServer, eDisconnect_OutdatedClient, eDisconnect_UnexpectedPacket, eDisconnect_ConnectionCreationFailed, eDisconnect_NoMultiplayerPrivilegesHost, eDisconnect_NoMultiplayerPrivilegesJoin, eDisconnect_NoUGC_AllLocal, eDisconnect_NoUGC_Single_Local, eDisconnect_ContentRestricted_AllLocal, eDisconnect_ContentRestricted_Single_Local, eDisconnect_NoUGC_Remote, eDisconnect_NoFriendsInGame, eDisconnect_Banned, eDisconnect_NotFriendsWithHost, eDisconnect_NATMismatch, }; // 4J Stu - The reason was a string, but we need to send a non-locale // specific reason eDisconnectReason reason; DisconnectPacket(); DisconnectPacket(eDisconnectReason reason); virtual void read(DataInputStream* dis); virtual void write(DataOutputStream* dos); virtual void handle(PacketListener* listener); virtual int getEstimatedSize(); virtual bool canBeInvalidated(); virtual bool isInvalidatedBy(std::shared_ptr packet); public: static std::shared_ptr create() { return std::shared_ptr(new DisconnectPacket()); } virtual int getId() { return 255; } };