diff options
| author | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
|---|---|---|
| committer | daoge_cmd <3523206925@qq.com> | 2026-03-01 12:16:08 +0800 |
| commit | b691c43c44ff180d10e7d4a9afc83b98551ff586 (patch) | |
| tree | 3e9849222cbc6ba49f2f1fc6e5fe7179632c7390 /Minecraft.World/DisconnectPacket.h | |
| parent | def8cb415354ac390b7e89052a50605285f1aca9 (diff) | |
Initial commit
Diffstat (limited to 'Minecraft.World/DisconnectPacket.h')
| -rw-r--r-- | Minecraft.World/DisconnectPacket.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/Minecraft.World/DisconnectPacket.h b/Minecraft.World/DisconnectPacket.h new file mode 100644 index 00000000..34983754 --- /dev/null +++ b/Minecraft.World/DisconnectPacket.h @@ -0,0 +1,73 @@ +#pragma once +using namespace std; + +#include "Packet.h" + +class DisconnectPacket : public Packet, public enable_shared_from_this<DisconnectPacket> +{ +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, +#ifndef __PS3__ + eDisconnect_NoUGC_Remote, +#endif + + eDisconnect_NoFriendsInGame, + eDisconnect_Banned, + eDisconnect_NotFriendsWithHost, + eDisconnect_NATMismatch, +#ifdef __ORBIS__ + eDisconnect_NetworkError, +#endif +#ifdef _XBOX_ONE + eDisconnect_ExitedGame, +#endif + }; + + // 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(shared_ptr<Packet> packet); + +public: + static shared_ptr<Packet> create() { return shared_ptr<Packet>(new DisconnectPacket()); } + virtual int getId() { return 255; } +}; + + |
