Skip to content

Commit 3753190

Browse files
author
Poggu
committed
add sender to event logger
1 parent dc4a5dd commit 3753190

File tree

4 files changed

+64
-8
lines changed

4 files changed

+64
-8
lines changed

src/cs2_sdk/serversideclient.h

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
#pragma once
2+
3+
#include "playerslot.h"
4+
#include "steam/steamclientpublic.h"
5+
#include "utlstring.h"
6+
#include "inetchannel.h"
7+
8+
class INetworkMessageProcessingPreFilter
9+
{
10+
public:
11+
virtual void FilterMessage() = 0;
12+
13+
INetChannel* GetNetChannel() const { return m_NetChannel; }
14+
CPlayerSlot GetPlayerSlot() const { return m_nClientSlot; }
15+
CPlayerUserId GetUserID() const { return m_UserID; }
16+
int GetSignonState() const { return m_nSignonState; }
17+
CSteamID* GetClientSteamID() const { return (CSteamID*)&m_SteamID; }
18+
const char* GetClientName() const { return m_Name.Get(); }
19+
netadr_t* GetRemoteAddress() const { return (netadr_t*)&m_NetAdr; }
20+
21+
private:
22+
[[maybe_unused]] char pad1[0x40];
23+
#ifdef __linux__
24+
[[maybe_unused]] char pad2[0x10];
25+
#endif
26+
INetChannel* m_NetChannel; // 80 | 96
27+
[[maybe_unused]] char pad3[0x4];
28+
int32 m_nSignonState; // 92 | 108
29+
[[maybe_unused]] char pad4[0x38];
30+
bool m_bFakePlayer; // 152 | 168
31+
[[maybe_unused]] char pad5[0x7];
32+
CPlayerUserId m_UserID; // 160 | 176
33+
[[maybe_unused]] char pad6[0x1];
34+
CSteamID m_SteamID; // 163 | 179
35+
[[maybe_unused]] char pad7[0x25];
36+
CPlayerSlot m_nClientSlot; // 208 | 224
37+
CEntityIndex m_nEntityIndex; // 212 | 228
38+
CUtlString m_Name; // 216 | 232
39+
[[maybe_unused]] char pad8[0x20];
40+
netadr_t m_NetAdr; // 256 | 272
41+
[[maybe_unused]] char pad9[0x40];
42+
int m_nDeltaTick; // 332 | 348
43+
};

src/extension.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include "../protobufs/generated/usercmd.pb.h"
3939
#include "../protobufs/generated/cs_usercmd.pb.h"
4040
#include "networksystem/inetworkmessages.h"
41+
#include "cs2_sdk/serversideclient.h"
4142

4243
#ifdef _WIN32
4344
#define ROOTBIN "/bin/win64/"
@@ -50,7 +51,7 @@
5051
CS2ServerGUI g_CS2ServerGUI;
5152
std::thread g_thread;
5253

53-
typedef bool (*FilterMessage_t)(void* player, INetworkSerializable* pEvent, void* pData, void* pNetChan);
54+
typedef bool (*FilterMessage_t)(INetworkMessageProcessingPreFilter* player, INetworkSerializable* pEvent, void* pData, void* pNetChan);
5455
FilterMessage_t g_pFilterMessage = nullptr;
5556
funchook_t* g_pHook = nullptr;
5657

@@ -127,8 +128,11 @@ bool ReadPBFromBuffer(bf_read& buffer, T& pb)
127128
return true;
128129
}
129130

130-
bool Detour_FilterMessage(void* player, INetworkSerializable* pEvent, void* pData, void* pNetChan)
131+
bool Detour_FilterMessage(INetworkMessageProcessingPreFilter* player, INetworkSerializable* pEvent, void* pData, void* pNetChan)
131132
{
133+
if(!GUI::g_GUICtx.m_WindowStates.m_bEventLogger)
134+
return g_pFilterMessage(player, pEvent, pData, pNetChan);
135+
132136
NetMessageInfo_t* info = pEvent->GetNetMessageInfo();
133137
if (info)
134138
{
@@ -144,7 +148,7 @@ bool Detour_FilterMessage(void* player, INetworkSerializable* pEvent, void* pDat
144148
{
145149
CSGOUserCmdPB userCmd;
146150
if (ReadPBFromBuffer(buffer, userCmd))
147-
GUI::EventLogger::AddEventLog(std::string(info->m_pBinding->GetName()), std::string(userCmd.DebugString().c_str()), true);
151+
GUI::EventLogger::AddEventLog(std::string(info->m_pBinding->GetName()), std::string(userCmd.DebugString().c_str()), true, std::string(player->GetClientName()));
148152
}
149153
}
150154
}
@@ -153,7 +157,7 @@ bool Detour_FilterMessage(void* player, INetworkSerializable* pEvent, void* pDat
153157
CUtlString str;
154158
info->m_pBinding->ToString(pData, str);
155159

156-
GUI::EventLogger::AddEventLog(std::string(info->m_pBinding->GetName()), std::string(str.String()), true);
160+
GUI::EventLogger::AddEventLog(std::string(info->m_pBinding->GetName()), std::string(str.String()), true, std::string(player->GetClientName()));
157161
}
158162
}
159163

src/imgui/panels/eventlogger/eventlogger.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ struct EventLog
1313
{
1414
std::string name;
1515
std::string data;
16+
std::string senderName;
1617
bool ingress;
1718
};
1819

@@ -22,13 +23,13 @@ static size_t globalId = 0;
2223
static size_t selectedId = -1;
2324
static bool paused = false;
2425

25-
void AddEventLog(std::string&& name, std::string&& data, bool ingress)
26+
void AddEventLog(std::string&& name, std::string&& data, bool ingress, std::string&& senderName)
2627
{
2728
if(paused)
2829
return;
2930

3031
std::lock_guard<std::mutex> lock(eventLogLock);
31-
vecEventLogs[globalId++] = { std::move(name), std::move(data), ingress };
32+
vecEventLogs[globalId++] = { std::move(name), std::move(data),senderName, ingress };
3233

3334
if(vecEventLogs.size() > 500)
3435
vecEventLogs.erase(vecEventLogs.begin());
@@ -46,9 +47,11 @@ void DrawTable(bool ingress)
4647

4748
logFilter.Draw("Search");
4849

49-
if (ImGui::BeginTable("Event Table", 1))
50+
if (ImGui::BeginTable("Event Table", ingress ? 2 : 1))
5051
{
5152
ImGui::TableSetupColumn("Name");
53+
if (ingress)
54+
ImGui::TableSetupColumn("Sender");
5255
ImGui::TableHeadersRow();
5356

5457
size_t i = vecEventLogs.size() - 1;
@@ -74,6 +77,12 @@ void DrawTable(bool ingress)
7477
selectedId = rit->first;
7578
}
7679
ImGui::PopID();
80+
81+
if (ingress)
82+
{
83+
ImGui::TableNextColumn();
84+
ImGui::Text(event.senderName.c_str());
85+
}
7786
}
7887
}
7988

src/imgui/panels/eventlogger/eventlogger.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace GUI::EventLogger
44
{
55

6-
void AddEventLog(std::string&& name, std::string&& data, bool ingress);
6+
void AddEventLog(std::string&& name, std::string&& data, bool ingress, std::string&& senderName = "");
77
void Draw(bool* isOpen);
88

99
} // namespace GUI::EventLogger

0 commit comments

Comments
 (0)