Skip to content

Commit b40d882

Browse files
committed
Limit un-added event logging (#4466)
Only throw an error once per second to prevent flooding.
1 parent 02bc654 commit b40d882

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

Server/mods/deathmatch/logic/CGame.cpp

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
#define DEFAULT_AIRCRAFT_MAXHEIGHT 800
8888
#define DEFAULT_AIRCRAFT_MAXVELOCITY 1.5f
8989
#define DEFAULT_MINUTE_DURATION 1000
90+
#define NUM_CLIENT_EVENT_ERROR_GAP 1000
9091

9192
#ifndef WIN32
9293
#include <limits.h>
@@ -2673,15 +2674,22 @@ void CGame::Packet_LuaEvent(CLuaEventPacket& Packet)
26732674
}
26742675

26752676
}
2676-
else
2677+
else
2678+
{
2679+
// Limit this error to prevent debug / log files being flooded.
2680+
static std::uint64_t s_lastClientEventErrorLog = 0;
2681+
auto now = GetTickCount64_();
2682+
if (now - s_lastClientEventErrorLog > NUM_CLIENT_EVENT_ERROR_GAP)
26772683
{
26782684
CLuaArguments arguments;
26792685
arguments.PushString(szName);
26802686
arguments.PushBoolean(false);
26812687
arguments.PushBoolean(false);
26822688
pCaller->CallEvent("onPlayerTriggerInvalidEvent", arguments);
26832689
m_pScriptDebugging->LogError(NULL, "Client (%s) triggered serverside event %s, but event is not added serverside", pCaller->GetNick(), szName);
2690+
s_lastClientEventErrorLog = now;
26842691
}
2692+
}
26852693

26862694
RegisterClientTriggeredEventUsage(pCaller, szName);
26872695
}

0 commit comments

Comments
 (0)