using CounterStrikeSharp.API.Core; using CounterStrikeSharp.API.Core.Capabilities; using CounterStrikeSharp.API.Modules.Memory.DynamicFunctions; using CS2_SimpleAdmin.Models; using CS2_SimpleAdminApi; using Discord.Webhook; using MenuManager; using Microsoft.Extensions.Localization; using Microsoft.Extensions.Logging; using System.Collections.Concurrent; namespace CS2_SimpleAdmin; public partial class CS2_SimpleAdmin { // Paths internal static string ConfigDirectory = Path.Combine(Application.RootDirectory, "configs/plugins/CS2-SimpleAdmin"); // Localization public static IStringLocalizer? _localizer; // Voting System public static readonly Dictionary VoteAnswers = []; public static bool VoteInProgress; // Command and Server Settings public static readonly bool UnlockedCommands = CoreConfig.UnlockConCommands; internal static string IpAddress = string.Empty; public static bool ServerLoaded; public static int? ServerId = null; internal static readonly HashSet AdminDisabledJoinComms = []; // Player Management private static readonly HashSet GodPlayers = []; private static readonly HashSet SilentPlayers = []; internal static readonly ConcurrentBag BannedPlayers = []; internal static readonly Dictionary RenamedPlayers = []; internal static readonly Dictionary PlayersInfo = []; private static readonly List DisconnectedPlayers = []; // Discord Integration internal static DiscordWebhookClient? DiscordWebhookClientLog; // Database Settings internal string DbConnectionString = string.Empty; internal static Database.Database? Database; // Logger internal static ILogger? _logger; // Memory Function (Game-related) private static MemoryFunctionVoid? _cBasePlayerControllerSetPawnFunc; // Menu API and Capabilities internal static IMenuApi? MenuApi; private static readonly PluginCapability MenuCapability = new("menu:nfcore"); // Shared API private Api.CS2_SimpleAdminApi? SimpleAdminApi { get; set; } }