-
Notifications
You must be signed in to change notification settings - Fork 0
/
CS2_AdminsList.cs
80 lines (61 loc) · 2.31 KB
/
CS2_AdminsList.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Modules.Menu;
using CounterStrikeSharp.API.Modules.Admin;
using CS2_AdminsList.Modules.Handlers;
using CounterStrikeSharp.API;
using CS2_AdminsList.Modules;
using CS2_AdminsList.Modules.Models;
namespace CS2_AdminsList;
public class CS2_AdminsList : BasePlugin
{
public override string ModuleName => "CS2_AdminsList Plugin";
public override string ModuleVersion => "1.0.0";
public override string ModuleAuthor => "Ravid";
public override string ModuleDescription => "CS2_AdminsList Plugin";
public static CS2_AdminsList Instance { get; private set; } = null!;
public static Database Db = null!;
public static Config _Config = null!;
public static List<SQL_Player> Players = new();
public override void Load(bool hotReload)
{
Instance = this;
Commands.RegisterCommands();
Modules.Handlers.Listeners.RegisterListeners();
_Config = Configs.LoadConfig();
if(_Config == null)
{
Utils.ThrowError("Failed to load config");
}
if(!_Config!.IsValid())
{
Utils.ThrowError("Config is not valid");
}
string connectionString = _Config.BuildConnectionString();
Database.Connect(connectionString, Database.SQL_ConnectCallback);
if (hotReload)
{
Utilities.GetPlayers().ForEach((player) => Modules.Handlers.Listeners.OnClientAuthorized(player.Slot, null!));
}
}
public override void Unload(bool hotReload)
{
Commands.UnRegisterCommands();
}
public static void ShowAdminsList(CCSPlayerController player)
{
List<CCSPlayerController> players = Utilities.GetPlayers();
List<SQL_Player> admins = new();
foreach (var p in players)
{
AdminData? adminData = AdminManager.GetPlayerAdminData(p);
if (adminData != null)
{
SQL_Player playerData = Utils.GetPlayerFromSlot(p.Slot);
admins.Add(playerData);
}
}
Database.admins = admins;
string query = "SELECT a.player_steamid as `auth` ,ag.name as `group` FROM `sa_admins` a JOIN `sa_admins_groups` ag ON a.flags = ag.id";
Database.Query(Database.SQL_FetchAdmins_CB, query, player.Slot);
}
}