|
1 | 1 | using CounterStrikeSharp.API;
|
2 | 2 | using CounterStrikeSharp.API.Core;
|
| 3 | +using CounterStrikeSharp.API.Modules.Admin; |
3 | 4 | using CustomCommands.Model;
|
4 | 5 |
|
5 | 6 | namespace CustomCommands;
|
@@ -35,10 +36,22 @@ private void AddCommands(Commands com)
|
35 | 36 | AddCommand(aliases[i], com.Description, (player, info) =>
|
36 | 37 | {
|
37 | 38 | if (player == null) return;
|
| 39 | + RequiresPermissions(player, com.Permissions); |
38 | 40 | TriggerMessage(player, com);
|
| 41 | + ExecuteServerCommands(com); |
39 | 42 | });
|
40 | 43 | }
|
41 | 44 | }
|
| 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 | + } |
42 | 55 | private void TriggerMessage(CCSPlayerController player, Commands cmd)
|
43 | 56 | {
|
44 | 57 | switch (cmd.PrintTo)
|
@@ -72,67 +85,6 @@ private void TriggerMessage(CCSPlayerController player, Commands cmd)
|
72 | 85 | }
|
73 | 86 | }
|
74 | 87 |
|
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 |
| - |
136 | 88 | private string ReplaceTags(string input)
|
137 | 89 | {
|
138 | 90 | Dictionary<string, string> replacements = new()
|
|
0 commit comments