Skip to content

Commit a9daf35

Browse files
committed
todo trigger console commands + permission
1 parent c5ad5c4 commit a9daf35

File tree

4 files changed

+82
-93
lines changed

4 files changed

+82
-93
lines changed

CustomCommands/Commands.json

+34-8
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,46 @@
11
[
22
{
33
"Title": "Discord",
4+
"Description": "Command for Discord",
45
"Command": "discord",
56
"Message": "{PREFIX}{GREEN}Discord: \n <link>",
6-
"CenterMessage": "",
7-
"CenterMessageTime": 4,
8-
"PrintTo": 0,
9-
"Description": "Command for Discord"
7+
"PrintTo": 0
108
},
119
{
1210
"Title": "Steam",
11+
"Description": "Command for SteamGroup",
1312
"Command": "steam,steamgroup,group",
1413
"Message": "SteamGroup: <link>",
15-
"CenterMessage": "<div>Steam Group</div><br><div><font color='#00ff00'>https...</font></div>",
16-
"CenterMessageTime": 10,
17-
"PrintTo": 7,
18-
"Description": "Command for SteamGroup"
14+
"CenterElement": {
15+
"CenterMessage": "<div>Steam Group</div><br><div><font color='#00ff00'>https...</font></div>",
16+
"CenterMessageTime": 10
17+
},
18+
"PrintTo": 7
19+
},
20+
{
21+
"Title": "Enable Surf",
22+
"Command": "surf",
23+
"Message": "Surf is now enabled",
24+
"PrintTo": 0,
25+
"Description": "Command for Surf gamemode",
26+
"ServerCommands": [
27+
"sv_cheats 1",
28+
"sv_falldamage_scale 0",
29+
"sv_party_mode 1",
30+
"mp_freezetime 2.5",
31+
"mp_round_restart_delay 2.5",
32+
"cl_ragdoll_gravity 0",
33+
"sv_accelerate 10",
34+
"sv_airaccelerate 1400",
35+
"sv_gravity 800.0"
36+
],
37+
"Permission": {
38+
"ReguiresPermissionOr": false,
39+
"PermissionList": [
40+
"@css/cvar",
41+
"@custom/permission",
42+
"#css/simple-admin"
43+
]
44+
}
1945
}
2046
]

CustomCommands/Functions.cs

+13-61
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
using CounterStrikeSharp.API;
22
using CounterStrikeSharp.API.Core;
3+
using CounterStrikeSharp.API.Modules.Admin;
34
using CustomCommands.Model;
45

56
namespace CustomCommands;
@@ -35,10 +36,22 @@ private void AddCommands(Commands com)
3536
AddCommand(aliases[i], com.Description, (player, info) =>
3637
{
3738
if (player == null) return;
39+
RequiresPermissions(player, com.Permissions);
3840
TriggerMessage(player, com);
41+
ExecuteServerCommands(com);
3942
});
4043
}
4144
}
45+
46+
private void ExecuteServerCommands(Commands cmd)
47+
{
48+
if (cmd.ServerCommands.Count == 0) return;
49+
50+
foreach (var serverCommand in cmd.ServerCommands)
51+
{
52+
Server.ExecuteCommand(serverCommand);
53+
}
54+
}
4255
private void TriggerMessage(CCSPlayerController player, Commands cmd)
4356
{
4457
switch (cmd.PrintTo)
@@ -72,67 +85,6 @@ private void TriggerMessage(CCSPlayerController player, Commands cmd)
7285
}
7386
}
7487

75-
private void PrintToCenterClient(CCSPlayerController player, Commands cmd)
76-
{
77-
var CenterClientElement = new CenterClientElement
78-
{
79-
ClientId = player.UserId!.Value,
80-
Message = cmd.CenterMessage
81-
};
82-
centerClientOn.Add(CenterClientElement);
83-
AddTimer(cmd.CenterMessageTime, () => centerClientOn.Remove(CenterClientElement));
84-
}
85-
private void PrintToAllCenter(Commands cmd)
86-
{
87-
centerServerOn.Message = cmd.CenterMessage;
88-
centerServerOn.IsRunning = true;
89-
AddTimer(cmd.CenterMessageTime, () =>
90-
{
91-
centerServerOn.IsRunning = false;
92-
});
93-
}
94-
95-
private void PrintToChatAndCenter(Receiver receiver, CCSPlayerController player, Commands cmd)
96-
{
97-
PrintToChat(receiver, player, cmd.Message);
98-
PrintToCenterClient(player, cmd);
99-
}
100-
101-
private void PrintToChatAndAllCenter(Receiver receiver, CCSPlayerController player, Commands cmd)
102-
{
103-
PrintToChat(receiver, player, cmd.Message);
104-
PrintToAllCenter(cmd);
105-
}
106-
107-
private void PrintToChat(Receiver printToChat, CCSPlayerController player, string message)
108-
{
109-
string[] msg = ReplaceTags(message).Split('\n');
110-
111-
switch (printToChat)
112-
{
113-
case Receiver.Client:
114-
PrintToChatClient(player, msg);
115-
break;
116-
case Receiver.Server:
117-
PrintToChatServer(msg);
118-
break;
119-
default:
120-
break;
121-
}
122-
}
123-
124-
private void PrintToChatClient(CCSPlayerController player, string[] msg)
125-
{
126-
foreach (var line in msg)
127-
player.PrintToChat(line);
128-
}
129-
130-
private void PrintToChatServer(string[] msg)
131-
{
132-
foreach (var line in msg)
133-
Server.PrintToChatAll(line);
134-
}
135-
13688
private string ReplaceTags(string input)
13789
{
13890
Dictionary<string, string> replacements = new()

CustomCommands/Model/Commands.cs

-24
This file was deleted.
+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+

2+
namespace CustomCommands.Model;
3+
public class Commands
4+
{
5+
public required string Title { get; set; } = "";
6+
public string Description { get; set; } = "Description";
7+
public required string Command { get; set; } = "testtesttest";
8+
public string Message { get; set; } = "";
9+
public CenterElement CenterMessage { get; set; } = new();
10+
public required Sender PrintTo { get; set; } = Sender.ClientChat;
11+
public List<string> ServerCommands { get; set; } = new();
12+
public PermissionsElement Permissions { get; set; } = new();
13+
}
14+
public class PermissionsElement
15+
{
16+
public bool ReguiresPermissionOr { get; set; } = false;
17+
public List<string> PermissionList { get; set; } = new();
18+
}
19+
public class CenterElement
20+
{
21+
public string Message { get; set; } = "";
22+
public int Time { get; set; } = 1;
23+
}
24+
public enum Sender
25+
{
26+
ClientChat = 0,
27+
AllChat = 1,
28+
ClientCenter = 2,
29+
AllCenter = 3,
30+
ClientChatClientCenter = 4,
31+
ClientChatAllCenter = 5,
32+
AllChatClientCenter = 6,
33+
AllChatAllCenter = 7
34+
}
35+

0 commit comments

Comments
 (0)