WoW:USERAPI GetSlashFunc
Jump to navigation
Jump to search
This page documents a <i>user-defined function</i> that you can copy and paste into your addon. Replace PREFIX with your addon or lib prefix to avoid conflicts between different versions of these functions.
Returns the function called when using /cmd
.
slashFunction = USERAPI GetSlashFunc(cmd)
Function Parameters[edit]
Arguments[edit]
- (cmd)
- cmd
- the slash command to search for
Returns[edit]
- the actual function called when executing the cmd.
Example[edit]
local func = GetSlashFunc("/quit")
SLASH_MYQUIT1 = "/quit"
SLASH_MYQUIT2 = "/exit"
SlashCmdList["MYQUIT"] = function(msg)
if msg == "now" then
ForceQuit()
elseif func then
func()
end
end
Result[edit]
- Quit now instead of in 30 seconds when
/quit now
is used.
Code[edit]
-- returns a slash command function on success or an informative error function on failure. local function GetSlashFunc(cmd) if not cmd then return function(cmd) print("You must supply a command.") end end if cmd:sub(1, 1) ~= "/" then cmd = "/" .. cmd end for id, val in pairs(_G) do if id:sub(1, 5) == "SLASH" and val == cmd then local slashID = id:match("SLASH_(%a*)%d*") return SlashCmdList[slashID] end end -- Didn't find one? return function(cmd) print(cmd, "doesn't exist.") end end
Notes[edit]
- This will not work to hook secure commands such as
/target
,/cast
,/focus
, etc. The functions that are called with those commands are not globally accessible to addon scripts and, if they were, you would just end up breaking stuff. - If an addon creates its slash command after yours, yours will no longer work (as per usual).