mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-02-17 18:39:07 +00:00
1.4.5a
- Added `ReloadAdminsEveryMapChange` - Reloading sql admins on map start - Ability to use any valid steamid instead of steamid64 - Fixed chat commands when gagged - Votes now respect `UseChatMenu` config setting
This commit is contained in:
@@ -37,7 +37,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
|
|||||||
public override string ModuleName => "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)");
|
public override string ModuleName => "CS2-SimpleAdmin" + (Helper.IsDebugBuild ? " (DEBUG)" : " (RELEASE)");
|
||||||
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.4.4b";
|
public override string ModuleVersion => "1.4.5a";
|
||||||
|
|
||||||
public CS2_SimpleAdminConfig Config { get; set; } = new();
|
public CS2_SimpleAdminConfig Config { get; set; } = new();
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.228" />
|
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.239" />
|
||||||
<PackageReference Include="Dapper" Version="2.1.35" />
|
<PackageReference Include="Dapper" Version="2.1.35" />
|
||||||
<PackageReference Include="Discord.Net.Webhook" Version="3.14.1" />
|
<PackageReference Include="Discord.Net.Webhook" Version="3.14.1" />
|
||||||
<PackageReference Include="MySqlConnector" Version="2.3.7" />
|
<PackageReference Include="MySqlConnector" Version="2.3.7" />
|
||||||
|
|||||||
@@ -151,14 +151,15 @@ namespace CS2_SimpleAdmin
|
|||||||
return;
|
return;
|
||||||
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
||||||
|
|
||||||
var steamid = command.GetArg(1);
|
|
||||||
|
|
||||||
if (!Helper.IsValidSteamId64(steamid))
|
if (!Helper.ValidateSteamId(command.GetArg(1), out var steamId) || steamId == null)
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid SteamID64.");
|
command.ReplyToCommand($"Invalid SteamID64.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var steamid = steamId.SteamId64.ToString();
|
||||||
|
|
||||||
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
||||||
|
|
||||||
int.TryParse(command.GetArg(2), out var time);
|
int.TryParse(command.GetArg(2), out var time);
|
||||||
|
|||||||
@@ -97,12 +97,16 @@ namespace CS2_SimpleAdmin
|
|||||||
public void OnAddAdminCommand(CCSPlayerController? caller, CommandInfo command)
|
public void OnAddAdminCommand(CCSPlayerController? caller, CommandInfo command)
|
||||||
{
|
{
|
||||||
if (_database == null) return;
|
if (_database == null) return;
|
||||||
|
|
||||||
if (!Helper.IsValidSteamId64(command.GetArg(1)))
|
|
||||||
|
if (!Helper.ValidateSteamId(command.GetArg(1), out var steamId) || steamId == null)
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid SteamID64.");
|
command.ReplyToCommand($"Invalid SteamID64.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var steamid = steamId.SteamId64.ToString();
|
||||||
|
|
||||||
if (command.GetArg(2).Length <= 0)
|
if (command.GetArg(2).Length <= 0)
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid player name.");
|
command.ReplyToCommand($"Invalid player name.");
|
||||||
@@ -114,7 +118,6 @@ namespace CS2_SimpleAdmin
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var steamid = command.GetArg(1);
|
|
||||||
var name = command.GetArg(2);
|
var name = command.GetArg(2);
|
||||||
var flags = command.GetArg(3);
|
var flags = command.GetArg(3);
|
||||||
var globalAdmin = command.GetArg(4).ToLower().Equals("-g") || command.GetArg(5).ToLower().Equals("-g") ||
|
var globalAdmin = command.GetArg(4).ToLower().Equals("-g") || command.GetArg(5).ToLower().Equals("-g") ||
|
||||||
@@ -153,16 +156,15 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
if (_database == null) return;
|
if (_database == null) return;
|
||||||
|
|
||||||
if (!Helper.IsValidSteamId64(command.GetArg(1)))
|
if (!Helper.ValidateSteamId(command.GetArg(1), out var steamId) || steamId == null)
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid SteamID64.");
|
command.ReplyToCommand($"Invalid SteamID64.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var steamid = command.GetArg(1);
|
|
||||||
var globalDelete = command.GetArg(2).ToLower().Equals("-g");
|
var globalDelete = command.GetArg(2).ToLower().Equals("-g");
|
||||||
|
|
||||||
RemoveAdmin(caller, steamid, globalDelete, command);
|
RemoveAdmin(caller, steamId.SteamId64.ToString(), globalDelete, command);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveAdmin(CCSPlayerController? caller, string steamid, bool globalDelete = false, CommandInfo? command = null)
|
public void RemoveAdmin(CCSPlayerController? caller, string steamid, bool globalDelete = false, CommandInfo? command = null)
|
||||||
@@ -534,13 +536,12 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
public void Kick(CCSPlayerController? caller, CCSPlayerController? player, string? reason = "Unknown", string? callerName = null, CommandInfo? command = null)
|
public void Kick(CCSPlayerController? caller, CCSPlayerController? player, string? reason = "Unknown", string? callerName = null, CommandInfo? command = null)
|
||||||
{
|
{
|
||||||
|
if (player == null || !player.IsValid) return;
|
||||||
|
|
||||||
callerName ??= caller == null ? "Console" : caller.PlayerName;
|
callerName ??= caller == null ? "Console" : caller.PlayerName;
|
||||||
if (player != null && player.PawnIsAlive)
|
|
||||||
{
|
|
||||||
player.Pawn.Value!.Freeze();
|
|
||||||
}
|
|
||||||
|
|
||||||
reason ??= _localizer?["sa_unknown"] ?? "Unknown";
|
reason ??= _localizer?["sa_unknown"] ?? "Unknown";
|
||||||
|
|
||||||
|
player.Pawn.Value!.Freeze();
|
||||||
|
|
||||||
if (command != null)
|
if (command != null)
|
||||||
Helper.SendDiscordLogMessage(caller, command, DiscordWebhookClientLog, _localizer);
|
Helper.SendDiscordLogMessage(caller, command, DiscordWebhookClientLog, _localizer);
|
||||||
@@ -548,7 +549,7 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (string.IsNullOrEmpty(reason) == false)
|
if (string.IsNullOrEmpty(reason) == false)
|
||||||
{
|
{
|
||||||
if (player != null && !player.IsBot && !player.IsHLTV)
|
if (player != null && !player.IsBot)
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
player.PrintToCenter(_localizer!["sa_player_kick_message", reason, caller == null ? "Console" : caller.PlayerName]);
|
player.PrintToCenter(_localizer!["sa_player_kick_message", reason, caller == null ? "Console" : caller.PlayerName]);
|
||||||
|
|||||||
@@ -141,14 +141,14 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
||||||
|
|
||||||
var steamid = command.GetArg(1);
|
if (!Helper.ValidateSteamId(command.GetArg(1), out var steamId) || steamId == null)
|
||||||
|
|
||||||
if (!Helper.IsValidSteamId64(steamid))
|
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid SteamID64.");
|
command.ReplyToCommand($"Invalid SteamID64.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var steamid = steamId.SteamId64.ToString();
|
||||||
|
|
||||||
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
||||||
|
|
||||||
MuteManager muteManager = new(_database);
|
MuteManager muteManager = new(_database);
|
||||||
@@ -265,10 +265,10 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
var pattern = command.GetArg(1);
|
var pattern = command.GetArg(1);
|
||||||
MuteManager muteManager = new(_database);
|
MuteManager muteManager = new(_database);
|
||||||
|
|
||||||
if (Helper.IsValidSteamId64(pattern))
|
if (Helper.ValidateSteamId(pattern, out var steamId) && steamId != null)
|
||||||
{
|
{
|
||||||
var matches = Helper.GetPlayerFromSteamid64(pattern);
|
var matches = Helper.GetPlayerFromSteamid64(steamId.SteamId64.ToString());
|
||||||
if (matches.Count == 1)
|
if (matches.Count == 1)
|
||||||
{
|
{
|
||||||
var player = matches.FirstOrDefault();
|
var player = matches.FirstOrDefault();
|
||||||
@@ -474,16 +474,17 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (command.ArgCount < 2)
|
if (command.ArgCount < 2)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
||||||
|
|
||||||
var steamid = command.GetArg(1);
|
if (!Helper.ValidateSteamId(command.GetArg(1), out var steamId) || steamId == null)
|
||||||
|
|
||||||
if (!Helper.IsValidSteamId64(steamid))
|
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid SteamID64.");
|
command.ReplyToCommand($"Invalid SteamID64.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var steamid = steamId.SteamId64.ToString();
|
||||||
|
|
||||||
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
||||||
|
|
||||||
MuteManager muteManager = new(_database);
|
MuteManager muteManager = new(_database);
|
||||||
@@ -595,9 +596,9 @@ namespace CS2_SimpleAdmin
|
|||||||
var found = false;
|
var found = false;
|
||||||
MuteManager muteManager = new(_database);
|
MuteManager muteManager = new(_database);
|
||||||
|
|
||||||
if (Helper.IsValidSteamId64(pattern))
|
if (Helper.ValidateSteamId(pattern, out var steamId) && steamId != null)
|
||||||
{
|
{
|
||||||
var matches = Helper.GetPlayerFromSteamid64(pattern);
|
var matches = Helper.GetPlayerFromSteamid64(steamId.SteamId64.ToString());
|
||||||
if (matches.Count == 1)
|
if (matches.Count == 1)
|
||||||
{
|
{
|
||||||
var player = matches.FirstOrDefault();
|
var player = matches.FirstOrDefault();
|
||||||
@@ -735,7 +736,7 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (time == 0)
|
if (time == 0)
|
||||||
{
|
{
|
||||||
if (!player.IsBot && !player.IsHLTV)
|
if (!player.IsBot)
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
@@ -780,12 +781,11 @@ namespace CS2_SimpleAdmin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (command != null)
|
if (command == null) return;
|
||||||
{
|
|
||||||
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Mute, DiscordWebhookClientPenalty, _localizer);
|
Helper.SendDiscordPenaltyMessage(caller, player, reason, time, Helper.PenaltyType.Mute, DiscordWebhookClientPenalty, _localizer);
|
||||||
Helper.SendDiscordLogMessage(caller, command, DiscordWebhookClientLog, _localizer);
|
Helper.SendDiscordLogMessage(caller, command, DiscordWebhookClientLog, _localizer);
|
||||||
Helper.LogCommand(caller, command);
|
Helper.LogCommand(caller, command);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[ConsoleCommand("css_addsilence")]
|
[ConsoleCommand("css_addsilence")]
|
||||||
@@ -800,14 +800,14 @@ namespace CS2_SimpleAdmin
|
|||||||
return;
|
return;
|
||||||
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
if (string.IsNullOrEmpty(command.GetArg(1))) return;
|
||||||
|
|
||||||
var steamid = command.GetArg(1);
|
if (!Helper.ValidateSteamId(command.GetArg(1), out var steamId) || steamId == null)
|
||||||
|
|
||||||
if (!Helper.IsValidSteamId64(steamid))
|
|
||||||
{
|
{
|
||||||
command.ReplyToCommand($"Invalid SteamID64.");
|
command.ReplyToCommand($"Invalid SteamID64.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var steamid = steamId.SteamId64.ToString();
|
||||||
|
|
||||||
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
||||||
|
|
||||||
MuteManager muteManager = new(_database);
|
MuteManager muteManager = new(_database);
|
||||||
@@ -843,7 +843,7 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (time == 0)
|
if (time == 0)
|
||||||
{
|
{
|
||||||
if (!player.IsBot && !player.IsHLTV)
|
if (player is { IsBot: false, IsHLTV: false })
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
player.PrintToCenter(_localizer!["sa_player_silence_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
|
player.PrintToCenter(_localizer!["sa_player_silence_message_perm", reason, caller == null ? "Console" : caller.PlayerName]);
|
||||||
@@ -863,7 +863,7 @@ namespace CS2_SimpleAdmin
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!player.IsBot && !player.IsHLTV)
|
if (player is { IsBot: false, IsHLTV: false })
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
player.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
|
player.PrintToCenter(_localizer!["sa_player_silence_message_time", reason, time, caller == null ? "Console" : caller.PlayerName]);
|
||||||
@@ -921,9 +921,9 @@ namespace CS2_SimpleAdmin
|
|||||||
var found = false;
|
var found = false;
|
||||||
MuteManager muteManager = new(_database);
|
MuteManager muteManager = new(_database);
|
||||||
|
|
||||||
if (Helper.IsValidSteamId64(pattern))
|
if (Helper.ValidateSteamId(pattern, out var steamId) && steamId != null)
|
||||||
{
|
{
|
||||||
var matches = Helper.GetPlayerFromSteamid64(pattern);
|
var matches = Helper.GetPlayerFromSteamid64(steamId.SteamId64.ToString());
|
||||||
if (matches.Count == 1)
|
if (matches.Count == 1)
|
||||||
{
|
{
|
||||||
var player = matches.FirstOrDefault();
|
var player = matches.FirstOrDefault();
|
||||||
|
|||||||
@@ -37,7 +37,10 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
using (new WithTemporaryCulture(player.GetLanguage()))
|
||||||
{
|
{
|
||||||
ChatMenu voteMenu = new(_localizer!["sa_admin_vote_menu_title", question]);
|
BaseMenu voteMenu = Config.UseChatMenu
|
||||||
|
? new ChatMenu(_localizer!["sa_admin_vote_menu_title", question])
|
||||||
|
: new CenterHtmlMenu(_localizer!["sa_admin_vote_menu_title", question], Instance);
|
||||||
|
//ChatMenu voteMenu = new(_localizer!["sa_admin_vote_menu_title", question]);
|
||||||
|
|
||||||
for (var i = 2; i <= answersCount - 1; i++)
|
for (var i = 2; i <= answersCount - 1; i++)
|
||||||
{
|
{
|
||||||
@@ -50,8 +53,10 @@ namespace CS2_SimpleAdmin
|
|||||||
StringBuilder sb = new(_localizer["sa_prefix"]);
|
StringBuilder sb = new(_localizer["sa_prefix"]);
|
||||||
sb.Append(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
|
sb.Append(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
|
||||||
player.PrintToChat(sb.ToString());
|
player.PrintToChat(sb.ToString());
|
||||||
|
|
||||||
MenuManager.OpenChatMenu(player, voteMenu);
|
voteMenu.OpenToAll();
|
||||||
|
|
||||||
|
//MenuManager.OpenChatMenu(player, voteMenu);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -129,6 +129,9 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
[JsonPropertyName("EnableMetrics")]
|
[JsonPropertyName("EnableMetrics")]
|
||||||
public bool EnableMetrics { get; set; } = true;
|
public bool EnableMetrics { get; set; } = true;
|
||||||
|
|
||||||
|
[JsonPropertyName("ReloadAdminsEveryMapChange")]
|
||||||
|
public bool ReloadAdminsEveryMapChange { get; set; } = false;
|
||||||
|
|
||||||
[JsonPropertyName("UseChatMenu")]
|
[JsonPropertyName("UseChatMenu")]
|
||||||
public bool UseChatMenu { get; set; } = false;
|
public bool UseChatMenu { get; set; } = false;
|
||||||
@@ -160,10 +163,10 @@ namespace CS2_SimpleAdmin
|
|||||||
public Discord Discord { get; set; } = new();
|
public Discord Discord { get; set; } = new();
|
||||||
|
|
||||||
[JsonPropertyName("DefaultMaps")]
|
[JsonPropertyName("DefaultMaps")]
|
||||||
public List<string> DefaultMaps { get; set; } = [];
|
public List<string> DefaultMaps { get; set; } = new();
|
||||||
|
|
||||||
[JsonPropertyName("WorkshopMaps")]
|
[JsonPropertyName("WorkshopMaps")]
|
||||||
public List<string> WorkshopMaps { get; set; } = [];
|
public List<string> WorkshopMaps { get; set; } = new();
|
||||||
|
|
||||||
[JsonPropertyName("CustomServerCommands")]
|
[JsonPropertyName("CustomServerCommands")]
|
||||||
public List<CustomServerCommandData> CustomServerCommands { get; set; } = new();
|
public List<CustomServerCommandData> CustomServerCommands { get; set; } = new();
|
||||||
|
|||||||
17
Events.cs
17
Events.cs
@@ -205,8 +205,11 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
public HookResult OnCommandSay(CCSPlayerController? player, CommandInfo info)
|
public HookResult OnCommandSay(CCSPlayerController? player, CommandInfo info)
|
||||||
{
|
{
|
||||||
if (player is null || !player.IsValid || player.IsBot || player.IsHLTV || info.GetArg(1).StartsWith($"/")
|
if (player is null || !player.IsValid || player.IsBot || player.IsHLTV)
|
||||||
|| info.GetArg(1).StartsWith($"!") && info.GetArg(1).Length >= 12)
|
return HookResult.Continue;
|
||||||
|
|
||||||
|
if (info.GetArg(1).StartsWith($"/")
|
||||||
|
|| info.GetArg(1).StartsWith($"!"))
|
||||||
return HookResult.Continue;
|
return HookResult.Continue;
|
||||||
|
|
||||||
if (info.GetArg(1).Length == 0)
|
if (info.GetArg(1).Length == 0)
|
||||||
@@ -220,8 +223,11 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
public HookResult OnCommandTeamSay(CCSPlayerController? player, CommandInfo info)
|
public HookResult OnCommandTeamSay(CCSPlayerController? player, CommandInfo info)
|
||||||
{
|
{
|
||||||
if (player is null || !player.IsValid || player.IsBot || player.IsHLTV || info.GetArg(1).StartsWith($"/")
|
if (player is null || !player.IsValid || player.IsBot || player.IsHLTV )
|
||||||
|| info.GetArg(1).StartsWith($"!") && info.GetArg(1).Length >= 12)
|
return HookResult.Continue;
|
||||||
|
|
||||||
|
if (info.GetArg(1).StartsWith($"/")
|
||||||
|
|| info.GetArg(1).StartsWith($"!"))
|
||||||
return HookResult.Continue;
|
return HookResult.Continue;
|
||||||
|
|
||||||
if (info.GetArg(1).Length == 0)
|
if (info.GetArg(1).Length == 0)
|
||||||
@@ -257,6 +263,9 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
public void OnMapStart(string mapName)
|
public void OnMapStart(string mapName)
|
||||||
{
|
{
|
||||||
|
if (Config.ReloadAdminsEveryMapChange)
|
||||||
|
AddTimer(3.0f, () => ReloadAdmins(null));
|
||||||
|
|
||||||
var path = Path.GetDirectoryName(ModuleDirectory);
|
var path = Path.GetDirectoryName(ModuleDirectory);
|
||||||
if (Directory.Exists(path + "/CS2-Tags"))
|
if (Directory.Exists(path + "/CS2-Tags"))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -24,12 +24,12 @@ public static class PlayerExtensions
|
|||||||
|
|
||||||
public static bool CanTarget(this CCSPlayerController? controller, CCSPlayerController? target)
|
public static bool CanTarget(this CCSPlayerController? controller, CCSPlayerController? target)
|
||||||
{
|
{
|
||||||
if (target != null && target.IsBot) return true;
|
if (controller is null || target is null) return true;
|
||||||
if (controller is null) return true;
|
if (target.IsBot) return true;
|
||||||
|
|
||||||
return target != null && (AdminManager.CanPlayerTarget(controller, target) ||
|
return AdminManager.CanPlayerTarget(controller, target) ||
|
||||||
AdminManager.CanPlayerTarget(new SteamID(controller.SteamID),
|
AdminManager.CanPlayerTarget(new SteamID(controller.SteamID),
|
||||||
new SteamID(target.SteamID)));
|
new SteamID(target.SteamID));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetSpeed(this CCSPlayerController? controller, float speed)
|
public static void SetSpeed(this CCSPlayerController? controller, float speed)
|
||||||
|
|||||||
15
Helper.cs
15
Helper.cs
@@ -75,6 +75,21 @@ namespace CS2_SimpleAdmin
|
|||||||
const string pattern = @"^\d{17}$";
|
const string pattern = @"^\d{17}$";
|
||||||
return Regex.IsMatch(input, pattern);
|
return Regex.IsMatch(input, pattern);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool ValidateSteamId(string input, out SteamID? steamId)
|
||||||
|
{
|
||||||
|
steamId = null;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(input))
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!SteamID.TryParse(input, out var parsedSteamId)) return false;
|
||||||
|
|
||||||
|
steamId = parsedSteamId;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public static bool IsValidIp(string input)
|
public static bool IsValidIp(string input)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ using Microsoft.Extensions.Logging;
|
|||||||
using MySqlConnector;
|
using MySqlConnector;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System.Collections.Concurrent;
|
using System.Collections.Concurrent;
|
||||||
|
using Serilog.Core;
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin;
|
namespace CS2_SimpleAdmin;
|
||||||
|
|
||||||
@@ -134,8 +135,9 @@ public class PermissionManager(Database.Database database)
|
|||||||
|
|
||||||
return filteredFlagsWithImmunity;
|
return filteredFlagsWithImmunity;
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
|
CS2_SimpleAdmin._logger?.LogError(ex.ToString());
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -249,7 +251,10 @@ public class PermissionManager(Database.Database database)
|
|||||||
|
|
||||||
return groupInfoDictionary;
|
return groupInfoDictionary;
|
||||||
}
|
}
|
||||||
catch { }
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
CS2_SimpleAdmin._logger?.LogError(ex.ToString());
|
||||||
|
}
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
@@ -388,7 +393,10 @@ public class PermissionManager(Database.Database database)
|
|||||||
|
|
||||||
await connection.ExecuteAsync(sql, new { PlayerSteamID = playerSteamId, CS2_SimpleAdmin.ServerId });
|
await connection.ExecuteAsync(sql, new { PlayerSteamID = playerSteamId, CS2_SimpleAdmin.ServerId });
|
||||||
}
|
}
|
||||||
catch { };
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
CS2_SimpleAdmin._logger?.LogError(ex.ToString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task AddAdminBySteamId(string playerSteamId, string playerName, List<string> flagsList, int immunity = 0, int time = 0, bool globalAdmin = false)
|
public async Task AddAdminBySteamId(string playerSteamId, string playerName, List<string> flagsList, int immunity = 0, int time = 0, bool globalAdmin = false)
|
||||||
@@ -457,7 +465,7 @@ public class PermissionManager(Database.Database database)
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine(ex.ToString());
|
CS2_SimpleAdmin._logger?.LogError(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -503,7 +511,7 @@ public class PermissionManager(Database.Database database)
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine(ex.ToString());
|
CS2_SimpleAdmin._logger?.LogError(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -519,7 +527,7 @@ public class PermissionManager(Database.Database database)
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Console.WriteLine(ex.ToString());
|
CS2_SimpleAdmin._logger?.LogError(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@ namespace CS2_SimpleAdmin.Menus
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
var enabled = admin.CanTarget(player);
|
var enabled = admin.CanTarget(player);
|
||||||
|
|
||||||
if (optionName != null)
|
if (optionName != null)
|
||||||
menu.AddMenuOption(optionName, (_, _) =>
|
menu.AddMenuOption(optionName, (_, _) =>
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user