7
7
8
8
namespace CustomCommands
9
9
{
10
- [ MinimumApiVersion ( 86 ) ]
10
+ [ MinimumApiVersion ( 98 ) ]
11
11
public class CustomCommands : BasePlugin , IPluginConfig < CustomCommandsConfig >
12
12
{
13
13
public override string ModuleName => "CustomCommands" ;
@@ -22,11 +22,15 @@ public class CustomCommands : BasePlugin, IPluginConfig<CustomCommandsConfig>
22
22
23
23
public CustomCommandsConfig Config { get ; set ; } = new ( ) ;
24
24
25
+ private string PrefixCache = "" ;
26
+
25
27
public void OnConfigParsed ( CustomCommandsConfig config )
26
28
{
27
29
Config = config ;
28
30
}
29
31
32
+
33
+
30
34
public override void Load ( bool hotReload )
31
35
{
32
36
if ( ! Config . IsPluginEnabled )
@@ -38,8 +42,10 @@ public override void Load(bool hotReload)
38
42
Console . WriteLine (
39
43
$ "CustomCommands has been loaded, and the hot reload flag was { hotReload } , path is { ModulePath } ") ;
40
44
45
+ if ( Config . Prefix != PrefixCache )
46
+ PrefixCache = ReplaceTags ( Config . Prefix ) ;
41
47
42
- var json = System . IO . File . ReadAllText ( Path . Combine ( ModuleDirectory , "Commands.json" ) ) ;
48
+ var json = File . ReadAllText ( Path . Combine ( ModuleDirectory , "Commands.json" ) ) ;
43
49
var comms = JsonSerializer . Deserialize < List < Commands > > ( json ) ;
44
50
45
51
if ( comms != null )
@@ -54,52 +60,8 @@ public override void Load(bool hotReload)
54
60
{
55
61
if ( player == null ) return ;
56
62
57
- string message = ReplaceTags ( com . Message ) ;
58
-
59
- switch ( com . PrintTo )
60
- {
61
- case Sender . ClientChat :
62
- player . PrintToChat ( message ) ;
63
-
64
- break ;
65
- case Sender . AllChat :
66
- Server . PrintToChatAll ( message ) ;
67
-
68
- break ;
69
- case Sender . ClientCenter :
70
- player . PrintToCenterHtml ( com . CenterMessage ) ;
71
-
72
- break ;
73
- case Sender . AllCenter :
74
- foreach ( var controller in PlayerList )
75
- controller . PrintToCenterHtml ( com . CenterMessage ) ;
76
-
77
- break ;
78
- case Sender . ClientChatClientCenter :
79
- player . PrintToChat ( message ) ;
80
- player . PrintToCenterHtml ( com . CenterMessage ) ;
81
-
82
- break ;
83
- case Sender . ClientChatAllCenter :
84
- player . PrintToChat ( message ) ;
85
- foreach ( var controller in PlayerList )
86
- controller . PrintToCenterHtml ( com . CenterMessage ) ;
87
-
88
- break ;
89
- case Sender . AllChatClientCenter :
90
- Server . PrintToChatAll ( message ) ;
91
- player . PrintToCenterHtml ( com . CenterMessage ) ;
92
-
93
- break ;
94
- case Sender . AllChatAllCenter :
95
- Server . PrintToChatAll ( message ) ;
96
- foreach ( var controller in PlayerList )
97
- controller . PrintToCenterHtml ( com . CenterMessage ) ;
98
-
99
- break ;
100
- default :
101
- break ;
102
- }
63
+ TriggerMessage ( player , com ) ;
64
+
103
65
} ) ;
104
66
}
105
67
}
@@ -111,6 +73,73 @@ public override void Load(bool hotReload)
111
73
InitializeLists ( ) ;
112
74
}
113
75
76
+ private void TriggerMessage ( CCSPlayerController player , Commands cmd )
77
+ {
78
+ switch ( cmd . PrintTo )
79
+ {
80
+ case Sender . ClientChat :
81
+ PrintToChat ( Receiver . Client , player , cmd . Message ) ;
82
+
83
+ break ;
84
+ case Sender . AllChat :
85
+ PrintToChat ( Receiver . Server , player , cmd . Message ) ;
86
+
87
+ break ;
88
+ case Sender . ClientCenter :
89
+ player . PrintToCenterHtml ( cmd . CenterMessage , cmd . CenterMessageTime ) ;
90
+
91
+ break ;
92
+ case Sender . AllCenter :
93
+ foreach ( var controller in PlayerList )
94
+ controller . PrintToCenterHtml ( cmd . CenterMessage , cmd . CenterMessageTime ) ;
95
+
96
+ break ;
97
+ case Sender . ClientChatClientCenter :
98
+ PrintToChat ( Receiver . Client , player , cmd . Message ) ;
99
+ player . PrintToCenterHtml ( cmd . CenterMessage , cmd . CenterMessageTime ) ;
100
+
101
+ break ;
102
+ case Sender . ClientChatAllCenter :
103
+ PrintToChat ( Receiver . Client , player , cmd . Message ) ;
104
+ foreach ( var controller in PlayerList )
105
+ controller . PrintToCenterHtml ( cmd . CenterMessage , cmd . CenterMessageTime ) ;
106
+
107
+ break ;
108
+ case Sender . AllChatClientCenter :
109
+ PrintToChat ( Receiver . Server , player , cmd . Message ) ;
110
+ player . PrintToCenterHtml ( cmd . CenterMessage , cmd . CenterMessageTime ) ;
111
+
112
+ break ;
113
+ case Sender . AllChatAllCenter :
114
+ PrintToChat ( Receiver . Server , player , cmd . Message ) ;
115
+ foreach ( var controller in PlayerList )
116
+ controller . PrintToCenterHtml ( cmd . CenterMessage , cmd . CenterMessageTime ) ;
117
+
118
+ break ;
119
+ default :
120
+ break ;
121
+ }
122
+ }
123
+
124
+
125
+ private void PrintToChat ( Receiver printToChat , CCSPlayerController player , string message )
126
+ {
127
+ string [ ] msg = ReplaceTags ( message ) . Split ( "\\ n" ) ;
128
+
129
+ switch ( printToChat )
130
+ {
131
+ case Receiver . Client :
132
+ foreach ( var line in msg )
133
+ player . PrintToChat ( line ) ;
134
+ break ;
135
+ case Receiver . Server :
136
+ foreach ( var line in msg )
137
+ Server . PrintToChatAll ( line ) ;
138
+ break ;
139
+ default :
140
+ break ;
141
+ }
142
+ }
114
143
115
144
private string ReplaceTags ( string input )
116
145
{
@@ -121,7 +150,7 @@ private string ReplaceTags(string input)
121
150
} ;
122
151
string [ ] replacements =
123
152
{
124
- ReplaceTags ( Config . Prefix ) , "\x01 " , "\x02 " , "\x03 " , "\x04 " , "\x05 " , "\x06 " , "\x07 " , "\x08 " , "\x09 " , "\x10 " , "\x0B " , "\x0C " , "\x0E " ,
153
+ PrefixCache , "\x01 " , "\x02 " , "\x03 " , "\x04 " , "\x05 " , "\x06 " , "\x07 " , "\x08 " , "\x09 " , "\x10 " , "\x0B " , "\x0C " , "\x0E " ,
125
154
"\x0A "
126
155
} ;
127
156
0 commit comments