From 7e6eb4ed4bb88557979aa475db0a27a782536c4a Mon Sep 17 00:00:00 2001 From: Jackz Date: Tue, 10 Dec 2024 11:57:02 -0600 Subject: [PATCH] Update adminpanel, socket inc --- plugins/adminpanel.smx | Bin 29884 -> 30513 bytes scripting/adminpanel.sp | 82 ++++++++++++++++++++++++++++++----- scripting/include/socket.inc | 2 +- 3 files changed, 73 insertions(+), 11 deletions(-) diff --git a/plugins/adminpanel.smx b/plugins/adminpanel.smx index 21258e4fdbae794dc8c051c69e876b992f338776..db4a92271af69e370266d31e63fc8db83e95c387 100644 GIT binary patch literal 30513 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 Yd;Lhcfg+_h&!vra6b{27X~Q%B2Xs!zegFUf diff --git a/scripting/adminpanel.sp b/scripting/adminpanel.sp index 26ff6e7..8af26e3 100644 --- a/scripting/adminpanel.sp +++ b/scripting/adminpanel.sp @@ -62,6 +62,10 @@ int pendingAuthTries = 3; Socket g_socket; int g_lastPayloadSent; + +char gameVersion[32]; +int gameAppId; + enum AuthState { Auth_Fail = -1, Auth_Inactive, @@ -81,7 +85,8 @@ enum GameState { State_None, State_Transitioning = 1, State_Hibernating = 2, - State_NewGame = 3 + State_NewGame = 3, + State_EndGame = 4 } enum PanelSettings { Setting_None = 0, @@ -172,6 +177,8 @@ public void OnPluginStart() { CommandArgRegex = new Regex("(?:[^\\s\"]+|\"[^\"]*\")+", 0); CreateTimer(300.0, Timer_FullSync, _, TIMER_REPEAT); + + FindGameVersion(); } bool ConnectDB() { char error[255]; @@ -225,6 +232,7 @@ void SetupUserInDB(int client) { void DBCT_PanelUser(Database db, DBResultSet results, const char[] error, int userId) { if(db == null || results == null) { LogError("DBCT_Insert returned error: %s", error); + return; } int client = GetClientOfUserId(userId); if(client > 0) { @@ -252,6 +260,7 @@ void DBCT_CheckUserName(Database db, DBResultSet results, const char[] error, in if(results.FetchRow()) { if(nameCache[client][0] == '\0') { LogError("DBCT_CheckUserName user %N(#%d) missing namecache", client, userId); + return; } char prevName[64]; results.FetchString(0, prevName, sizeof(prevName)); @@ -599,7 +608,7 @@ public void L4D_OnServerHibernationUpdate(bool hibernating) { if(hibernating) { g_gameState = State_Hibernating; PrintToServer("[AdminPanel] Server is hibernating, disconnecting from socket"); - hibernateTimer = CreateTimer(30.0, Timer_Wake, 0, TIMER_REPEAT); + // hibernateTimer = CreateTimer(30.0, Timer_Wake, 0, TIMER_REPEAT); } else { g_gameState = State_None; PrintToServer("[AdminPanel] Server is not hibernating"); @@ -649,13 +658,20 @@ Action Timer_Reconnect(Handle h, int type) { } bool ConnectSocket(bool force = false, int authTry = 0) { - if(g_socket == null) LogError("Socket is invalid"); + if(g_gameState == State_Hibernating) return false; // ignore when hibernating + if(g_socket == null) { + LogError("Socket is invalid"); + return false; + } if(g_socket.Connected) { Debug("Already connected, disconnecting..."); g_socket.Disconnect(); authState = Auth_Inactive; } - if(authToken[0] == '\0') LogError("ConnectSocket() called with no auth token"); + if(authToken[0] == '\0') { + LogError("ConnectSocket() called with no auth token"); + return false; + } // Do not try to reconnect on auth failure, until token has changed if(!force && authState == Auth_Fail) return false; authState = Auth_Pending; @@ -787,7 +803,17 @@ void Event_GameStart(Event event, const char[] name, bool dontBroadcast) { } void Event_GameEnd(Event event, const char[] name, bool dontBroadcast) { campaignStartTime = 0; - CreateTimer(10.0, Timer_FullSync); + g_gameState = State_EndGame; + if(StartPayload(true)) { + AddGameRecord(); + int stage = L4D2_GetCurrentFinaleStage(); + if(stage != 0) + AddFinaleRecord(stage); + SendPayload(); + + // Resend all players + SendPlayers(); + } } void Event_MapTransition(Event event, const char[] name, bool dontBroadcast) { @@ -1239,6 +1265,7 @@ bool pendingRecord; void StartPayloadEx() { if(pendingRecord) { LogError("StartPayloadEx called before EndRecord()"); + return; } sendBuffer.Reset(); hasRecord = false; @@ -1252,6 +1279,7 @@ void StartPayloadEx() { void StartRecord(LiveRecordType type) { if(pendingRecord) { LogError("StartRecord called before EndRecord()"); + return; } if(hasRecord) { sendBuffer.WriteChar('\x1e'); @@ -1329,7 +1357,10 @@ void AddSurvivorRecord(int client) { if(isL4D1Survivors) { survivor += 4; } - if(survivor >= 8) LogError("invalid survivor %d", survivor); + if(survivor >= 8) { + LogError("invalid survivor %d", survivor); + return; + } StartRecord(Live_Survivor); sendBuffer.WriteInt(userid); @@ -1387,11 +1418,14 @@ void AddCommandResponseRecord(int id, CommandResultType resultType = Result_None void AddAuthRecord() { if(authToken[0] == '\0') { LogError("AddAuthRecord called with missing auth token"); + return; } StartRecord(Live_Auth); sendBuffer.WriteByte(LIVESTATUS_VERSION); sendBuffer.WriteString(authToken); - sendBuffer.WriteInt(cvar_hostPort.IntValue); + sendBuffer.WriteShort(cvar_hostPort.IntValue); + sendBuffer.WriteString(gameVersion); + // gameAppId? EndRecord(); } @@ -1452,7 +1486,7 @@ enum struct Buffer { void WriteByteAt(int value, int offset) { this.buffer[offset] = value & 0xFF; - } + } void WriteShort(int value) { this.buffer[this.offset++] = value & 0xFF; @@ -1462,7 +1496,7 @@ enum struct Buffer { void WriteShortAt(int value, int offset) { this.buffer[offset] = value & 0xFF; this.buffer[offset+1] = (value >> 8) & 0xFF; - } + } void WriteInt(int value) { this.WriteIntAt(value, this.offset); @@ -1474,7 +1508,7 @@ enum struct Buffer { this.buffer[offset+1] = (value >> 8) & 0xFF; this.buffer[offset+2] = (value >> 16) & 0xFF; this.buffer[offset+3] = (value >> 24) & 0xFF; - } + } void WriteFloat(float value) { this.WriteInt(view_as(value)); @@ -1537,4 +1571,32 @@ int GetMaxPlayers() { if(cvar_visibleMaxPlayers != null && cvar_visibleMaxPlayers.IntValue > 0) return cvar_visibleMaxPlayers.IntValue; if(cvar_maxplayers != null) return cvar_maxplayers.IntValue; return L4D_IsVersusMode() ? 8 : 4; +} + +void FindGameVersion() { + char path[PLATFORM_MAX_PATH]; + File file = OpenFile("steam.inf", "r"); + if (file == null) { + LogError("Could not open steam.inf file to get game version"); + return; + } + + char line[255]; + while (!IsEndOfFile(file) && file.ReadLine(line, sizeof(line))) { + TrimString(line); + if (StrContains(line, "appID=") != -1) + { + ReplaceString(line, sizeof(line), "appID=", ""); + ReplaceString(line, sizeof(line), ".", ""); + gameAppId = StringToInt(line); + } + else if (StrContains(line, "PatchVersion=") != -1) + { + ReplaceString(line, sizeof(line), "PatchVersion=", ""); + ReplaceString(line, sizeof(line), ".", ""); + strcopy(gameVersion, sizeof(gameVersion), line); + } + } + + delete file; } \ No newline at end of file diff --git a/scripting/include/socket.inc b/scripting/include/socket.inc index 0ece628..a7408aa 100644 --- a/scripting/include/socket.inc +++ b/scripting/include/socket.inc @@ -665,4 +665,4 @@ public void __ext_socket_SetNTVOptional() MarkNativeAsOptional("SocketSetArg"); MarkNativeAsOptional("SocketGetHostName"); } -#endif +#endif \ No newline at end of file