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 = [[
|
Desc = [[
|
||||||
A plugin may implement an OnChat() function and register it as a Hook to process chat messages from
|
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
|
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 = {
|
Params = {
|
||||||
{ Name = "Player", Type = "{{cPlayer}}", Notes = "The player who sent the message" },
|
{ Name = "Player", Type = "{{cPlayer}}", Notes = "The player who sent the message" },
|
||||||
|
|
|
@ -2,7 +2,10 @@ return
|
||||||
{
|
{
|
||||||
HOOK_EXECUTE_COMMAND =
|
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
|
DefaultFnName = "OnExecuteCommand", -- also used as pagename
|
||||||
Desc = [[
|
Desc = [[
|
||||||
A plugin may implement a callback for this hook to intercept both in-game commands executed by the
|
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>
|
server.</p>
|
||||||
<p>
|
<p>
|
||||||
If the command is in-game, the first parameter to the hook function is the {{cPlayer|player}} who's
|
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 =
|
Params =
|
||||||
{
|
{
|
||||||
|
|
|
@ -1750,6 +1750,8 @@ bool cPluginManager::ExecuteConsoleCommand(const AStringVector & a_Split, cComma
|
||||||
if (cmd == m_ConsoleCommands.end())
|
if (cmd == m_ConsoleCommands.end())
|
||||||
{
|
{
|
||||||
// Command not found
|
// 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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user