Добавить бота yui в дискорд
Гайд для GitHub по написанию бота c помощью discord.py
Дата написания данного гайда 05.02.2021 Библиотека discord.py может обновляться, поэтому после крупных патчей разработка бота может отличаться. В любом случае ближайшие несколько месяцев данный гайд будет актуален.
Что нам потребуется?:
- Стабильное интернет соединение
- Неплохие знания Питона
- Умение "гуглить" и находить нужную информацию
- Среда для написания кода
Я советую для разработки бота создать отдельный сервер в Дискорде, где мы будем проверять нашего бота, потому что почти ни у кого не получается запустить сложный код с первого раза, а спамить другим не очень хочется.
Создание Application'a:
После создания Application'а мы должны перейти во вкладку Bot, а затем нажать на кнопку Add Bot.
Если у вас появилось зеленая надпись по типу: A wild bot has appeared!, значит вы всё сделали правильно и бот у вас уже создан.
Подключаем нашего бота к серверу:
Для того чтобы подключить бота к вашему серверу Дискорд, нужно следовать простым инструкциям:
Нужно получить Client_ID вашего бота. Для этого мы переходим во вкладку General Information и копируем его нажав на кнопку Copy.
Копируем эту ссылку ==> https://discordapp.com/oauth2/authorize?&client_id=(тут)&scope=bot&permissions=8 . В эту ссылку вместо слова "тут" вставляем наш Client_ID. Скобки естественно убираем. Доп. информация: В нашей ссылке bot&permissions=8 означает что наш permissions integer равен 8. Проще говоря, это число отвечает за то, какие права будут выданы боту при подключении. Этот код можно узнать во вкладке Bot (в которой мы создавали бота). Пролистав вниз, вы сможете сами выбрать нужные вам права, но я советую оставить 8, так как если вы будете сами выбирать права, могут произойти казусные ситуации при работе с ботом.
После создания нашей ссылки мы переходим по ней, выбираем сервер на который хотите пригласить бота и нажимаем кнопку Авторизовать. После прохождения капчи наш бот успешно присоединится к серверу, но будет оффлайн. Не пугайтесь, это нормально, ведь наш бот еще не запущен.
Создание проекта:
Ну вот мы и готовы начать писать код для нашего прекрасного бота. Если вы знаете Python на ОЧЕНЬ низком уровне, я советую воздержаться от создания ботов и заняться чем нибудь более простым.
Для начала я советую создать пустую папку где мы будем хранить все файлы для нашего бота.
Затем если у вас не установлена библиотека discord.py, вам нужно её устновить. Для этого переходим в командную строку и пишем: pip install discord.py
Внимание, для установки библиотек требуется pip, если он у вас не установлен, то гугл в помощь ^_^
После успешной установки библиотеки, переходим в вашу любимую среду разработки, в моём случае это PyCharm. Затем создаем новый файл Python файл с названием "bot" (такое название не даст вам запутаться) и расширением .py и сразу сохраняем его в нашей папке с проектом.
Первые строчки кода: Начинаем писать скрипт для нашего бота.
Для начала подключаем (импортируем) наши библиотеки:
(можем запустить наш скрипт для проверки работоспособности библиотеки)
Создаем еще один файлик .py названием config, для хранения в нём опасных данных. Почему мы не можем просто создать переменные с этими данными? Всё очень просто. Это самый простой способ защитить себя от злоумышленников. Если кто-то каким-то образом получит ваш код, то не сможет управлять вашим ботом. Все наши токены будут хранится в отдельном файлике.
В файле config.py создаем словарь, к которому мы будем обращаться при работе в ботом:
Сохраняем файл config.py и возвращаемся обратно к файлу bot.py
Импортируем наш файлик config.py:
Написание "тела" для бота и первый запуск:
Я буду стараться объяснять подробно каждый шаг и каждую строчку, потому что на первый взгляд это может показаться сложным, хотя таковым не является.
- Переменная bot - это "тело" нашего бота. Ему мы присваиваем значение commands.Bot с определёнными аргументами.
- command_prefix=settings['prefix'] - это аргумент, в который мы вписываем значение нашего префикса. settings['prefix'] означает, кто мы обращаемся к словарю settings (который мы импортировали из файла config.py) и обращаемся к ключу prefix, в котором вписано нужное нам значение.
Затем мы можем проверить, запускается наш бот или нет. В библиотеке discord.py есть огромное количество разных ивентов (Event). Одним из них мы сейчас воспользуемся:
@bot.event - говорит нам о том, что ниже будет прописана функция, являющаяся ивентом.
async def on_ready(): - Асинхронная функция (Очень важно все функции создавать асинхронными, так как бот должен выполнять несколько функций в одно время). Ей присваивается значение on_ready, данная функция срабатывает когда бот полностью подключен и готов к работе. Аргументов у этой функции нет.
Создание первой команды:
Настало время создать первую команду для нашего бота:
Можем запускать нашего бота и проверять команду!
Давайте создадим еще одну команду, но уже с использованием посторонней библиотеки. Я возьму библиотеку random. Для начала её нужно подключить. Переходим в cmd (командную строку) и пишем pip install random, после чего начнется скачка библиотеки. Затем в самом начале кода пишем:
Я создал очень простую команду, которая умеет генерировать случайное число от 0 до числа, которого мы зададим сами:
Точно так-же говорим о том что ниже будет команда с помощью строчки @bot.command. Напоиманаю, что bot - это перемеенная, которую мы создали в самом начале. Это наше "тело" для бота. Дольше создаем асинхронную функцию randoms. Почему не random? Потому что название функции не может совпадать с названием библиотеки. Дальше мы передаем 2 аргумеента: ctx и arg. В arg поместиться наше число, которое мы будем задавать. Дальше я использую try, вы спросите зачем? Всё просто. Если мы случайно укажем вместо числа какой-то другой символ, бот в чате выдаст ошибку. Затем мы создаем переменную a - это наше сгенерированное число. Как генерировать числа с помощью библиотеки random вы сможете найти выше по ссылке. Дальше с помощью await ctx.send мы выводим наше число.
Есть еще очень классная "фича" в библиотеке discord.py как стили embed. Их обычно используют для красивого вывода какой либо информации на экран. Например команды help обычно делают с использованием этого стиля. Я создал небольшую и довольно простую функцию, которая называется menu. В неё мы например можем записать каждую команду в боте и указать что она делает. Вот что у меня получилось:
Некоторые строчки я буду пропускать, потому что я их свойства и значения я объяснял выше. В любом случае если вы что-то не поняли я оставлял ссылку на доп. информацию в самом конце гайда. Для начала мы задаем переменную embed, в которой мы будем хранить сам "embed", а так-же его значения. Color - цвет, title - текст, который будет являться "названием". В них мы записываем нужны нам значения. Кстати в color мы так-же можем записывать цвет словами, например "yellow", "white" и так далее. Дальше мы прописываем add_field, эта штука добавляет нам новую "строку" для "embed". В значение name мы записываем имя строки, в value - значение ну и в inline указываем True или False, она меняет расположение строки. Советую поиграться и выбрать самый оптимальный для вас вариант. Последней строчкой в значении embed мы просто указываем переменную, которую мы задали в начале функции.
Есть еще несколько вещей, которые я хотел бы разобрать, но это я сделаю в будущем
P.S Возможно, я когда нибудь дополню этот гайд дополнительными интересными командами и ивентами.
Главные функции и возможности
Yoku бот в Дискорд — это помощник для игровых и серверных уведомлений с базовым набором административных команд. Он помогает связать игровые события с каналом. Пример: на сервере Minecraft проходит ивент, и нужно тегнуть победителей, которые сейчас не в сети.
Чтобы не писать пользователям лично, необходимо настроить программу таким образом, что он будет выводить объявления с тегами. Это удобно, когда на больших проектах и игровых серверах проходят события. Автоматизация позволяет сэкономить время и сделать проведение любых событий удобнее.
Yoku — больше функциональный игровой бот. У него базовый набор административных команд: выписать предупреждение, кикнуть пользователя, забанить и прописать причины, а они отобразятся в чате.
Дополнительно, бот дает возможность прикрутить к каналу экономику. Это чисто косметическая штука -получение баллов за активность. Если администрация добавит призы за монеты, то можно стимулировать людей общаться на канале, но сейчас в ру-сегменте это нигде не реализовано. Экономика используется вместе с другими ботами, которые дают возможность играть в текстовые РПГ на канале.
Как скачать и добавить бота
Добавить бота в Дискорд можно через прямое приглашение на сервер. Yoku есть либо на официальном сайте разработчика, у него есть своя страница в соцсетях и группа в FB, либо на специальных сайтах со сборником ботов.
Лучше искать официальную версию разработчика, так как он периодически дополняет команды, вводит новые функции и совершенствует программу, чтобы он выполнял больше, а баговался меньше. Но со сборниками работать удобнее — там пользователь найдет несколько вариантов и понять, что больше подходит для сервера.
Настройка бота и отключение
Бот автоматически начинает работу сразу после добавления на сервер. Его не нужно запускать и прописывать определенные команды. Единственное, что нужно знать — это префикс бота.
Отключить бота можно выгнав его с сервера. После этого он больше не появится до того момента, как администратор снова не пригласит его. Посторонние пользователи не могут добавлять ботов. Владелец канала или тот, кто получил права, могут это сделать.
То же самое касается и отключения. Модерация не может выгнать ботов. Владелец и администрация обладают такими правами.
Команды управления ботом
Yoku bot в Discord имеет 9 блоков команд:
- General (общие);
- Notifications (уведомления);
- Moderation (модерация);
- Points (очки сервера);
- Gambling (азартная игра на монеты);
- Search (поиск чего-либо);
- Images (добавление случайной картинки из архива бота);
- Image Processing (обработка изображения);
- User (выбор пользователя).
Общие команды сервера — блок, выдающий всю информацию о пинге, канале и боте. Самая важная — !help. Вызов помощи. Пользователю выдается весь список команд, бота. Кратко, без пояснений.
Команды модерации стандартны для административных ботов. !mute, !ban, !kick — три основных, ими пользуются больше всего. Выглядит так: !mute *ник пользователя* *причина*. Причину указывать не обязательно.
Очки сервера — экономика. Она ни на что не влияет. Единственное, как можно реализовать эту систему — давать реальные бонусы, как на Twitch. Но в ру-сегменте популярные игровые каналы могли бы это сделать, но им это не интересно.
Боты играют немаловажную роль в жизнях Дискорд серверов. Они выполняют многие функции, которые делают многие пользователи и упрощают эти процессы до набора простых команд. Администрация, модерация сервера доведена до автоматизма, не требует участия пользователя — только подтверждение правильности выполненных действий. Yui bot в Discord — один из многофункциональных ботов, созданных специально для Дискорда. Серверов-участников у бота около 520 000, каналов, использующих бота — более 17 миллионов, пользователей — более 34 миллионов.
Главные функции и возможности
Бот Юи умеет немало полезных, развлекательных вещей. Её функции подразделяются на несколько категорий:
И это — малая часть всех категорий, в которых содержатся десятки интересных команд. Юи стоит скачать хотя бы для того, чтобы посмотреть команды в Дискорде, проверить их функционал. Юи полюбят как “серьёзные” администраторы, модераторы сервера из-за её возможностей к администрированию сервера, так и те, кому хочется поразвлекаться, хорошо провести вечер в голосовом или текстовом чате.
Как скачать и добавить бота
Обратите внимание на то, что, если на сервере у вас нет прав администратора, Дискорд не покажет его в списке предложенных серверов. Это значит, что Юи нельзя будет добавить, пока администратор не даст вам необходимые права доступа, сам не добавит её на сервер.
Настройка бота и отключение
Для отключения необходимо выгнать бота из канала командами “Выгнать”, “Заблокировать”, “Замутить”. Блокировка выполняет более важную функцию, так как убирает бота из сервера навсегда, без возможности его возвращения (пока администратор не уберёт её оттуда).
Команды управления ботом
Команд для управления бесчисленное множество. Здесь и простые команды, сводящие двух пользователей в одну пару — y!ship, и команды, которые помогают администрированию — ban (блокировка участника), kick (выгнать участника из сервера), softban (блокировка участника на временной основе).
Юи — интересный бот. И об этом говорит даже первое впечатление о сайте, на который пользователь заходит, чтобы её установить. Она выполняет много функций для бесплатного бота, который не требует доната, помощи разработчикам. Её стоит установить, поскольку, даже если пользователю не нужны модераторские вещи, всегда можно развлечься с друзьями с помощью развлечений.
Almost like a daughter, it's a general purpose bot, called Yui I'm developing for discord with discord.js library, the name is inspired by the character Yui from the anime Sword Art Online, which at first is an A.I.
🤔 How to use in my server?
- Add the bot, just click in this LINK
- You must be an administrator on some server
🧩 Running locally
Before all you must to be added the bot in your server, to do this follow the link
❌ Error Handling
For the error consoles to work, the folder structure has to be standardized, just follow these instructions:
The command name must be the same as its folder name.
The name of the functions must be the same as the arguments passed after the command
The code of catch Error:
🧬 Application flow
Directories
- Directory where all bot commands are found
- Each command is in a folder with its name
- Inside each folder has
- main.js - Command settings
- /functions - Inside this folder are the subcommands so to speak
- Directory where all bot events are found
- Everything that will be executed as an action is here
- Where will the data be manipulated
- Handlers are created to manipulate data types
- Events
- Errors
- Commands
Important Files
- Anonymous function
- List the commands
- Execute the handlers by sending the events directory
- List the commands
- Add them to the client which is the BOT instance
- Handle the events
- Speak when the bot has fully started
- Listen to the event message
- Handle errors
- Say the types of errors
- Check who is calling the command, if it is the OWNER_ID it will assign the name defined in the .env file
- Handles the triggered event
- Do the checks
- Execute the command
- Shows how many servers the bot is connected to
- Says the application is already running
📚 References
About
👾 Almost like a daughter, it's a general purpose bot, called Yui I'm developing for discord with discord.js library, the name is inspired by the character Yui from the anime Sword Art Online, which at first is an A.I.
Среди других Дискорд-ботов Yagpdb – один из лучших. Может все: банить, удалять пользователей, рассылать приглашения, развлекать играми. Разработчик создал целый фолиант с инструкциями по настройке бота. Это не значит, что Яга излишне сложна в использовании. Наоборот. Если бы это было так, ее бы не устанавливали тысячи пользователей по всему миру. Не считали бы отличным ботом для общего применения.
На что способен Yagbdb bot
Yagbdb bot (или «Яга»), расположенный на домене xyz, назван разработчиками «очередным Discord-ботом общего применения». За этими словами стоят мультифункциональность, способность выполнять одновременно множество различных задач, ни на минуту не теряя контроль над ситуацией.
Бот способен назначать роли, подключаться к Ютубу, отправлять приглашения, вести модерацию (в том числе в авторежиме). Кроме этого, Яга показывает статистику, как общую, так и по заданным пользователям, ведет журнал и даже знакомит юзеров с удивительными фактами в окошках!
Разработчик, Jonas747, внимательно следит за реакцией пользователей. Периодически добавляет новые функции, совершенствует существующие. Залог популярности Yagbdb bot заключается в том, что приложение может делать все, что чаще всего является необходимым. Да, Яга не имеет специализированных команд. Зато отлично справляется с большинством рутинных задач. При этом распространяется бесплатно.
Команды бота
Все прекрасно в Yagpdb. Жаль только, что по-русски он не понимает. Все команды, как и меню, англоязычные. Но это не значит, что с ними невозможно разобраться. Кстати, документация к боту выделена в отдельный раздел. Разработчик сгруппировал команды в зависимости от назначения.
Вот что у нас есть: «General» («Общие»), «Tools And Utilities» («Инструменты и утилиты»), «Custom Commands» («Пользовательские»), «Развлечения» («Fun»). Из каждой позиции возможно вернуться в предыдущее меню. Все очень просто и дружественно. Отдельно выделены «Уведомления» («Notification Feed»). Разработчик не один час потратил, чтобы все было так удобно и красиво.
Вообще команд необычайно много. Рассмотрим основные:
Самые востребованные команды собраны в «Ядре» («Core»). По каждому разделу дается подробнейшее объяснение. Работать с Yagpdb интересно и занимательно. Причем разобраться с базовым набором действий не составит труда даже без знания английского.
Как его настроить
Настройка бота начинается с входа в меню команд. Лучше сразу же дать Yagpdb требуемые права. Позже их можно подкорректировать. На что обратить внимание: роли, по умолчанию, присваиваются автоматически. Но для этого роль самого бота должна быть главенствующей.
Слева размещается главное меню (навигация). В центре – общая информация. Чтобы увидеть статистику, нужно зайти во вкладку «Stats». «Server Discovery» – это данные о сервере пользователя. Команды управления ботом собраны в разделе «Core». Периодически следует смотреть в «Control panel logs»: там хранятся файлы журналов, история действий с настройками бота.
Как добавить бота на свой сервер
Не забываем выбрать сервер для подключения, задать требуемые полномочия бота. И можно начинать использование Yagpdb. Управлять модерацией, менять фон, раздавать роли пользователям.
Читайте также: