Update 1.2.6a

- Added server_id
- Added immunity
This commit is contained in:
Dawid Bepierszcz
2024-01-08 22:29:36 +01:00
parent cfe79109a8
commit dd5e72e873
6 changed files with 97 additions and 42 deletions

View File

@@ -43,7 +43,7 @@ namespace CS2_SimpleAdmin
}
*/
public async Task<List<object>> GetAdminFlags(string steamId)
public async Task<List<(List<string>, int)>> GetAdminFlags(string steamId)
{
/* Unused for now
if (_adminCache.TryGetValue(steamId, out ConcurrentBag<string>? cachedFlags))
@@ -56,14 +56,17 @@ namespace CS2_SimpleAdmin
await using var connection = _dbConnection;
await connection.OpenAsync();
string sql = "SELECT flags, ends FROM sa_admins WHERE player_steamid = @PlayerSteamID AND (ends IS NULL OR ends > @CurrentTime)";
List<dynamic>? activeFlags = (await connection.QueryAsync(sql, new { PlayerSteamID = steamId, CurrentTime = now }))?.ToList();
string sql = "SELECT flags, immunity, ends FROM sa_admins WHERE player_steamid = @PlayerSteamID AND (ends IS NULL OR ends > @CurrentTime) AND (server_id IS NULL OR server_id = @serverid)";
List<dynamic>? activeFlags = (await connection.QueryAsync(sql, new { PlayerSteamID = steamId, CurrentTime = now, serverid = CS2_SimpleAdmin.ServerId }))?.ToList();
if (activeFlags == null)
{
return new List<object>();
return new List<(List<string>, int)>();
}
List<(List<string>, int)> filteredFlagsWithImmunity = new List<(List<string>, int)>();
/*
List<string> filteredFlags = new List<string>();
foreach (var flags in activeFlags)
@@ -76,6 +79,30 @@ namespace CS2_SimpleAdmin
filteredFlags.Add(flag);
}
}
*/
foreach (dynamic flags in activeFlags)
{
if (flags is not IDictionary<string, object> flagsDict)
{
continue;
}
if (!flagsDict.TryGetValue("flags", out var flagsValueObj) || !flagsDict.TryGetValue("immunity", out var immunityValueObj))
{
continue;
}
if (!(flagsValueObj is string flagsValue) || !int.TryParse(immunityValueObj.ToString(), out var immunityValue))
{
continue;
}
//Console.WriteLine($"Flags: {flagsValue}, Immunity: {immunityValue}");
filteredFlagsWithImmunity.Add((flagsValue.Split(',').ToList(), immunityValue));
}
/* Unused for now
bool shouldCache = activeFlags.Any(flags =>
@@ -117,8 +144,8 @@ namespace CS2_SimpleAdmin
return flagsToCache.Cast<object>().ToList();
}
*/
return filteredFlags.Cast<object>().ToList();
return filteredFlagsWithImmunity;
//return filteredFlags.Cast<object>().ToList();
}
public async Task DeleteAdminBySteamId(string playerSteamId)