Call HOOK_EXECUTE_COMMAND even for unknown console commands.
This allows plugins such as Aliases to intercept even unknown commands.
This commit is contained in:
parent
b356419a07
commit
6c53abed23
@ -7,7 +7,8 @@ return
|
||||
Desc = [[
|
||||
A plugin may implement an OnChat() function and register it as a Hook to process chat messages from
|
||||
the players. The function is then called for every in-game message sent from any player. Note that
|
||||
commands are handled separately using a command framework API.
|
||||
registered in-game commands are not sent through this hook. Use the
|
||||
{{OnExecuteCommand|HOOK_EXECUTE_COMMAND}} to intercept registered in-game commands.
|
||||
]],
|
||||
Params = {
|
||||
{ Name = "Player", Type = "{{cPlayer}}", Notes = "The player who sent the message" },
|
||||
|
@ -2,7 +2,10 @@ return
|
||||
{
|
||||
HOOK_EXECUTE_COMMAND =
|
||||
{
|
||||
CalledWhen = "A player executes an in-game command, or the admin issues a console command. Note that built-in console commands are exempt to this hook - they are always performed and the hook is not called.",
|
||||
CalledWhen = [[
|
||||
A player executes an in-game command, or the admin issues a console command. Note that built-in
|
||||
console commands are exempt to this hook - they are always performed and the hook is not called.
|
||||
]],
|
||||
DefaultFnName = "OnExecuteCommand", -- also used as pagename
|
||||
Desc = [[
|
||||
A plugin may implement a callback for this hook to intercept both in-game commands executed by the
|
||||
@ -11,7 +14,12 @@ return
|
||||
server.</p>
|
||||
<p>
|
||||
If the command is in-game, the first parameter to the hook function is the {{cPlayer|player}} who's
|
||||
executing the command. If the command comes from the server console, the first parameter is nil.
|
||||
executing the command. If the command comes from the server console, the first parameter is nil.</p>
|
||||
<p>
|
||||
The server calls this hook even for unregistered (unknown) console commands. However, it doesn't call
|
||||
the hook for unregistered in-game commands, simply because there's no way to distinguish between a
|
||||
command and a chat message. If a plugin needs to intercept unknown in-game commands, it should use the
|
||||
{{OnChat|HOOK_CHAT}} hook.
|
||||
]],
|
||||
Params =
|
||||
{
|
||||
|
@ -1750,6 +1750,8 @@ bool cPluginManager::ExecuteConsoleCommand(const AStringVector & a_Split, cComma
|
||||
if (cmd == m_ConsoleCommands.end())
|
||||
{
|
||||
// Command not found
|
||||
// Still notify the plugins (so that plugins such as Aliases can intercept unknown commands):
|
||||
CallHookExecuteCommand(nullptr, a_Split, a_Command);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user