- Fixed ban checking
- Small changes
- Updated css
This commit is contained in:
Dawid Bepierszcz
2024-03-09 12:06:50 +01:00
parent 2ab2f9c4dc
commit 525905194c
10 changed files with 62 additions and 45 deletions

View File

@@ -12,7 +12,7 @@ using System.Collections.Concurrent;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
[MinimumApiVersion(178)] [MinimumApiVersion(191)]
public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdminConfig> public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdminConfig>
{ {
public static CS2_SimpleAdmin Instance { get; private set; } = new(); public static CS2_SimpleAdmin Instance { get; private set; } = new();
@@ -38,7 +38,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
public override string ModuleName => "CS2-SimpleAdmin"; public override string ModuleName => "CS2-SimpleAdmin";
public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)"; public override string ModuleDescription => "Simple admin plugin for Counter-Strike 2 :)";
public override string ModuleAuthor => "daffyy & Dliix66"; public override string ModuleAuthor => "daffyy & Dliix66";
public override string ModuleVersion => "1.3.6a"; public override string ModuleVersion => "1.3.6b";
public CS2_SimpleAdminConfig Config { get; set; } = new(); public CS2_SimpleAdminConfig Config { get; set; } = new();

View File

@@ -10,7 +10,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.189" /> <PackageReference Include="CounterStrikeSharp.API" Version="1.0.193" />
<PackageReference Include="Dapper" Version="2.1.35" /> <PackageReference Include="Dapper" Version="2.1.35" />
<PackageReference Include="Discord.Net.Webhook" Version="3.13.1" /> <PackageReference Include="Discord.Net.Webhook" Version="3.13.1" />
<PackageReference Include="MySqlConnector" Version="2.3.5" /> <PackageReference Include="MySqlConnector" Version="2.3.5" />

View File

@@ -358,7 +358,6 @@ namespace CS2_SimpleAdmin
await _muteManager.UnmutePlayer(player.SteamID.ToString(), 0); // Unmute by type 0 (gag) await _muteManager.UnmutePlayer(player.SteamID.ToString(), 0); // Unmute by type 0 (gag)
}); });
if (TagsDetected) if (TagsDetected)
Server.ExecuteCommand($"css_tag_unmute {player!.SteamID}"); Server.ExecuteCommand($"css_tag_unmute {player!.SteamID}");
}); });
@@ -695,7 +694,6 @@ namespace CS2_SimpleAdmin
player.VoiceFlags = VoiceFlags.Normal; player.VoiceFlags = VoiceFlags.Normal;
}); });
*/ */
} }
[ConsoleCommand("css_silence")] [ConsoleCommand("css_silence")]

View File

@@ -16,8 +16,10 @@ namespace CS2_SimpleAdmin
{ {
[JsonPropertyName("Flag")] [JsonPropertyName("Flag")]
public string Flag { get; set; } = "@css/generic"; public string Flag { get; set; } = "@css/generic";
[JsonPropertyName("DisplayName")] [JsonPropertyName("DisplayName")]
public string DisplayName { get; set; } = ""; public string DisplayName { get; set; } = "";
[JsonPropertyName("Command")] [JsonPropertyName("Command")]
public string Command { get; set; } = ""; public string Command { get; set; } = "";
} }

View File

