WoW:USERAPI SlashCmdList AddSlashCommand: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
m (Fixed 2 spelling errors.)
m (Move page script moved page USERAPI SlashCmdList AddSlashCommand to USERAPI SlashCmdList AddSlashCommand without leaving a redirect)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{userfunc}} <!-- Leave this line in! -->
{{userfunc}}
 
Add slash commands.
Add slash commands.
  SlashCmdList_AddSlashCommand(name, func, ...)
  SlashCmdList_AddSlashCommand(name, func, ...)
Line 24: Line 23:
  SLASH_MYADDON_SLASHCMD2 = '/ma'
  SLASH_MYADDON_SLASHCMD2 = '/ma'


==Code==
== Code ==
<pre>function SlashCmdList_AddSlashCommand(name, func, ...)
<pre>function SlashCmdList_AddSlashCommand(name, func, ...)
     SlashCmdList[name] = func
     SlashCmdList[name] = func
Line 36: Line 35:
     end
     end
end</pre>
end</pre>
__NOTOC__

Latest revision as of 04:49, 15 August 2023

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.

User defined functions

Add slash commands.

SlashCmdList_AddSlashCommand(name, func, ...)

Function Parameters

Arguments

name
Unique identifier (e.g. MYADDON_SLASHCMD)
func
The function (variable or actual function)
...
A list of commands with or without the leading slash

Returns

nil

Example

The following snippets do the same thing.

SlashCmdList_AddSlashCommand('MYADDON_SLASHCMD', function(msg)
    DEFAULT_CHAT_FRAME:AddMessage(msg or 'nil')
end, 'myaddon', 'ma')
SlashCmdList['MYADDON_SLASHCMD'] = function(msg)
    DEFAULT_CHAT_FRAME:AddMessage(msg or 'nil')
end
SLASH_MYADDON_SLASHCMD1 = '/myaddon'
SLASH_MYADDON_SLASHCMD2 = '/ma'

Code

function SlashCmdList_AddSlashCommand(name, func, ...)
    SlashCmdList[name] = func
    local command = ''
    for i = 1, select('#', ...) do
        command = select(i, ...)
        if strsub(command, 1, 1) ~= '/' then
            command = '/' .. command
        end
        _G['SLASH_'..name..i] = command
    end
end