-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathScreenMenuAPIDriverPlugin.cs
More file actions
50 lines (40 loc) · 1.72 KB
/
ScreenMenuAPIDriverPlugin.cs
File metadata and controls
50 lines (40 loc) · 1.72 KB
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
using System.Threading;
using CounterStrikeSharp.API.Core;
using CounterStrikeSharp.API.Core.Attributes;
using CounterStrikeSharp.API.Core.Attributes.Registration;
using CounterStrikeSharp.API.Core.Capabilities;
using CounterStrikeSharp.API.Modules.Commands;
using CSSUniversalMenuAPI;
namespace UniversalMenu.ScreenMenuAPIAdapter;
[MinimumApiVersion(314)]
public class ScreenMenuAPIDriverPlugin : BasePlugin
{
public override string ModuleName => "UniversalMenu.DefaultDriver.ScreenMenuAPI";
public override string ModuleDescription => "Implement CSSUniversalMenuAPI via ScreenMenuAPI";
public override string ModuleVersion => Verlite.Version.Full;
internal CancellationTokenSource Cts { get; set; } = null!;
private ScreenMenuApiDriver? DriverInstance { get; set; }
public override void Load(bool hotReload)
{
Cts = new CancellationTokenSource();
DriverInstance = new ScreenMenuApiDriver(this);
CSSUniversalMenuAPI.UniversalMenu.RegisterDriver("ScreenMenuAPI", DriverInstance);
}
public override void Unload(bool hotReload)
{
Cts.Cancel();
CSSUniversalMenuAPI.UniversalMenu.UnregisterDriver("ScreenMenuAPI");
}
[ConsoleCommand("css_0"), ConsoleCommand("css_1"), ConsoleCommand("css_2"), ConsoleCommand("css_3"), ConsoleCommand("css_4")]
[ConsoleCommand("css_5"), ConsoleCommand("css_6"), ConsoleCommand("css_7"), ConsoleCommand("css_8"), ConsoleCommand("css_9")]
[ConsoleCommand("css_screenmenu_bound_buttons")]
public void RegisterKeyCommands(CCSPlayerController player, CommandInfo info)
{
if (player is null || !player.IsValid)
return;
var menuState = DriverInstance?.GetMenuState(player);
if (menuState is null)
return;
menuState.UsingKeyBinds = info.CallingContext == CommandCallingContext.Console;
}
}