@@ -4,6 +4,7 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Modules.Admin; using CounterStrikeSharp.API.Modules.Admin;
using CounterStrikeSharp.API.Modules.Commands; using CounterStrikeSharp.API.Modules.Commands;
using CounterStrikeSharp.API.Modules.Cvars; using CounterStrikeSharp.API.Modules.Cvars;
using CounterStrikeSharp.API.Modules.Entities;
using Dapper; using Dapper;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
using System.Data; using System.Data;
@@ -17,13 +18,13 @@ public partial class CS2_SimpleAdmin
private void RegisterEvents() private void RegisterEvents()
{ {
RegisterListener<Listeners.OnMapStart>(OnMapStart); RegisterListener<Listeners.OnMapStart>(OnMapStart);
RegisterListener<Listeners.OnClientConnected>(OnClientConnected); //RegisterListener<Listeners.OnClientConnected>(OnClientConnected);
RegisterListener<Listeners.OnClientDisconnectPost>(OnClientDisconnectPost); RegisterListener<Listeners.OnClientDisconnect>(OnClientDisconnect);
AddCommandListener("say", OnCommandSay); AddCommandListener("say", OnCommandSay);
AddCommandListener("say_team", OnCommandTeamSay); AddCommandListener("say_team", OnCommandTeamSay);
} }
private void OnClientDisconnectPost(int playerSlot) private void OnClientDisconnect(int playerSlot)
{ {
CCSPlayerController? player = Utilities.GetPlayerFromSlot(playerSlot); CCSPlayerController? player = Utilities.GetPlayerFromSlot(playerSlot);
@@ -31,7 +32,7 @@ public partial class CS2_SimpleAdmin
Logger.LogCritical("[OnClientDisconnect] Before"); Logger.LogCritical("[OnClientDisconnect] Before");
#endif #endif
if (player is null || player.IsBot || player.IsHLTV || player.SteamID.ToString().Length != 17) return; if (player is null || !player.IsValid || string.IsNullOrEmpty(player.CrosshairCodes) || player.IsBot || player.IsHLTV || !player.UserId.HasValue) return;
#if DEBUG #if DEBUG
Logger.LogCritical("[OnClientDisconnect] After Check"); Logger.LogCritical("[OnClientDisconnect] After Check");
@@ -47,23 +48,40 @@ public partial class CS2_SimpleAdmin
if (godPlayers.Contains(player.Slot)) if (godPlayers.Contains(player.Slot))
RemoveFromConcurrentBag(godPlayers, player.Slot); RemoveFromConcurrentBag(godPlayers, player.Slot);
if (player.AuthorizedSteamID == null) return; SteamID? authorizedSteamID = player.AuthorizedSteamID;
if (AdminSQLManager._adminCache.TryGetValue(player.AuthorizedSteamID, out DateTime? expirationTime) if (authorizedSteamID == null) return;
Task.Run(() =>
{
if (AdminSQLManager._adminCache.TryGetValue(authorizedSteamID, out DateTime? expirationTime)
&& expirationTime <= DateTime.Now) && expirationTime <= DateTime.Now)
{ {
AdminManager.ClearPlayerPermissions(player.AuthorizedSteamID); AdminManager.ClearPlayerPermissions(authorizedSteamID);
AdminManager.RemovePlayerAdminData(player.AuthorizedSteamID); AdminManager.RemovePlayerAdminData(authorizedSteamID);
}
} }
});
private void OnClientConnected(int playerSlot) //if (player.AuthorizedSteamID == null) return;
//if (AdminSQLManager._adminCache.TryGetValue(player.AuthorizedSteamID, out DateTime? expirationTime)
// && expirationTime <= DateTime.Now)
//{
// AdminManager.ClearPlayerPermissions(player.AuthorizedSteamID);
// AdminManager.RemovePlayerAdminData(player.AuthorizedSteamID);
//}
}
[GameEventHandler]
public HookResult OnPlayerFullConnect(EventPlayerConnectFull @event, GameEventInfo info)
{ {
CCSPlayerController? player = Utilities.GetPlayerFromSlot(playerSlot); CCSPlayerController? player = @event.Userid;
#if DEBUG #if DEBUG
Logger.LogCritical($"[OnPlayerConnect] Before check {player.PlayerName} : {player.IpAddress}"); Logger.LogCritical($"[OnPlayerConnect] Before check {player.PlayerName} : {player.IpAddress}");
#endif #endif
if (player is null || player.IsBot || player.IsHLTV || player.SteamID.ToString().Length != 17 || string.IsNullOrEmpty(player.IpAddress)) return; if (player is null || string.IsNullOrEmpty(player.CrosshairCodes)
|| string.IsNullOrEmpty(player.IpAddress)
|| player.IsBot || player.IsHLTV || !player.UserId.HasValue) return HookResult.Continue;
#if DEBUG #if DEBUG
Logger.LogCritical("[OnPlayerConnect] After Check"); Logger.LogCritical("[OnPlayerConnect] After Check");
#endif #endif
@@ -71,13 +89,13 @@ public partial class CS2_SimpleAdmin
if (bannedPlayers.Contains(ipAddress) || bannedPlayers.Contains(player.SteamID.ToString())) if (bannedPlayers.Contains(ipAddress) || bannedPlayers.Contains(player.SteamID.ToString()))
{ {
if (!player.UserId.HasValue) return; if (!player.UserId.HasValue) return HookResult.Continue;
Helper.KickPlayer(player.UserId.Value, "Banned"); Helper.KickPlayer(player.UserId.Value, "Banned");
return; return HookResult.Continue;
} }
if (_database == null || !player.UserId.HasValue || player.UserId == null) if (_database == null || !player.UserId.HasValue || player.UserId == null)
return; return HookResult.Continue;
PlayerInfo playerInfo = new PlayerInfo PlayerInfo playerInfo = new PlayerInfo
{ {
@@ -159,6 +177,8 @@ public partial class CS2_SimpleAdmin
} }
} }
}); });
return HookResult.Continue;
} }
[GameEventHandler] [GameEventHandler]
@@ -224,15 +244,12 @@ public partial class CS2_SimpleAdmin
[GameEventHandler] [GameEventHandler]
public HookResult OnPlayerFullConnect(EventPlayerConnectFull @event, GameEventInfo info) public HookResult OnPlayerFullConnect(EventPlayerConnectFull @event, GameEventInfo info)
{ {
return HookResult.Continue; return HookResult.Continue;
} }
[GameEventHandler] [GameEventHandler]
public HookResult OnPlayerDisconnect(EventPlayerDisconnect @event, GameEventInfo info) public HookResult OnPlayerDisconnect(EventPlayerDisconnect @event, GameEventInfo info)
{ {
return HookResult.Continue; return HookResult.Continue;
} }
*/ */
@@ -273,7 +290,6 @@ public partial class CS2_SimpleAdmin
{ {
try try
{ {
foreach (CCSPlayerController player in Helper.GetValidPlayers()) foreach (CCSPlayerController player in Helper.GetValidPlayers())
{ {
if (playerPenaltyManager.IsSlotInPenalties(player.Slot)) if (playerPenaltyManager.IsSlotInPenalties(player.Slot))

View File

@@ -4,6 +4,7 @@ using Microsoft.Extensions.Logging;
using System.Collections.Concurrent; using System.Collections.Concurrent;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
public class AdminSQLManager public class AdminSQLManager
{ {
private readonly Database _database; private readonly Database _database;

View File

@@ -2,6 +2,7 @@
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
internal class BanManager internal class BanManager
{ {
private readonly Database _database; private readonly Database _database;
@@ -215,7 +216,6 @@ internal class BanManager
await connection.ExecuteAsync(sql, new { ipBansTime }); await connection.ExecuteAsync(sql, new { ipBansTime });
} }
} }
catch (Exception) catch (Exception)
{ {

View File

@@ -2,6 +2,7 @@
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
internal class MuteManager internal class MuteManager
{ {
private readonly Database _database; private readonly Database _database;
@@ -160,5 +161,4 @@ internal class MuteManager
CS2_SimpleAdmin._logger.LogCritical("Unable to remove expired mutes"); CS2_SimpleAdmin._logger.LogCritical("Unable to remove expired mutes");
} }
} }
} }

View File

@@ -1,6 +1,7 @@
using System.Collections.Concurrent; using System.Collections.Concurrent;
namespace CS2_SimpleAdmin; namespace CS2_SimpleAdmin;
public enum PenaltyType public enum PenaltyType
{ {
Mute, Mute,

View File

@@ -47,5 +47,4 @@
"sa_adminchat_template_player": "{SILVER}(GRACZ) {lightred}{0}{default}: {lightred}{1}{default}", "sa_adminchat_template_player": "{SILVER}(GRACZ) {lightred}{0}{default}: {lightred}{1}{default}",
"sa_discord_log_command": "**{0}** użył komendy `{1}` na serwerze `HOSTNAME`" "sa_discord_log_command": "**{0}** użył komendy `{1}` na serwerze `HOSTNAME`"
} }