diff options
author | Mattes D <github@xoft.cz> | 2015-05-13 18:31:01 +0200 |
---|---|---|
committer | Mattes D <github@xoft.cz> | 2015-05-13 18:31:01 +0200 |
commit | f36b00f4d496cb90c8c77d0e6ae570502f3199ae (patch) | |
tree | 595e661b5c7a251f1769dc9aa3d4bff92588f3a9 | |
parent | Merge pull request #2001 from mc-server/BindingsCleanup (diff) | |
download | cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.tar cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.tar.gz cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.tar.bz2 cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.tar.lz cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.tar.xz cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.tar.zst cuberite-f36b00f4d496cb90c8c77d0e6ae570502f3199ae.zip |
-rw-r--r-- | MCServer/Plugins/APIDump/Hooks/OnExecuteCommand.lua | 7 | ||||
-rw-r--r-- | src/Bindings/PluginManager.cpp | 7 |
2 files changed, 10 insertions, 4 deletions
diff --git a/MCServer/Plugins/APIDump/Hooks/OnExecuteCommand.lua b/MCServer/Plugins/APIDump/Hooks/OnExecuteCommand.lua index 79b7bb055..db7eb97d1 100644 --- a/MCServer/Plugins/APIDump/Hooks/OnExecuteCommand.lua +++ b/MCServer/Plugins/APIDump/Hooks/OnExecuteCommand.lua @@ -16,10 +16,9 @@ return 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.</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. + The server calls this hook even for unregistered (unknown) console commands. It also calls the hook + for unknown in-game commands, as long as they begin with a slash ('/'). If a plugin needs to intercept + in-game chat messages not beginning with a slash, it should use the {{OnChat|HOOK_CHAT}} hook. ]], Params = { diff --git a/src/Bindings/PluginManager.cpp b/src/Bindings/PluginManager.cpp index 15bea22bd..db2493955 100644 --- a/src/Bindings/PluginManager.cpp +++ b/src/Bindings/PluginManager.cpp @@ -1445,6 +1445,13 @@ cPluginManager::CommandResult cPluginManager::HandleCommand(cPlayer & a_Player, if (cmd == m_Commands.end()) { // Command not found + // If it started with a slash, ask the plugins if they still want to handle it: + if (!a_Command.empty() && (a_Command[0] == '/')) + { + CommandResult Result = crUnknownCommand; + CallHookExecuteCommand(&a_Player, Split, a_Command, Result); + return Result; + } return crUnknownCommand; } |