diff --git a/ProtoProxy/Connection.cpp b/ProtoProxy/Connection.cpp index 89045568a..219daa504 100644 --- a/ProtoProxy/Connection.cpp +++ b/ProtoProxy/Connection.cpp @@ -512,6 +512,7 @@ bool cConnection::DecodeClientsPackets(const char * a_Data, int a_Size) case PACKET_KEEPALIVE: HANDLE_CLIENT_READ(HandleClientKeepAlive); break; case PACKET_LOCALE_AND_VIEW: HANDLE_CLIENT_READ(HandleClientLocaleAndView); break; case PACKET_PING: HANDLE_CLIENT_READ(HandleClientPing); break; + case PACKET_PLAYER_ABILITIES: HANDLE_CLIENT_READ(HandleClientPlayerAbilities); break; case PACKET_PLAYER_LOOK: HANDLE_CLIENT_READ(HandleClientPlayerLook); break; case PACKET_PLAYER_ON_GROUND: HANDLE_CLIENT_READ(HandleClientPlayerOnGround); break; case PACKET_PLAYER_POSITION: HANDLE_CLIENT_READ(HandleClientPlayerPosition); break; @@ -838,6 +839,22 @@ bool cConnection::HandleClientPing(void) +bool cConnection::HandleClientPlayerAbilities(void) +{ + HANDLE_CLIENT_PACKET_READ(ReadChar, char, IsInvulnerable); + HANDLE_CLIENT_PACKET_READ(ReadChar, char, IsFlying); + HANDLE_CLIENT_PACKET_READ(ReadChar, char, CanFly); + HANDLE_CLIENT_PACKET_READ(ReadChar, char, IsInstaMine); + Log("Receives a PACKET_PLAYER_ABILITIES from the client:"); + Log(" Flags = %d, %d, %d, %d", IsInvulnerable, IsFlying, CanFly, IsInstaMine); + COPY_TO_SERVER(); + return true; +} + + + + + bool cConnection::HandleClientPlayerLook(void) { HANDLE_CLIENT_PACKET_READ(ReadBEFloat, float, Yaw); diff --git a/ProtoProxy/Connection.h b/ProtoProxy/Connection.h index 8fc665b4e..995e45deb 100644 --- a/ProtoProxy/Connection.h +++ b/ProtoProxy/Connection.h @@ -107,6 +107,7 @@ protected: bool HandleClientKeepAlive(void); bool HandleClientLocaleAndView(void); bool HandleClientPing(void); + bool HandleClientPlayerAbilities(void); bool HandleClientPlayerLook(void); bool HandleClientPlayerOnGround(void); bool HandleClientPlayerPosition(void);