summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattes D <github@xoft.cz>2015-05-10 21:33:49 +0200
committerMattes D <github@xoft.cz>2015-05-10 21:39:04 +0200
commit87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72 (patch)
tree68135e945630ebbd378b70424161e17f455f2a40
parentAdded the EntireCommand parameter to HOOK_EXECUTE_COMMAND. (diff)
downloadcuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.tar
cuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.tar.gz
cuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.tar.bz2
cuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.tar.lz
cuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.tar.xz
cuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.tar.zst
cuberite-87f1cf5622eb5fa6d7b6378166c8cc6926aaaa72.zip
-rw-r--r--MCServer/Plugins/InfoReg.lua68
1 files changed, 34 insertions, 34 deletions
diff --git a/MCServer/Plugins/InfoReg.lua b/MCServer/Plugins/InfoReg.lua
index e34b79564..cc075c0b8 100644
--- a/MCServer/Plugins/InfoReg.lua
+++ b/MCServer/Plugins/InfoReg.lua
@@ -43,21 +43,21 @@ end
--- This is a generic command callback used for handling multicommands' parent commands
-- For example, if there are "/gal save" and "/gal load" commands, this callback handles the "/gal" command
-- It is used for both console and in-game commands; the console version has a_Player set to nil
-local function MultiCommandHandler(a_Split, a_Player, a_CmdString, a_CmdInfo, a_Level)
- local Verb = a_Split[a_Level + 1];
+local function MultiCommandHandler(a_Split, a_Player, a_CmdString, a_CmdInfo, a_Level, a_EntireCommand)
+ local Verb = a_Split[a_Level + 1]
if (Verb == nil) then
-- No verb was specified. If there is a handler for the upper level command, call it:
if (a_CmdInfo.Handler ~= nil) then
- return a_CmdInfo.Handler(a_Split, a_Player);
+ return a_CmdInfo.Handler(a_Split, a_Player, a_EntireCommand)
end
-- Let the player know they need to give a subcommand:
assert(type(a_CmdInfo.Subcommands) == "table", "Info.lua error: There is no handler for command \"" .. a_CmdString .. "\" and there are no subcommands defined at level " .. a_Level)
- ListSubcommands(a_Player, a_CmdInfo.Subcommands, a_CmdString);
- return true;
+ ListSubcommands(a_Player, a_CmdInfo.Subcommands, a_CmdString)
+ return true
end
-- A verb was specified, look it up in the subcommands table:
- local Subcommand = a_CmdInfo.Subcommands[Verb];
+ local Subcommand = a_CmdInfo.Subcommands[Verb]
if (Subcommand == nil) then
if (a_Level > 1) then
-- This is a true subcommand, display the message and make MCS think the command was handled
@@ -67,7 +67,7 @@ local function MultiCommandHandler(a_Split, a_Player, a_CmdString, a_CmdInfo, a_
else
a_Player:SendMessage("The " .. a_CmdString .. " command doesn't support verb " .. Verb)
end
- return true;
+ return true
end
-- This is a top-level command, let MCS handle the unknown message
return false;
@@ -76,22 +76,22 @@ local function MultiCommandHandler(a_Split, a_Player, a_CmdString, a_CmdInfo, a_
-- Check the permission:
if (a_Player ~= nil) then
if not(a_Player:HasPermission(Subcommand.Permission or "")) then
- a_Player:SendMessage("You don't have permission to execute this command");
- return true;
+ a_Player:SendMessage("You don't have permission to execute this command")
+ return true
end
end
-- If the handler is not valid, check the next sublevel:
if (Subcommand.Handler == nil) then
if (Subcommand.Subcommands == nil) then
- LOG("Cannot find handler for command " .. a_CmdString .. " " .. Verb);
- return false;
+ LOG("Cannot find handler for command " .. a_CmdString .. " " .. Verb)
+ return false
end
- return MultiCommandHandler(a_Split, a_Player, a_CmdString .. " " .. Verb, Subcommand, a_Level + 1);
+ return MultiCommandHandler(a_Split, a_Player, a_CmdString .. " " .. Verb, Subcommand, a_Level + 1, a_EntireCommand)
end
-- Execute:
- return Subcommand.Handler(a_Split, a_Player);
+ return Subcommand.Handler(a_Split, a_Player, a_EntireCommand)
end
@@ -104,39 +104,39 @@ function RegisterPluginInfoCommands()
-- The a_Prefix param already contains the space after the previous command
-- a_Level is the depth of the subcommands being registered, with 1 being the top level command
local function RegisterSubcommands(a_Prefix, a_Subcommands, a_Level)
- assert(a_Subcommands ~= nil);
+ assert(a_Subcommands ~= nil)
-- A table that will hold aliases to subcommands temporarily, during subcommand iteration
local AliasTable = {}
-- Iterate through the subcommands, register them, and accumulate aliases:
for cmd, info in pairs(a_Subcommands) do
- local CmdName = a_Prefix .. cmd;
- local Handler = info.Handler;
+ local CmdName = a_Prefix .. cmd
+ local Handler = info.Handler
-- Provide a special handler for multicommands:
if (info.Subcommands ~= nil) then
- Handler = function(a_Split, a_Player)
- return MultiCommandHandler(a_Split, a_Player, CmdName, info, a_Level);
+ Handler = function(a_Split, a_Player, a_EntireCommand)
+ return MultiCommandHandler(a_Split, a_Player, CmdName, info, a_Level, a_EntireCommand)
end
end
if (Handler == nil) then
- LOGWARNING(g_PluginInfo.Name .. ": Invalid handler for command " .. CmdName .. ", command will not be registered.");
+ LOGWARNING(g_PluginInfo.Name .. ": Invalid handler for command " .. CmdName .. ", command will not be registered.")
else
- local HelpString;
+ local HelpString
if (info.HelpString ~= nil) then
- HelpString = " - " .. info.HelpString;
+ HelpString = " - " .. info.HelpString
else
- HelpString = "";
+ HelpString = ""
end
- cPluginManager.BindCommand(CmdName, info.Permission or "", Handler, HelpString);
+ cPluginManager.BindCommand(CmdName, info.Permission or "", Handler, HelpString)
-- Register all aliases for the command:
if (info.Alias ~= nil) then
if (type(info.Alias) == "string") then
- info.Alias = {info.Alias};
+ info.Alias = {info.Alias}
end
for idx, alias in ipairs(info.Alias) do
- cPluginManager.BindCommand(a_Prefix .. alias, info.Permission or "", Handler, HelpString);
+ cPluginManager.BindCommand(a_Prefix .. alias, info.Permission or "", Handler, HelpString)
-- Also copy the alias's info table as a separate subcommand,
-- so that MultiCommandHandler() handles it properly. Need to off-load into a separate table
-- than the one we're currently iterating and join after the iterating.
@@ -147,7 +147,7 @@ function RegisterPluginInfoCommands()
-- Recursively register any subcommands:
if (info.Subcommands ~= nil) then
- RegisterSubcommands(a_Prefix .. cmd .. " ", info.Subcommands, a_Level + 1);
+ RegisterSubcommands(a_Prefix .. cmd .. " ", info.Subcommands, a_Level + 1)
end
end -- for cmd, info - a_Subcommands[]
@@ -159,7 +159,7 @@ function RegisterPluginInfoCommands()
end
-- Loop through all commands in the plugin info, register each:
- RegisterSubcommands("", g_PluginInfo.Commands, 1);
+ RegisterSubcommands("", g_PluginInfo.Commands, 1)
end
@@ -171,26 +171,26 @@ function RegisterPluginInfoConsoleCommands()
-- A sub-function that registers all subcommands of a single command, using the command's Subcommands table
-- The a_Prefix param already contains the space after the previous command
local function RegisterSubcommands(a_Prefix, a_Subcommands, a_Level)
- assert(a_Subcommands ~= nil);
+ assert(a_Subcommands ~= nil)
for cmd, info in pairs(a_Subcommands) do
- local CmdName = a_Prefix .. cmd;
+ local CmdName = a_Prefix .. cmd
local Handler = info.Handler
if (Handler == nil) then
- Handler = function(a_Split)
- return MultiCommandHandler(a_Split, nil, CmdName, info, a_Level);
+ Handler = function(a_Split, a_EntireCommand)
+ return MultiCommandHandler(a_Split, nil, CmdName, info, a_Level, a_EntireCommand)
end
end
- cPluginManager.BindConsoleCommand(CmdName, Handler, info.HelpString or "");
+ cPluginManager.BindConsoleCommand(CmdName, Handler, info.HelpString or "")
-- Recursively register any subcommands:
if (info.Subcommands ~= nil) then
- RegisterSubcommands(a_Prefix .. cmd .. " ", info.Subcommands, a_Level + 1);
+ RegisterSubcommands(a_Prefix .. cmd .. " ", info.Subcommands, a_Level + 1)
end
end
end
-- Loop through all commands in the plugin info, register each:
- RegisterSubcommands("", g_PluginInfo.ConsoleCommands, 1);
+ RegisterSubcommands("", g_PluginInfo.ConsoleCommands, 1)
end