- Регистрация
- 13 Июн 2022
- Сообщения
- 72
- Автор темы
- #1
Всех приветствую на уроке №3. В данном уроке мы будем разбирать, как работать с сообщениями от пользователей, и как выделять из них аргументы.
1. Для начала - запустим нашего бота.
Зайдем в папку, где находится наш бот(в прошлых уроках создавали), затем нажмём запустим консоль CMD(также показано в предыдущих уроках).
Введём команду:
Отлично, наш бот успешно запущен!
2. В обработчике события "messageCreate" создадим 3 переменных.
Переменная 'memberName' будет получать "Username"(ник) пользователя, отправившего сообщение.
Переменная 'memberId' будет получать "UserID"(id) пользователя, отправившего сообщение.
Переменная 'content' будет получать "Message.text"(сообщение) от пользователя.
Примерно вот так должен выглядеть наш код в событии "messageCreate"
3. Попробуем вывести эти переменные.
Сделаем проверку на команду(сообщение) "!pawno-help", которая будет выводить нам наш UserName и UserId.
Добавляем в событие "messageCreate" нашу проверку и вывод.
Проводим процедуру по перезагрузке бота(в cmd консоль команду luvit *файл)
Получаем:
Как мы можем увидеть - наш бот вывел всё верно!
4. Попробуем отлавливать наш аргумент.
Для этого в Lua существует две функции. 'sub' и 'match'
Также мы будем использовать функцию lower()
string.sub - возвращает подстроку строки, которая начинается с символа с индексом i и продолжается до символа с индексом j; i и j могут быть отрицательными.
string.match - поиск первого вхождения шаблона в строку. Возвращает захваченные значения. Для поиска можно использовать регулярные выражения.
string.lower - переводит текст в нижний регистр(not capslock)
Давайте напишем команду '!arg', которая будет нам выводить аргумент после команды.
Давайте проверим команду, но для начала перезапустите бота.
В первый раз я написал пустой аргумент, поэтому он его не вывел.
1. Для начала - запустим нашего бота.
Зайдем в папку, где находится наш бот(в прошлых уроках создавали), затем нажмём запустим консоль CMD(также показано в предыдущих уроках).
Введём команду:
Lua:
luvit *название файла без расширения*
Пример: Если название файла с ботом "bot.lua" >> luvit bot
Отлично, наш бот успешно запущен!
2. В обработчике события "messageCreate" создадим 3 переменных.
Переменная 'memberName' будет получать "Username"(ник) пользователя, отправившего сообщение.
Переменная 'memberId' будет получать "UserID"(id) пользователя, отправившего сообщение.
Переменная 'content' будет получать "Message.text"(сообщение) от пользователя.
Примерно вот так должен выглядеть наш код в событии "messageCreate"
Lua:
local memberName = message.member.username
local memberId = message.member.id
local content = message.content
3. Попробуем вывести эти переменные.
Сделаем проверку на команду(сообщение) "!pawno-help", которая будет выводить нам наш UserName и UserId.
Добавляем в событие "messageCreate" нашу проверку и вывод.
Lua:
if content == '!pawno-help' then -- Проверка на команду
message:reply('UserName - '..memberName..' | UserID - '..memberId) -- Вывод сообщений
end -- Закрываем проверку
Проводим процедуру по перезагрузке бота(в cmd консоль команду luvit *файл)
Получаем:
Как мы можем увидеть - наш бот вывел всё верно!
4. Попробуем отлавливать наш аргумент.
Для этого в Lua существует две функции. 'sub' и 'match'
Также мы будем использовать функцию lower()
string.sub - возвращает подстроку строки, которая начинается с символа с индексом i и продолжается до символа с индексом j; i и j могут быть отрицательными.
string.match - поиск первого вхождения шаблона в строку. Возвращает захваченные значения. Для поиска можно использовать регулярные выражения.
string.lower - переводит текст в нижний регистр(not capslock)
Давайте напишем команду '!arg', которая будет нам выводить аргумент после команды.
Lua:
if content:sub(1, #'!arg'):lower() == '!arg' then -- Делаем проверку на команду, используя методы Sub и Lower
local arg = content:match('!arg (.*)') -- Регистрируем переменную arg, и записываем в неё аргумент. "!arg (.*)" - означает, что мы ищем любые символы после команды
if arg ~= nil then -- Делаем проверку на то, что переменная не равна неопределённому значению
message:reply('Ваш аргумент = '..arg) -- Если ввели аргумент - выведет его
else -- Если переменная arg равна неопределенному значению(пустому, nil)
message:reply('Вы не ввели аргумент!') -- Выводим сообщение об ошибки
end -- Закрываем проверку
end -- Закрываем проверку
Давайте проверим команду, но для начала перезапустите бота.
В первый раз я написал пустой аргумент, поэтому он его не вывел.