How to add a slash command/ru

From ESOUI Wiki

Jump to: navigation, search

Примеры

Добавление слеш (чат) -команды делается очень просто:

function bar(extra)
  -- какие-то действия
end
 
SLASH_COMMANDS["/foo"] = bar

Код выше позволяет писать в чате "/foo baz" для вызова функции bar("baz") (а чисто написанный "/foo" вызовет функцию bar("")).

Так же можно использовать анонимные функции:

SLASH_COMMANDS["/foo"] = function (extra)
  -- какие-то действия
end

Если вы хотите добавить следующий слой функциональности к слеш-команде, добавьте следующий участок кода для извлечения значения параметра extra.

Этот пример извлечет 2 параметра (option[1] и option[2]). Такой же шаблон будет необходим для создания большего числа параметров. Используя выше написанный пример, при введении /foo baz boz будет вызвана функция bar("baz boz"). option[1] будет содержать "baz" и option[2] - "boz". Заметьте, что отсчет индекса в скобках идет с единицы, а не с нуля.

    local options = {}
    local searchResult = { string.match(option,"^(%S*)%s*(.-)$") }
    for i,v in pairs(searchResult) do
        if (v ~= nil and v ~= "") then
            options[i] = string.lower(v)
        end
    end

Следующий участок кода это простой тест, для проверки, был ли просто введен текст /foo или с параметром /foo help позволяя отобразить список доступных команд.

    if #options == 0 or options[1] == "help" then
       -- выводим список команд
    end

Примечания

Personal tools
Namespaces
Variants
Actions
Menu
Wiki
Toolbox