77
88namespace CustomCommands
99{
10- [ MinimumApiVersion ( 86 ) ]
10+ [ MinimumApiVersion ( 98 ) ]
1111 public class CustomCommands : BasePlugin , IPluginConfig < CustomCommandsConfig >
1212 {
1313 public override string ModuleName => "CustomCommands" ;
@@ -22,11 +22,15 @@ public class CustomCommands : BasePlugin, IPluginConfig<CustomCommandsConfig>
2222
2323 public CustomCommandsConfig Config { get ; set ; } = new ( ) ;
2424
25+ private string PrefixCache = "" ;
26+
2527 public void OnConfigParsed ( CustomCommandsConfig config )
2628 {
2729 Config = config ;
2830 }
2931
32+
33+
3034 public override void Load ( bool hotReload )
3135 {
3236 if ( ! Config . IsPluginEnabled )
@@ -38,8 +42,10 @@ public override void Load(bool hotReload)
3842 Console . WriteLine (
3943 $ "CustomCommands has been loaded, and the hot reload flag was { hotReload } , path is { ModulePath } ") ;
4044
45+ if ( Config . Prefix != PrefixCache )
46+ PrefixCache = ReplaceTags ( Config . Prefix ) ;
4147
42- var json = System . IO . File . ReadAllText ( Path . Combine ( ModuleDirectory , "Commands.json" ) ) ;
48+ var json = File . ReadAllText ( Path . Combine ( ModuleDirectory , "Commands.json" ) ) ;
4349 var comms = JsonSerializer . Deserialize < List < Commands > > ( json ) ;
4450
4551 if ( comms != null )
@@ -54,52 +60,8 @@ public override void Load(bool hotReload)
5460 {
5561 if ( player == null ) return ;
5662
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+
10365 } ) ;
10466 }
10567 }
@@ -111,6 +73,73 @@ public override void Load(bool hotReload)
11173 InitializeLists ( ) ;
11274 }
11375
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+ }
114143
115144 private string ReplaceTags ( string input )
116145 {
@@ -121,7 +150,7 @@ private string ReplaceTags(string input)
121150 } ;
122151 string [ ] replacements =
123152 {
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 " ,
125154 "\x0A "
126155 } ;
127156
0 commit comments