From b691c43c44ff180d10e7d4a9afc83b98551ff586 Mon Sep 17 00:00:00 2001 From: daoge_cmd <3523206925@qq.com> Date: Sun, 1 Mar 2026 12:16:08 +0800 Subject: Initial commit --- Minecraft.World/DisconnectPacket.h | 73 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 Minecraft.World/DisconnectPacket.h (limited to 'Minecraft.World/DisconnectPacket.h') 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 +{ +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); + +public: + static shared_ptr create() { return shared_ptr(new DisconnectPacket()); } + virtual int getId() { return 255; } +}; + + -- cgit v1.2.3