99
1010namespace BasicAdmin ;
1111
12+ // [MinimumApiVersion(66)]
1213public sealed class BasicAdmin : BasePlugin , IPluginConfig < BasicAdminConfig >
1314{
1415 public override string ModuleName => "BasicAdmin" ;
@@ -23,7 +24,48 @@ public void OnConfigParsed(BasicAdminConfig config)
2324 }
2425
2526 public override void Load ( bool hotReload )
26- { }
27+ {
28+ base . Load ( hotReload ) ;
29+
30+ AddCommandListener ( "say" , OnSayCommand ) ;
31+ AddCommandListener ( "say_team" , OnSayCommand ) ;
32+ }
33+
34+ // public override void Unload(bool hotReload)
35+ // {
36+ // base.Unload(hotReload);
37+ //
38+ // RemoveCommandListener("say", OnSayCommand, HookMode.Pre);
39+ // RemoveCommandListener("say_team", OnSayCommand, HookMode.Pre);
40+ // }
41+
42+ public HookResult OnSayCommand ( CCSPlayerController ? caller , CommandInfo info )
43+ {
44+ if ( ! ( info . GetArg ( 1 ) . StartsWith ( '@' ) && AdminManager . PlayerHasPermissions ( caller , "@css/chat" ) ) )
45+ return HookResult . Continue ;
46+
47+ var isTeam = info . GetArg ( 0 ) . Equals ( "say_team" ) ;
48+ var start = isTeam ? 11 : 6 ;
49+ string message ;
50+
51+ if ( isTeam )
52+ {
53+ message = string . Format ( Config . AdminSayTextTeam , caller ! . PlayerName ,
54+ info . GetCommandString [ start ..^ 1 ] ) ;
55+ }
56+ else
57+ {
58+ message = FormatAdminMessage ( string . Format ( Config . AdminSayText , caller ! . PlayerName ,
59+ info . GetCommandString [ start ..^ 1 ] ) ) ;
60+ }
61+
62+ if ( isTeam )
63+ ServerUtils . PrintToChatTeam ( TargetFilter . Admin , message ) ;
64+ else
65+ Server . PrintToChatAll ( message ) ;
66+
67+ return HookResult . Stop ;
68+ }
2769
2870 [ ConsoleCommand ( "css_map" , "Change map." ) ]
2971 [ CommandHelper ( 1 , "<mapname>" ) ]
@@ -104,7 +146,7 @@ public void OnSlayCommand(CCSPlayerController? caller, CommandInfo info)
104146 [ RequiresPermissions ( "@css/cvar" ) ]
105147 public void OnGiveCommand ( CCSPlayerController ? caller , CommandInfo info )
106148 {
107- if ( ! GetTarget ( info , out var player ) )
149+ if ( ! GetTarget ( info , out var player ) )
108150 return ;
109151
110152 var range = info . GetArg ( 0 ) . Length + info . GetArg ( 1 ) . Length + 2 ;
0 commit comments