1010
1111FlatHashMap<String, CommandHandlerFuncType> ConsoleCmdHandler::Commands;
1212
13- ADD_CONSOLE_CMD (gamemodetext, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
13+ ADD_CONSOLE_CMD (gamemodetext, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
1414 {
1515 if (params.empty ())
1616 {
@@ -20,7 +20,7 @@ ADD_CONSOLE_CMD(gamemodetext, [](const String& params, const ConsoleCommandSende
2020 core->setData (SettableCoreDataType::ModeText, params);
2121 });
2222
23- ADD_CONSOLE_CMD (hostname, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
23+ ADD_CONSOLE_CMD (hostname, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
2424 {
2525 if (params.empty ())
2626 {
@@ -30,7 +30,7 @@ ADD_CONSOLE_CMD(hostname, [](const String& params, const ConsoleCommandSenderDat
3030 core->setData (SettableCoreDataType::ServerName, params);
3131 });
3232
33- ADD_CONSOLE_CMD (mapname, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
33+ ADD_CONSOLE_CMD (mapname, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
3434 {
3535 if (params.empty ())
3636 {
@@ -40,7 +40,7 @@ ADD_CONSOLE_CMD(mapname, [](const String& params, const ConsoleCommandSenderData
4040 core->setData (SettableCoreDataType::MapName, params);
4141 });
4242
43- ADD_CONSOLE_CMD (weburl, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
43+ ADD_CONSOLE_CMD (weburl, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
4444 {
4545 if (params.empty ())
4646 {
@@ -50,7 +50,7 @@ ADD_CONSOLE_CMD(weburl, [](const String& params, const ConsoleCommandSenderData&
5050 core->setData (SettableCoreDataType::URL, params);
5151 });
5252
53- ADD_CONSOLE_CMD (language, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
53+ ADD_CONSOLE_CMD (language, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
5454 {
5555 if (params.empty ())
5656 {
@@ -61,22 +61,35 @@ ADD_CONSOLE_CMD(language, [](const String& params, const ConsoleCommandSenderDat
6161 console.sendMessage (sender, " Setting server language to: \" " + params + " \" " );
6262 });
6363
64- ADD_CONSOLE_CMD (cmdlist, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
64+ ADD_CONSOLE_CMD (cmdlist, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
6565 {
66+ FlatHashSet<StringView> commands;
67+
6668 console.sendMessage (sender, " Console commands:" );
6769 for (auto & kv : ConsoleCmdHandler::Commands)
6870 {
69- console.sendMessage (sender, kv.first );
71+ commands.emplace (kv.first );
72+ }
73+
74+ console.defEventDispatcher ().all (
75+ [&commands](ConsoleEventHandler* handler)
76+ {
77+ handler->onConsoleCommandListRequest (commands);
78+ });
79+
80+ for (auto kv : commands)
81+ {
82+ console.sendMessage (sender, kv);
7083 }
7184 });
7285
7386struct VarlistEnumCallback : OptionEnumeratorCallback
7487{
75- IConsoleComponent & console;
88+ ConsoleComponent & console;
7689 IConfig& config;
7790 const ConsoleCommandSenderData& sender;
7891
79- VarlistEnumCallback (IConsoleComponent & console, IConfig& config, const ConsoleCommandSenderData& sender)
92+ VarlistEnumCallback (ConsoleComponent & console, IConfig& config, const ConsoleCommandSenderData& sender)
8093 : console(console)
8194 , config(config)
8295 , sender(sender)
@@ -137,14 +150,14 @@ struct VarlistEnumCallback : OptionEnumeratorCallback
137150 }
138151};
139152
140- ADD_CONSOLE_CMD (varlist, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
153+ ADD_CONSOLE_CMD (varlist, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
141154 {
142155 console.sendMessage (sender, " Console variables:" );
143156 VarlistEnumCallback cb (console, core->getConfig (), sender);
144157 core->getConfig ().enumOptions (cb);
145158 });
146159
147- ADD_CONSOLE_CMD (password, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
160+ ADD_CONSOLE_CMD (password, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
148161 {
149162 if (params.empty ())
150163 {
@@ -161,7 +174,7 @@ ADD_CONSOLE_CMD(password, [](const String& params, const ConsoleCommandSenderDat
161174 console.sendMessage (sender, " Setting server password to: \" " + params + " \" " );
162175 });
163176
164- ADD_CONSOLE_CMD (say, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
177+ ADD_CONSOLE_CMD (say, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
165178 {
166179 if (params.empty ())
167180 {
@@ -170,7 +183,7 @@ ADD_CONSOLE_CMD(say, [](const String& params, const ConsoleCommandSenderData& se
170183 core->getPlayers ().sendClientMessageToAll (Colour (37 , 135 , 206 ), String (" * Admin: " ) + params);
171184 });
172185
173- ADD_CONSOLE_CMD (players, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
186+ ADD_CONSOLE_CMD (players, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
174187 {
175188 if (!core->getPlayers ().entries ().size ())
176189 {
@@ -199,7 +212,7 @@ ADD_CONSOLE_CMD(players, [](const String& params, const ConsoleCommandSenderData
199212 }
200213 });
201214
202- ADD_CONSOLE_CMD (kick, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
215+ ADD_CONSOLE_CMD (kick, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
203216 {
204217 int playerId;
205218 if (sscanf (params.data (), " %d" , &playerId) == EOF)
@@ -225,7 +238,7 @@ ADD_CONSOLE_CMD(kick, [](const String& params, const ConsoleCommandSenderData& s
225238 player->kick ();
226239 });
227240
228- ADD_CONSOLE_CMD (ban, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
241+ ADD_CONSOLE_CMD (ban, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
229242 {
230243 int playerId;
231244 if (sscanf (params.data (), " %d" , &playerId) == EOF)
@@ -251,7 +264,7 @@ ADD_CONSOLE_CMD(ban, [](const String& params, const ConsoleCommandSenderData& se
251264 player->ban (" CONSOLE BAN" );
252265 });
253266
254- ADD_CONSOLE_CMD (banip, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
267+ ADD_CONSOLE_CMD (banip, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
255268 {
256269 if (params.empty ())
257270 {
@@ -268,13 +281,13 @@ ADD_CONSOLE_CMD(banip, [](const String& params, const ConsoleCommandSenderData&
268281 console.sendMessage (sender, String (" IP " ) + params.data () + String (" has been banned." ));
269282 });
270283
271- ADD_CONSOLE_CMD (reloadbans, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
284+ ADD_CONSOLE_CMD (reloadbans, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
272285 {
273286 core->getConfig ().reloadBans ();
274287 console.sendMessage (sender, " Banlist reloded." );
275288 });
276289
277- ADD_CONSOLE_CMD (unbanip, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
290+ ADD_CONSOLE_CMD (unbanip, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
278291 {
279292 if (params.empty ())
280293 {
@@ -290,7 +303,7 @@ ADD_CONSOLE_CMD(unbanip, [](const String& params, const ConsoleCommandSenderData
290303 core->getConfig ().removeBan (unban);
291304 });
292305
293- ADD_CONSOLE_CMD (gravity, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
306+ ADD_CONSOLE_CMD (gravity, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
294307 {
295308 float gravity = 0 .008f ;
296309 if (sscanf (params.data (), " %f" , &gravity) == EOF)
@@ -301,7 +314,7 @@ ADD_CONSOLE_CMD(gravity, [](const String& params, const ConsoleCommandSenderData
301314 core->setGravity (gravity);
302315 });
303316
304- ADD_CONSOLE_CMD (weather, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
317+ ADD_CONSOLE_CMD (weather, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
305318 {
306319 int weather = 0 ;
307320 if (sscanf (params.data (), " %d" , &weather) == EOF)
@@ -312,7 +325,7 @@ ADD_CONSOLE_CMD(weather, [](const String& params, const ConsoleCommandSenderData
312325 core->setWeather (weather);
313326 });
314327
315- ADD_CONSOLE_CMD (rcon_password, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
328+ ADD_CONSOLE_CMD (rcon_password, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
316329 {
317330 if (params.empty ())
318331 {
@@ -322,12 +335,12 @@ ADD_CONSOLE_CMD(rcon_password, [](const String& params, const ConsoleCommandSend
322335 core->setData (SettableCoreDataType::AdminPassword, params);
323336 });
324337
325- ADD_CONSOLE_CMD (echo, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
338+ ADD_CONSOLE_CMD (echo, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
326339 {
327340 console.sendMessage (sender, params);
328341 });
329342
330- ADD_CONSOLE_CMD (messageslimit, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
343+ ADD_CONSOLE_CMD (messageslimit, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
331344 {
332345 int value = 0 ;
333346 if (sscanf (params.data (), " %d" , &value) == EOF)
@@ -339,7 +352,7 @@ ADD_CONSOLE_CMD(messageslimit, [](const String& params, const ConsoleCommandSend
339352 core->updateNetworks ();
340353 });
341354
342- ADD_CONSOLE_CMD (messageholelimit, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
355+ ADD_CONSOLE_CMD (messageholelimit, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
343356 {
344357 int value = 0 ;
345358 if (sscanf (params.data (), " %d" , &value) == EOF)
@@ -351,7 +364,7 @@ ADD_CONSOLE_CMD(messageholelimit, [](const String& params, const ConsoleCommandS
351364 core->updateNetworks ();
352365 });
353366
354- ADD_CONSOLE_CMD (ackslimit, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
367+ ADD_CONSOLE_CMD (ackslimit, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
355368 {
356369 int value = 0 ;
357370 if (sscanf (params.data (), " %d" , &value) == EOF)
@@ -363,7 +376,7 @@ ADD_CONSOLE_CMD(ackslimit, [](const String& params, const ConsoleCommandSenderDa
363376 core->updateNetworks ();
364377 });
365378
366- ADD_CONSOLE_CMD (playertimeout, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
379+ ADD_CONSOLE_CMD (playertimeout, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
367380 {
368381 int value = 0 ;
369382 if (sscanf (params.data (), " %d" , &value) == EOF)
@@ -375,7 +388,7 @@ ADD_CONSOLE_CMD(playertimeout, [](const String& params, const ConsoleCommandSend
375388 core->updateNetworks ();
376389 });
377390
378- ADD_CONSOLE_CMD (rcon, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
391+ ADD_CONSOLE_CMD (rcon, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
379392 {
380393 if (params == " 1" )
381394 {
@@ -395,7 +408,7 @@ ADD_CONSOLE_CMD(rcon, [](const String& params, const ConsoleCommandSenderData& s
395408 }
396409 });
397410
398- ADD_CONSOLE_CMD (sleep, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
411+ ADD_CONSOLE_CMD (sleep, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
399412 {
400413 float value = 0 .0f ;
401414 if (sscanf (params.data (), " %f" , &value) == EOF)
@@ -407,7 +420,7 @@ ADD_CONSOLE_CMD(sleep, [](const String& params, const ConsoleCommandSenderData&
407420 core->setThreadSleep (Microseconds (static_cast <long long >(value * 1000 .0f )));
408421 });
409422
410- ADD_CONSOLE_CMD (dynticks, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
423+ ADD_CONSOLE_CMD (dynticks, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
411424 {
412425 int value = 0 ;
413426 if (sscanf (params.data (), " %d" , &value) == EOF)
@@ -419,7 +432,7 @@ ADD_CONSOLE_CMD(dynticks, [](const String& params, const ConsoleCommandSenderDat
419432 core->useDynTicks (bool (value));
420433 });
421434
422- ADD_CONSOLE_CMD (tickrate, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
435+ ADD_CONSOLE_CMD (tickrate, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
423436 {
424437 int value = 0 ;
425438 if (sscanf (params.data (), " %d" , &value) == EOF)
@@ -433,7 +446,7 @@ ADD_CONSOLE_CMD(tickrate, [](const String& params, const ConsoleCommandSenderDat
433446 core->setThreadSleep (Microseconds (static_cast <long long >(sleep * 1000 .0f )));
434447 });
435448
436- ADD_CONSOLE_CMD (worldtime, [](const String& params, const ConsoleCommandSenderData& sender, IConsoleComponent & console, ICore* core)
449+ ADD_CONSOLE_CMD (worldtime, [](const String& params, const ConsoleCommandSenderData& sender, ConsoleComponent & console, ICore* core)
437450 {
438451 int time;
439452 if (sscanf (params.data (), " %d" , &time) == EOF)
0 commit comments