From 7824ce9d6352664bd291e57a3084e5c51af5d4a6 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Fri, 31 Aug 2012 21:59:57 +0000 Subject: Progress on the 1.3.2 protocol. Sometimes the client lets the player through, but most of the times the connection breaks for no apparent reason. git-svn-id: http://mc-server.googlecode.com/svn/trunk@812 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Protocol132.h | 40 +++++++++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 5 deletions(-) (limited to 'source/Protocol132.h') diff --git a/source/Protocol132.h b/source/Protocol132.h index a0e16b585..2373693b7 100644 --- a/source/Protocol132.h +++ b/source/Protocol132.h @@ -24,28 +24,58 @@ class cProtocol132 : public: cProtocol132(cClientHandle * a_Client); + + // DEBUG: + virtual ~cProtocol132(); /// Called when client sends some data: virtual void DataReceived(const char * a_Data, int a_Size) override; + + // Sending commands: + virtual void SendBlockAction (int a_BlockX, int a_BlockY, int a_BlockZ, char a_Byte1, char a_Byte2, BLOCKTYPE a_BlockType) override; + virtual void SendBlockChange (int a_BlockX, int a_BlockY, int a_BlockZ, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) override; + virtual void SendChunkData (int a_ChunkX, int a_ChunkZ, cChunkDataSerializer & a_Serializer) override; + virtual void SendDestroyEntity(const cEntity & a_Entity) override; + virtual void SendLogin (const cPlayer & a_Player) override; + virtual void SendPlayerSpawn (const cPlayer & a_Player) override; + virtual void SendSpawnMob (const cMonster & a_Mob) override; + virtual void SendUnloadChunk (int a_ChunkX, int a_ChunkZ) override; + + // DEBUG: + virtual void SendKeepAlive (int a_PingID) override; /// Handling of the additional packets: virtual int ParsePacket(unsigned char a_PacketType) override; // Modified packets: - virtual int ParseHandshake(void) override; - virtual int ParseLogin (void) override; + virtual int ParseBlockPlace (void) override; + virtual int ParseHandshake (void) override; + virtual int ParseLogin (void) override; + virtual int ParsePlayerAbilities(void) override; // New packets: virtual int ParseClientStatuses (void); virtual int ParseEncryptionKeyResponse(void); - - virtual void SendData(const char * a_Data, int a_Size); + virtual int ParseLocaleViewDistance (void); protected: bool m_IsEncrypted; - CryptoPP::CFB_Mode::Decryption m_Decryptor; // ((byte*)sDecryptedSharedSecret.c_str(),(unsigned int)16, IV, 1); + CryptoPP::CFB_Mode::Decryption m_Decryptor; CryptoPP::CFB_Mode::Encryption m_Encryptor; + // DEBUG: + AString m_DataToSend; + int m_CurrentIn, m_CurrentOut; + int m_EncIn, m_EncOut; + + virtual void SendData(const char * a_Data, int a_Size) override; + + // DEBUG: + virtual void Flush(void) override; + + // Items in slots are sent differently + virtual void WriteItem(const cItem & a_Item) override; + /// Decrypts the key and nonce, checks nonce, starts the symmetric encryption void HandleEncryptionKeyResponse(const AString & a_EncKey, const AString & a_EncNonce); -- cgit v1.2.3