summaryrefslogtreecommitdiffstats
path: root/ProtoProxy
diff options
context:
space:
mode:
Diffstat (limited to 'ProtoProxy')
-rw-r--r--ProtoProxy/Connection.cpp17
-rw-r--r--ProtoProxy/Connection.h1
2 files changed, 18 insertions, 0 deletions
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);