From 957ef3b2974991ca940fc8a78e518304377d8e6d Mon Sep 17 00:00:00 2001 From: faketruth Date: Thu, 1 Mar 2012 17:07:41 +0000 Subject: Started carefully moving to 1.2.2 Clients can get up to the login packet, after which the server tries to send chunks but in the wrong format and the client disconnects git-svn-id: http://mc-server.googlecode.com/svn/trunk@347 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/packets/cPacket_Login.cpp | 12 ++++++++++++ source/packets/cPacket_Login.h | 13 +++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) (limited to 'source/packets') diff --git a/source/packets/cPacket_Login.cpp b/source/packets/cPacket_Login.cpp index a96d456cc..bbb81ef52 100644 --- a/source/packets/cPacket_Login.cpp +++ b/source/packets/cPacket_Login.cpp @@ -21,10 +21,16 @@ int cPacket_Login::Parse(const char * a_Data, int a_Size) m_Username.clear(); HANDLE_PACKET_READ(ReadInteger, m_ProtocolVersion, TotalBytes); HANDLE_PACKET_READ(ReadString16, m_Username, TotalBytes); +#if (MINECRAFT_1_2_2 != 1 ) HANDLE_PACKET_READ(ReadLong, m_MapSeed, TotalBytes); +#endif HANDLE_PACKET_READ(ReadString16, m_LevelType, TotalBytes); HANDLE_PACKET_READ(ReadInteger, m_ServerMode, TotalBytes); +#if (MINECRAFT_1_2_2 == 1 ) + HANDLE_PACKET_READ(ReadInteger, m_Dimension, TotalBytes); +#else HANDLE_PACKET_READ(ReadByte, m_Dimension, TotalBytes); +#endif HANDLE_PACKET_READ(ReadByte, m_Difficulty, TotalBytes); HANDLE_PACKET_READ(ReadByte, m_WorldHeight, TotalBytes); HANDLE_PACKET_READ(ReadByte, m_MaxPlayers, TotalBytes); @@ -40,10 +46,16 @@ void cPacket_Login::Serialize(AString & a_Data) const AppendByte (a_Data, m_PacketID); AppendInteger (a_Data, m_ProtocolVersion); AppendString16(a_Data, m_Username); +#if (MINECRAFT_1_2_2 != 1 ) AppendLong (a_Data, m_MapSeed); +#endif AppendString16(a_Data, m_LevelType); AppendInteger (a_Data, m_ServerMode); +#if (MINECRAFT_1_2_2 == 1 ) + AppendInteger (a_Data, m_Dimension); +#else AppendByte (a_Data, m_Dimension); +#endif AppendByte (a_Data, m_Difficulty); AppendByte (a_Data, m_WorldHeight); AppendByte (a_Data, m_MaxPlayers); diff --git a/source/packets/cPacket_Login.h b/source/packets/cPacket_Login.h index 364a268eb..7884bbfb1 100644 --- a/source/packets/cPacket_Login.h +++ b/source/packets/cPacket_Login.h @@ -12,7 +12,9 @@ class cPacket_Login : public cPacket //tolua_export public: cPacket_Login() : m_ProtocolVersion( 0 ) +#if (MINECRAFT_1_2_2 != 1) , m_MapSeed( 0 ) +#endif , m_ServerMode( 0 ) , m_Dimension( 0 ) , m_Difficulty( 0 ) @@ -25,12 +27,19 @@ public: virtual int Parse(const char * a_Data, int a_Size) override; virtual void Serialize(AString & a_Data) const override; + // 1.2.2 http://wiki.vg/Protocol#Login_Request_.280x01.29 int m_ProtocolVersion; //tolua_export AString m_Username; //tolua_export - long long m_MapSeed; //tolua_export +#if (MINECRAFT_1_2_2 != 1) + long long m_MapSeed; +#endif AString m_LevelType; //tolua_export int m_ServerMode; //tolua_export - char m_Dimension; //tolua_export +#if (MINECRAFT_1_2_2 == 1 ) + int m_Dimension; +#else + char m_Dimension; +#endif char m_Difficulty; //tolua_export unsigned char m_WorldHeight; //tolua_export unsigned char m_MaxPlayers; //tolua_export -- cgit v1.2.3