mirror of
https://github.com/daffyyyy/CS2-SimpleAdmin.git
synced 2026-02-25 04:42:47 +00:00
1.5.1a
- Possibility to use new line in translations - Improved initializing - More errors logging - Localized Message refactor
This commit is contained in:
@@ -18,6 +18,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
|
|||||||
|
|
||||||
public static IStringLocalizer? _localizer;
|
public static IStringLocalizer? _localizer;
|
||||||
public static readonly Dictionary<string, int> VoteAnswers = [];
|
public static readonly Dictionary<string, int> VoteAnswers = [];
|
||||||
|
private static bool _serverLoaded;
|
||||||
private static readonly HashSet<int> GodPlayers = [];
|
private static readonly HashSet<int> GodPlayers = [];
|
||||||
private static readonly HashSet<int> SilentPlayers = [];
|
private static readonly HashSet<int> SilentPlayers = [];
|
||||||
private static readonly ConcurrentBag<string> BannedPlayers = [];
|
private static readonly ConcurrentBag<string> BannedPlayers = [];
|
||||||
@@ -40,7 +41,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.5.0a";
|
public override string ModuleVersion => "1.5.1a";
|
||||||
|
|
||||||
public CS2_SimpleAdminConfig Config { get; set; } = new();
|
public CS2_SimpleAdminConfig Config { get; set; } = new();
|
||||||
|
|
||||||
@@ -52,6 +53,7 @@ public partial class CS2_SimpleAdmin : BasePlugin, IPluginConfig<CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (hotReload)
|
if (hotReload)
|
||||||
{
|
{
|
||||||
|
_serverLoaded = false;
|
||||||
OnMapStart(string.Empty);
|
OnMapStart(string.Empty);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.246" />
|
<PackageReference Include="CounterStrikeSharp.API" Version="1.0.247" />
|
||||||
<PackageReference Include="Dapper" Version="2.1.35" />
|
<PackageReference Include="Dapper" Version="2.1.35" />
|
||||||
<PackageReference Include="Discord.Net.Webhook" Version="3.15.2" />
|
<PackageReference Include="Discord.Net.Webhook" Version="3.15.2" />
|
||||||
<PackageReference Include="MySqlConnector" Version="2.3.7" />
|
<PackageReference Include="MySqlConnector" Version="2.3.7" />
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ using CounterStrikeSharp.API.Core.Translations;
|
|||||||
using CounterStrikeSharp.API.Modules.Admin;
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Commands;
|
using CounterStrikeSharp.API.Modules.Commands;
|
||||||
using CounterStrikeSharp.API.Modules.Entities;
|
using CounterStrikeSharp.API.Modules.Entities;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin
|
namespace CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
@@ -105,12 +104,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_ban_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_ban_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -125,12 +124,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_ban_message_time",
|
||||||
sb.Append(_localizer["sa_admin_ban_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -211,12 +211,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_ban_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_ban_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -232,12 +232,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_ban_message_time",
|
||||||
sb.Append(_localizer["sa_admin_ban_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -325,12 +326,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_ban_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_ban_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -345,12 +346,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_ban_message_time",
|
||||||
sb.Append(_localizer["sa_admin_ban_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,14 +25,13 @@ namespace CS2_SimpleAdmin
|
|||||||
var utf8String = Encoding.UTF8.GetString(utf8BytesString);
|
var utf8String = Encoding.UTF8.GetString(utf8BytesString);
|
||||||
|
|
||||||
foreach (var player in Helper.GetValidPlayers()
|
foreach (var player in Helper.GetValidPlayers()
|
||||||
.Where(p => AdminManager.PlayerHasPermissions(p, "@css/chat")))
|
.Where(p => AdminManager.PlayerHasPermissions(p, "@css/chat")))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
player.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new();
|
"sa_adminchat_template_admin",
|
||||||
sb.Append(_localizer!["sa_adminchat_template_admin", caller == null ? "Console" : caller.PlayerName, utf8String]);
|
caller == null ? "Console" : caller.PlayerName,
|
||||||
player.PrintToChat(sb.ToString());
|
utf8String);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -51,12 +50,10 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
foreach (var player in Helper.GetValidPlayers())
|
foreach (var player in Helper.GetValidPlayers())
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
player.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new();
|
"sa_adminsay_prefix",
|
||||||
sb.Append(_localizer!["sa_adminsay_prefix", utf8String]);
|
utf8String);
|
||||||
player.PrintToChat(sb.ToString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ using CounterStrikeSharp.API.Modules.Utils;
|
|||||||
using CS2_SimpleAdmin.Menus;
|
using CS2_SimpleAdmin.Menus;
|
||||||
using Microsoft.Extensions.Logging;
|
using Microsoft.Extensions.Logging;
|
||||||
using Newtonsoft.Json;
|
using Newtonsoft.Json;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin
|
namespace CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
@@ -321,11 +320,17 @@ namespace CS2_SimpleAdmin
|
|||||||
await adminManager.CrateGroupsJsonFile();
|
await adminManager.CrateGroupsJsonFile();
|
||||||
await adminManager.CreateAdminsJsonFile();
|
await adminManager.CreateAdminsJsonFile();
|
||||||
|
|
||||||
|
var adminsFile = await File.ReadAllTextAsync(Instance.ModuleDirectory + "/data/admins.json") ?? "";
|
||||||
|
var groupsFile = await File.ReadAllTextAsync(Instance.ModuleDirectory + "/data/groups.json") ?? "";
|
||||||
|
|
||||||
await Server.NextFrameAsync(() =>
|
await Server.NextFrameAsync(() =>
|
||||||
{
|
{
|
||||||
AdminManager.LoadAdminData(ModuleDirectory + "/data/admins.json");
|
if (!string.IsNullOrEmpty(adminsFile))
|
||||||
AddTimer(1.0f, () => AdminManager.LoadAdminGroups(ModuleDirectory + "/data/groups.json"));
|
AddTimer(0.5f, () => AdminManager.LoadAdminData(ModuleDirectory + "/data/admins.json"));
|
||||||
AddTimer(1.5f, () => AdminManager.LoadAdminData(ModuleDirectory + "/data/admins.json"));
|
if (!string.IsNullOrEmpty(groupsFile))
|
||||||
|
AddTimer(1.0f, () => AdminManager.LoadAdminGroups(ModuleDirectory + "/data/groups.json"));
|
||||||
|
if (!string.IsNullOrEmpty(adminsFile))
|
||||||
|
AddTimer(1.5f, () => AdminManager.LoadAdminData(ModuleDirectory + "/data/admins.json"));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -567,13 +572,12 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && (caller.UserId == null || SilentPlayers.Contains(caller.Slot))) return;
|
if (caller != null && (caller.UserId == null || SilentPlayers.Contains(caller.Slot))) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
|
if (_localizer != null)
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
controller.SendLocalizedMessage(_localizer,
|
||||||
{
|
"sa_admin_kick_message",
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
callerName,
|
||||||
sb.Append(_localizer["sa_admin_kick_message", callerName, player?.PlayerName ?? string.Empty, reason]);
|
player?.PlayerName ?? string.Empty,
|
||||||
controller.PrintToChat(sb.ToString());
|
reason);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -626,12 +630,11 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var player in Helper.GetValidPlayers())
|
foreach (var player in Helper.GetValidPlayers())
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
player.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_changemap_message",
|
||||||
sb.Append(_localizer["sa_admin_changemap_message", caller == null ? "Console" : caller.PlayerName, map]);
|
caller == null ? "Console" : caller.PlayerName,
|
||||||
player.PrintToChat(sb.ToString());
|
map);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -661,12 +664,11 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var player in Helper.GetValidPlayers())
|
foreach (var player in Helper.GetValidPlayers())
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
player.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_changemap_message",
|
||||||
sb.Append(_localizer["sa_admin_changemap_message", caller == null ? "Console" : caller.PlayerName, map]);
|
caller == null ? "Console" : caller.PlayerName,
|
||||||
player.PrintToChat(sb.ToString());
|
map);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using CounterStrikeSharp.API.Core.Attributes.Registration;
|
|||||||
using CounterStrikeSharp.API.Core.Translations;
|
using CounterStrikeSharp.API.Core.Translations;
|
||||||
using CounterStrikeSharp.API.Modules.Admin;
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Commands;
|
using CounterStrikeSharp.API.Modules.Commands;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin
|
namespace CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
@@ -91,12 +90,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_gag_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_gag_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -114,12 +113,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_gag_message_time",
|
||||||
sb.Append(_localizer["sa_admin_gag_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -191,12 +191,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_gag_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_gag_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -212,12 +212,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_gag_message_time",
|
||||||
sb.Append(_localizer["sa_admin_gag_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -430,12 +431,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_mute_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_mute_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -450,12 +451,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_mute_message_time",
|
||||||
sb.Append(_localizer["sa_admin_mute_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -530,12 +532,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_mute_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_mute_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -550,12 +552,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_mute_message_time",
|
||||||
sb.Append(_localizer["sa_admin_mute_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -679,7 +682,7 @@ namespace CS2_SimpleAdmin
|
|||||||
if (_database == null) return;
|
if (_database == null) return;
|
||||||
var callerName = caller == null ? "Console" : caller.PlayerName;
|
var callerName = caller == null ? "Console" : caller.PlayerName;
|
||||||
|
|
||||||
var reason = CS2_SimpleAdmin._localizer?["sa_unknown"] ?? "Unknown";
|
var reason = _localizer?["sa_unknown"] ?? "Unknown";
|
||||||
|
|
||||||
var targets = GetTarget(command);
|
var targets = GetTarget(command);
|
||||||
if (targets == null) return;
|
if (targets == null) return;
|
||||||
@@ -754,12 +757,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_silence_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_silence_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -777,12 +780,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_silence_message_time",
|
||||||
sb.Append(_localizer["sa_admin_silence_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -858,12 +862,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_silence_message_perm",
|
||||||
sb.Append(_localizer["sa_admin_silence_message_perm", callerName, player.PlayerName, reason]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -878,12 +882,13 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_silence_message_time",
|
||||||
sb.Append(_localizer["sa_admin_silence_message_time", callerName, player.PlayerName, reason, time]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName,
|
||||||
}
|
reason,
|
||||||
|
time);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ using CounterStrikeSharp.API.Core.Translations;
|
|||||||
using CounterStrikeSharp.API.Modules.Admin;
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Commands;
|
using CounterStrikeSharp.API.Modules.Commands;
|
||||||
using CounterStrikeSharp.API.Modules.Menu;
|
using CounterStrikeSharp.API.Modules.Menu;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin
|
namespace CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
@@ -50,9 +49,12 @@ namespace CS2_SimpleAdmin
|
|||||||
voteMenu.PostSelectAction = PostSelectAction.Close;
|
voteMenu.PostSelectAction = PostSelectAction.Close;
|
||||||
|
|
||||||
Helper.PrintToCenterAll(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
|
Helper.PrintToCenterAll(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
|
||||||
StringBuilder sb = new(_localizer["sa_prefix"]);
|
|
||||||
sb.Append(_localizer["sa_admin_vote_message", caller == null ? "Console" : caller.PlayerName, question]);
|
if (_localizer != null)
|
||||||
player.PrintToChat(sb.ToString());
|
player.SendLocalizedMessage(_localizer,
|
||||||
|
"sa_admin_vote_message",
|
||||||
|
caller == null ? "Console" : caller.PlayerName,
|
||||||
|
question);
|
||||||
|
|
||||||
voteMenu.Open(player);
|
voteMenu.Open(player);
|
||||||
|
|
||||||
@@ -69,24 +71,21 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var player in Helper.GetValidPlayers())
|
foreach (var player in Helper.GetValidPlayers())
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
player.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_vote_message_results",
|
||||||
sb.Append(_localizer["sa_admin_vote_message_results", question]);
|
question);
|
||||||
player.PrintToChat(sb.ToString());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (var (key, value) in VoteAnswers)
|
foreach (var (key, value) in VoteAnswers)
|
||||||
{
|
{
|
||||||
foreach (var player in Helper.GetValidPlayers())
|
foreach (var player in Helper.GetValidPlayers())
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(player.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
player.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_vote_message_results_answer",
|
||||||
sb.Append(_localizer["sa_admin_vote_message_results_answer", key, value]);
|
key,
|
||||||
player.PrintToChat(sb.ToString());
|
value);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
VoteAnswers.Clear();
|
VoteAnswers.Clear();
|
||||||
|
|||||||
@@ -1,9 +1,7 @@
|
|||||||
using CounterStrikeSharp.API.Core;
|
using CounterStrikeSharp.API.Core;
|
||||||
using CounterStrikeSharp.API.Core.Attributes.Registration;
|
using CounterStrikeSharp.API.Core.Attributes.Registration;
|
||||||
using CounterStrikeSharp.API.Core.Translations;
|
|
||||||
using CounterStrikeSharp.API.Modules.Admin;
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Commands;
|
using CounterStrikeSharp.API.Modules.Commands;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin
|
namespace CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
@@ -45,12 +43,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_noclip_message",
|
||||||
sb.Append(_localizer["sa_admin_noclip_message", callerName, player.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -93,12 +90,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_freeze_message",
|
||||||
sb.Append(_localizer["sa_admin_freeze_message", callerName, player?.PlayerName ?? string.Empty]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,12 +132,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_unfreeze_message",
|
||||||
sb.Append(_localizer["sa_admin_unfreeze_message", callerName, player.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
using CounterStrikeSharp.API.Core;
|
using CounterStrikeSharp.API.Core;
|
||||||
using CounterStrikeSharp.API.Core.Attributes.Registration;
|
using CounterStrikeSharp.API.Core.Attributes.Registration;
|
||||||
using CounterStrikeSharp.API.Core.Translations;
|
|
||||||
using CounterStrikeSharp.API.Modules.Admin;
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Commands;
|
using CounterStrikeSharp.API.Modules.Commands;
|
||||||
using CounterStrikeSharp.API.Modules.Entities.Constants;
|
using CounterStrikeSharp.API.Modules.Entities.Constants;
|
||||||
using CounterStrikeSharp.API.Modules.Memory;
|
using CounterStrikeSharp.API.Modules.Memory;
|
||||||
using CounterStrikeSharp.API.Modules.Utils;
|
using CounterStrikeSharp.API.Modules.Utils;
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
namespace CS2_SimpleAdmin
|
namespace CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
@@ -49,12 +47,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_slay_message",
|
||||||
sb.Append(_localizer["sa_admin_slay_message", callerName, player?.PlayerName ?? string.Empty]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -136,12 +133,12 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && (SilentPlayers.Contains(caller.Slot))) return;
|
if (caller != null && (SilentPlayers.Contains(caller.Slot))) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_give_message",
|
||||||
sb.Append(_localizer["sa_admin_give_message", callerName, player.PlayerName, weaponName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty,
|
||||||
}
|
weaponName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -185,12 +182,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_strip_message",
|
||||||
sb.Append(_localizer["sa_admin_strip_message", callerName, player?.PlayerName ?? string.Empty]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -235,12 +231,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_hp_message",
|
||||||
sb.Append(_localizer["sa_admin_hp_message", callerName, player?.PlayerName ?? string.Empty]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,12 +281,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_speed_message",
|
||||||
sb.Append(_localizer["sa_admin_speed_message", callerName, player!.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -339,12 +333,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_gravity_message",
|
||||||
sb.Append(_localizer["sa_admin_gravity_message", callerName, player!.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -390,12 +383,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_money_message",
|
||||||
sb.Append(_localizer["sa_admin_money_message", callerName, player!.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,12 +439,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_god_message",
|
||||||
sb.Append(_localizer["sa_admin_god_message", callerName, player.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -506,12 +497,11 @@ namespace CS2_SimpleAdmin
|
|||||||
|
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer["sa_prefix"]);
|
"sa_admin_slap_message",
|
||||||
sb.Append(_localizer["sa_admin_slap_message", callerName, player.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -600,12 +590,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_team_message",
|
||||||
sb.Append(_localizer["sa_admin_team_message", callerName, player?.PlayerName ?? string.Empty, teamName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty,
|
||||||
}
|
teamName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -642,12 +632,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_rename_message",
|
||||||
sb.Append(_localizer["sa_admin_rename_message", callerName, player.PlayerName, newName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty,
|
||||||
}
|
newName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -680,12 +670,12 @@ namespace CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_rename_message",
|
||||||
sb.Append(_localizer["sa_admin_rename_message", callerName, player.PlayerName, newName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty,
|
||||||
}
|
newName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -747,12 +737,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
if (caller != null && SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_respawn_message",
|
||||||
sb.Append(_localizer["sa_admin_respawn_message", callerName, player.PlayerName]);
|
callerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player?.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -792,12 +781,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (SilentPlayers.Contains(caller.Slot)) return;
|
if (SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_tp_message",
|
||||||
sb.Append(_localizer["sa_admin_tp_message", caller.PlayerName, player.PlayerName]);
|
caller.PlayerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -837,12 +825,11 @@ namespace CS2_SimpleAdmin
|
|||||||
if (SilentPlayers.Contains(caller.Slot)) return;
|
if (SilentPlayers.Contains(caller.Slot)) return;
|
||||||
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
foreach (var controller in Helper.GetValidPlayers().Where(controller => controller is { IsValid: true, IsBot: false }))
|
||||||
{
|
{
|
||||||
using (new WithTemporaryCulture(controller.GetLanguage()))
|
if (_localizer != null)
|
||||||
{
|
controller.SendLocalizedMessage(_localizer,
|
||||||
StringBuilder sb = new(_localizer!["sa_prefix"]);
|
"sa_admin_bring_message",
|
||||||
sb.Append(_localizer["sa_admin_bring_message", caller.PlayerName, player.PlayerName]);
|
caller.PlayerName,
|
||||||
controller.PrintToChat(sb.ToString());
|
player.PlayerName ?? string.Empty);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,7 @@ public class Database(string dbConnectionString)
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
if (CS2_SimpleAdmin._logger != null)
|
CS2_SimpleAdmin._logger?.LogCritical($"Unable to connect to database: {ex.Message}");
|
||||||
CS2_SimpleAdmin._logger.LogCritical($"Unable to connect to database: {ex.Message}");
|
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
110
Events.cs
110
Events.cs
@@ -12,6 +12,8 @@ namespace CS2_SimpleAdmin;
|
|||||||
|
|
||||||
public partial class CS2_SimpleAdmin
|
public partial class CS2_SimpleAdmin
|
||||||
{
|
{
|
||||||
|
private int _getIpTryCount = 0;
|
||||||
|
|
||||||
private void RegisterEvents()
|
private void RegisterEvents()
|
||||||
{
|
{
|
||||||
RegisterListener<Listeners.OnMapStart>(OnMapStart);
|
RegisterListener<Listeners.OnMapStart>(OnMapStart);
|
||||||
@@ -22,9 +24,9 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
private void OnGameServerSteamAPIActivated()
|
private void OnGameServerSteamAPIActivated()
|
||||||
{
|
{
|
||||||
AddTimer(3.0f, () =>
|
AddTimer(2.0f, () =>
|
||||||
{
|
{
|
||||||
if (ServerId != null || _database == null) return;
|
if (_serverLoaded || ServerId != null || _database == null) return;
|
||||||
|
|
||||||
var ipAddress = ConVar.Find("ip")?.StringValue;
|
var ipAddress = ConVar.Find("ip")?.StringValue;
|
||||||
|
|
||||||
@@ -35,10 +37,16 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (string.IsNullOrEmpty(ipAddress) || ipAddress.StartsWith("0.0.0"))
|
if (string.IsNullOrEmpty(ipAddress) || ipAddress.StartsWith("0.0.0"))
|
||||||
{
|
{
|
||||||
OnGameServerSteamAPIActivated();
|
if (_getIpTryCount < 12)
|
||||||
return;
|
{
|
||||||
|
_getIpTryCount++;
|
||||||
|
OnGameServerSteamAPIActivated();
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_getIpTryCount = 0;
|
||||||
|
|
||||||
var address = $"{ipAddress}:{ConVar.Find("hostport")?.GetPrimitiveValue<int>()}";
|
var address = $"{ipAddress}:{ConVar.Find("hostport")?.GetPrimitiveValue<int>()}";
|
||||||
var hostname = ConVar.Find("hostname")!.StringValue;
|
var hostname = ConVar.Find("hostname")!.StringValue;
|
||||||
|
|
||||||
@@ -72,9 +80,10 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
if (ServerId != null)
|
if (ServerId != null)
|
||||||
{
|
{
|
||||||
Server.NextFrame(() => ReloadAdmins(null));
|
await Server.NextFrameAsync(() => ReloadAdmins(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_serverLoaded = true;
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -186,8 +195,10 @@ public partial class CS2_SimpleAdmin
|
|||||||
{
|
{
|
||||||
await using var connection = await _database.GetConnectionAsync();
|
await using var connection = await _database.GetConnectionAsync();
|
||||||
|
|
||||||
const string query = @"INSERT IGNORE INTO `sa_players_ips` (steamid, address)
|
const string query = """
|
||||||
VALUES (@SteamID, @IPAddress)";
|
INSERT INTO `sa_players_ips` (steamid, address)
|
||||||
|
VALUES (@SteamID, @IPAddress) ON DUPLICATE KEY UPDATE `used_at` = CURRENT_TIMESTAMP
|
||||||
|
""";
|
||||||
|
|
||||||
await connection.ExecuteAsync(query, new
|
await connection.ExecuteAsync(query, new
|
||||||
{
|
{
|
||||||
@@ -361,8 +372,8 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
public void OnMapStart(string mapName)
|
public void OnMapStart(string mapName)
|
||||||
{
|
{
|
||||||
if (Config.ReloadAdminsEveryMapChange && ServerId != null)
|
if (Config.ReloadAdminsEveryMapChange && _serverLoaded && ServerId != null)
|
||||||
AddTimer(2.0f, () => ReloadAdmins(null));
|
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"))
|
||||||
@@ -377,72 +388,6 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
_database = new Database.Database(_dbConnectionString);
|
_database = new Database.Database(_dbConnectionString);
|
||||||
|
|
||||||
/*
|
|
||||||
AddTimer(2f, () =>
|
|
||||||
{
|
|
||||||
if (ServerId != null) return;
|
|
||||||
|
|
||||||
var ipAddress = ConVar.Find("ip")?.StringValue;
|
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(ipAddress) || ipAddress.StartsWith("0.0.0"))
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
ipAddress = Helper.GetServerIp();
|
|
||||||
}
|
|
||||||
|
|
||||||
var address = $"{ipAddress}:{ConVar.Find("hostport")?.GetPrimitiveValue<int>()}";
|
|
||||||
var hostname = ConVar.Find("hostname")!.StringValue;
|
|
||||||
|
|
||||||
Task.Run(async () =>
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await using var connection = await _database.GetConnectionAsync();
|
|
||||||
var addressExists = await connection.ExecuteScalarAsync<bool>(
|
|
||||||
"SELECT COUNT(*) FROM sa_servers WHERE address = @address",
|
|
||||||
new { address });
|
|
||||||
|
|
||||||
if (!addressExists)
|
|
||||||
{
|
|
||||||
await connection.ExecuteAsync(
|
|
||||||
"INSERT INTO sa_servers (address, hostname) VALUES (@address, @hostname)",
|
|
||||||
new { address, hostname });
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
await connection.ExecuteAsync(
|
|
||||||
"UPDATE `sa_servers` SET `hostname` = @hostname, `id` = `id` WHERE `address` = @address",
|
|
||||||
new { address, hostname });
|
|
||||||
}
|
|
||||||
|
|
||||||
int? serverId = await connection.ExecuteScalarAsync<int>(
|
|
||||||
"SELECT `id` FROM `sa_servers` WHERE `address` = @address",
|
|
||||||
new { address });
|
|
||||||
|
|
||||||
ServerId = serverId;
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_logger?.LogCritical("Unable to create or get server_id" + ex.Message);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.EnableMetrics)
|
|
||||||
{
|
|
||||||
var queryString = $"?address={address}&hostname={hostname}";
|
|
||||||
using HttpClient client = new();
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
await client.GetAsync($"https://api.daffyy.love/index.php{queryString}");
|
|
||||||
}
|
|
||||||
catch (HttpRequestException ex)
|
|
||||||
{
|
|
||||||
Logger.LogWarning($"Unable to make metrics call: {ex.Message}");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
*/
|
|
||||||
AddTimer(61.0f, () =>
|
AddTimer(61.0f, () =>
|
||||||
{
|
{
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
@@ -471,12 +416,17 @@ public partial class CS2_SimpleAdmin
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
await banManager.CheckOnlinePlayers(onlinePlayers);
|
await banManager.CheckOnlinePlayers(onlinePlayers);
|
||||||
|
|
||||||
if (Config.TimeMode == 0)
|
if (Config.TimeMode == 0)
|
||||||
{
|
{
|
||||||
await muteManager.CheckOnlineModeMutes(onlinePlayers);
|
await muteManager.CheckOnlineModeMutes(onlinePlayers);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch { }
|
catch(Exception)
|
||||||
|
{
|
||||||
|
Logger.LogError("Unable to check bans for online players");
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await muteManager.ExpireOldMutes();
|
await muteManager.ExpireOldMutes();
|
||||||
@@ -509,9 +459,11 @@ public partial class CS2_SimpleAdmin
|
|||||||
|
|
||||||
PlayerPenaltyManager.RemoveExpiredPenalties();
|
PlayerPenaltyManager.RemoveExpiredPenalties();
|
||||||
}
|
}
|
||||||
catch { }
|
catch(Exception)
|
||||||
|
{
|
||||||
|
Logger.LogError("Unable to remove old penalties");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.REPEAT | CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
}, CounterStrikeSharp.API.Modules.Timers.TimerFlags.REPEAT | CounterStrikeSharp.API.Modules.Timers.TimerFlags.STOP_ON_MAPCHANGE);
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
using CounterStrikeSharp.API;
|
using CounterStrikeSharp.API;
|
||||||
using CounterStrikeSharp.API.Core;
|
using CounterStrikeSharp.API.Core;
|
||||||
|
using CounterStrikeSharp.API.Core.Translations;
|
||||||
using CounterStrikeSharp.API.Modules.Admin;
|
using CounterStrikeSharp.API.Modules.Admin;
|
||||||
using CounterStrikeSharp.API.Modules.Entities;
|
using CounterStrikeSharp.API.Modules.Entities;
|
||||||
using CounterStrikeSharp.API.Modules.Memory;
|
using CounterStrikeSharp.API.Modules.Memory;
|
||||||
|
using Microsoft.Extensions.Localization;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using Vector = CounterStrikeSharp.API.Modules.Utils.Vector;
|
using Vector = CounterStrikeSharp.API.Modules.Utils.Vector;
|
||||||
|
|
||||||
@@ -193,4 +195,20 @@ public static class PlayerExtensions
|
|||||||
if (pawn.Health <= 0)
|
if (pawn.Health <= 0)
|
||||||
pawn.CommitSuicide(true, true);
|
pawn.CommitSuicide(true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static void SendLocalizedMessage(this CCSPlayerController? controller, IStringLocalizer localizer, string messageKey, params object[] messageArgs)
|
||||||
|
{
|
||||||
|
if (controller == null) return;
|
||||||
|
|
||||||
|
using (new WithTemporaryCulture(controller.GetLanguage()))
|
||||||
|
{
|
||||||
|
StringBuilder sb = new(localizer["sa_prefix"]);
|
||||||
|
sb.Append(localizer[messageKey, messageArgs]);
|
||||||
|
foreach (var part in Helper.SeparateLines(sb.ToString()))
|
||||||
|
{
|
||||||
|
controller.PrintToChat(part);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -64,13 +64,13 @@ namespace CS2_SimpleAdmin
|
|||||||
public static List<CCSPlayerController> GetValidPlayers()
|
public static List<CCSPlayerController> GetValidPlayers()
|
||||||
{
|
{
|
||||||
return Utilities.GetPlayers().FindAll(p => p is
|
return Utilities.GetPlayers().FindAll(p => p is
|
||||||
{ IsBot: false, IsHLTV: false });
|
{ IsValid: true, IsBot: false, Connected: PlayerConnectedState.PlayerConnected });
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IEnumerable<CCSPlayerController?> GetValidPlayersWithBots()
|
public static IEnumerable<CCSPlayerController?> GetValidPlayersWithBots()
|
||||||
{
|
{
|
||||||
return Utilities.GetPlayers().FindAll(p =>
|
return Utilities.GetPlayers().FindAll(p =>
|
||||||
p is { IsBot: false, IsHLTV: false } or { IsBot: true, IsHLTV: false }
|
p is { IsValid: true, IsBot: false, IsHLTV: false } or { IsValid: true, IsBot: true, IsHLTV: false }
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -314,6 +314,11 @@ namespace CS2_SimpleAdmin
|
|||||||
return message;
|
return message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string[] SeparateLines(string message)
|
||||||
|
{
|
||||||
|
return message.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.None);
|
||||||
|
}
|
||||||
|
|
||||||
public static string GetServerIp()
|
public static string GetServerIp()
|
||||||
{
|
{
|
||||||
var network_system = NativeAPI.GetValveInterface(0, "NetworkSystemVersion001");
|
var network_system = NativeAPI.GetValveInterface(0, "NetworkSystemVersion001");
|
||||||
|
|||||||
@@ -389,9 +389,9 @@ internal class BanManager(Database.Database database, CS2_SimpleAdminConfig conf
|
|||||||
{
|
{
|
||||||
var currentTime = DateTime.UtcNow.ToLocalTime();
|
var currentTime = DateTime.UtcNow.ToLocalTime();
|
||||||
|
|
||||||
await using var connection = await database.GetConnectionAsync();
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
await using var connection = await database.GetConnectionAsync();
|
||||||
/*
|
/*
|
||||||
string sql = "";
|
string sql = "";
|
||||||
await using MySqlConnection connection = await _database.GetConnectionAsync();
|
await using MySqlConnection connection = await _database.GetConnectionAsync();
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ 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;
|
||||||
|
|
||||||
@@ -263,7 +262,7 @@ public class PermissionManager(Database.Database database)
|
|||||||
{
|
{
|
||||||
var groupsData = await GetAllGroupsData();
|
var groupsData = await GetAllGroupsData();
|
||||||
|
|
||||||
var jsonStructure = new Dictionary<string, object>();
|
var jsonData = new Dictionary<string, object>();
|
||||||
|
|
||||||
foreach (var kvp in groupsData)
|
foreach (var kvp in groupsData)
|
||||||
{
|
{
|
||||||
@@ -273,11 +272,12 @@ public class PermissionManager(Database.Database database)
|
|||||||
["immunity"] = kvp.Value.Item2
|
["immunity"] = kvp.Value.Item2
|
||||||
};
|
};
|
||||||
|
|
||||||
jsonStructure[kvp.Key] = groupData;
|
jsonData[kvp.Key] = groupData;
|
||||||
}
|
}
|
||||||
|
|
||||||
var json = JsonConvert.SerializeObject(jsonStructure, Formatting.Indented);
|
var json = JsonConvert.SerializeObject(jsonData, Formatting.Indented);
|
||||||
await File.WriteAllTextAsync(CS2_SimpleAdmin.Instance.ModuleDirectory + "/data/groups.json", json);
|
var filePath = Path.Combine(CS2_SimpleAdmin.Instance.ModuleDirectory, "data", "groups.json");
|
||||||
|
await File.WriteAllTextAsync(filePath, json);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -374,7 +374,10 @@ public class PermissionManager(Database.Database database)
|
|||||||
.ToDictionary(item => item.playerName, item => item.playerData);
|
.ToDictionary(item => item.playerName, item => item.playerData);
|
||||||
|
|
||||||
var json = JsonConvert.SerializeObject(jsonData, Formatting.Indented);
|
var json = JsonConvert.SerializeObject(jsonData, Formatting.Indented);
|
||||||
await File.WriteAllTextAsync(CS2_SimpleAdmin.Instance.ModuleDirectory + "/data/admins.json", json);
|
var filePath = Path.Combine(CS2_SimpleAdmin.Instance.ModuleDirectory, "data", "admins.json");
|
||||||
|
await File.WriteAllTextAsync(filePath, json);
|
||||||
|
|
||||||
|
//await File.WriteAllTextAsync(CS2_SimpleAdmin.Instance.ModuleDirectory + "/data/admins.json", json);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task DeleteAdminBySteamId(string playerSteamId, bool globalDelete = false)
|
public async Task DeleteAdminBySteamId(string playerSteamId, bool globalDelete = false)
|
||||||
|
|||||||
Reference in New Issue
Block a user