Создание канала discord py
Гайд для 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 Возможно, я когда нибудь дополню этот гайд дополнительными интересными командами и ивентами.
Написал код который если зайти в определённый голосовой канал создаст новый приватный голосовой канал, проблема в том что после того как в голосовом канале никого не будет он должен удалится я написал код для этого, но он не работает.
После того как я вышел с канала выдает ошибку:
Только что сделал проверку вот что получил:
Когда зашел в канал:
Как в Discord.py сделать создание приваток на 2 серверах? — Хабр Q&A
Прежде чем создать свой канал в Дискорде, нужно пройтись по определению! Не все пользователи понимают, как работает мессенджер и что представляют собой определенные функции.
В иерархии Дискорда представлено несколько точек, высшей из них является сервер. Это своеобразное сообщество по интересам: вы создаете серверы для отдельных игр или групп людей – для учебной переписки/общению внутри семьи/для дружеского круга.
А внутри каждого сервера можно выделить несколько «комнат» . Здесь и кроется ответ на вопрос, как создать канал в Дискорд! Они представляют собой чаты для ограниченного числа людей, позволяют общаться внутри замкнутой группы. Если сравнивать с привычными мессенджерами – это отдельные групповые чаты.
С определением закончили! Пройдемся по видам, всего их два:
Попробуем создать голосовой канал в Discord или сделать текстовую группу? Следуйте инструкции:
- Откройте мессенджер;
- На панели слева найдите нужный сервер и жмите на аватар;
- Кликните по стрелке, расположенной рядом с названием и выберите пункт «Создать» ;
- Или найдите иконку в виде плюсика;
- Откроется небольшое меню – поставьте галочку напротив нужного типа (голосовой/текстовый);
- Задайте название в специальном поле;
Вы увидите, что новая группа появилась в меню Дискорда слева – посмотрите в соответствующем разделе.
Многих интересует возможность создать приватный канал в Дискорде: подключаться и читать смогут только выделенные роли. Давайте попробуем!
- Вернемся к процессу создания – дпод названием группы есть иконка с замочком;
- Найдите тумблер напротив кнопки «Приватный» и активируйте его;
- Появится меню «Кто может получить доступ» ;
- Из списка доступных ролей выберите нужные и включите тумблеры напротив каждой;
- Нажмите на кнопку создания.
Готово! Вы смогли сделать невидимый канал в Дискорде для избранных. Количество подобных групп не ограничено.
Первый этап завершен – пора поговорить о том, как настраивать группу. Вы еще многого не знаете!
The official home of the Python Programming Language
You will also need to go to the Discord website and create your bot, add it to a server, and grant it permissions. This can be done at the following link.
Как создать канал (открытый и закрытый)
Алгоритм действий такой:
- Жмите правой кнопкой мыши по изображению сервера слева вверху и выберите Настройки сервера.
- В появившемся перечне жмите на кнопку Роли. Создайте необходимое количество ролей путем нажатия на символ плюса в кружочке.
- Переходите в раздел Участники и там присвойте роли каждому из пользователей. Для этого жмите на плюс возле ника и выберите необходимый вариант, к примеру, Лидер. Если в этом списке нет людей, убедитесь, что справа вверху выбран пункт everyone.
- В разделе Текстовые каналы жмите символ «плюс» и введите имя. После этого кликните на кнопку Создать. При желании сделайте то же самое для раздела Голосовые каналы. После этого только Лидер получает доступ к Дискорд-каналу. Остальных пользователей можно добавлять по желанию.
- Жмите на плюсик возле необходимого Дискорд-канала (голосового, текстового).
- Переведите тумблер Приватный канал в правую сторону. В этом случае только выбранные роли смогут подключаться к общению.
- Переведите ползунок возле названия роли, получающей доступ к конкретному Discord-каналу, в правую сторону.
- На главной странице Дискорда переходим к нужному серверу.
- Рядом с надписью «Текстовые каналы» имеется кнопка с плюсиком, кликаем по ней.
- Далее вводим название для серверной надстройки, определяем круг лиц, имеющих право доступа (в зависимости от предварительно созданных ролей).
- Завершающий этап — подтверждение совершенных действий кнопкой создания.
- добавлением выбранных пользователей вручную;
- назначением роли.
- Войдите в программу.
- Подберите сервер.
- Нажмите на канал, который должен быть закрытым.
- Нажмите на «настройки».
- Перейдите по «разрешение».
- Выберите категорию @everyone.
- Нажмите на правосторонний красный крестик.
- Сохраните внесенные изменения.
- Выберите «плюс» с названием Роли/Члены.
- Выберите пользователя и добавьте его в личный канал.
- Выберите разрешение для выбранного пользователя.
- Сохраните измененные данные.
- Откройте панель управления. Выберите категорию «Создать канал».
- Подберите нужный канал. Дайте данному каналу имя, и настройте его в приватный канал. Активируйте данный пункт.
- После выберите роли, которые смогут общаться в данном канале. Сохраните.
- Создайте иконку с замочком, то есть закрытым. Так пользователь сможет закрыть голосовой канал в дискорде.
- Нажмите на клавишу «Приватный», задействуйте его.
- В новой вкладке появится новое меню, где придется выбрать «Кто может получить доступ».
- В списке имеющихся ролей нажмите на определенного человека и выключите приват на остальных.
- Создайте свой канал и сохраните проделанные действия.
- trigger: is a string that will be what the command handler will look for.
- function: is a function that will be executed when it’s trigger is found.
- args_num: is an integer that marks the amount of args the function uses.
- args_name: is an array of strings that name the args for feedback purposes.
- description: is a string that describes what the command does.
- Checks if the message starts with a command trigger, if it doesn’t it stops.
- If the message does start with a trigger if makes sure that the trigger is valid by comparing it to the command dictionary's trigger value, if it’s not it stops.
- If the trigger is valid it removes the trigger from the message string and splits it at the spaces making an array named args.
- Then it checks to see how many args the command’s function takes using the command dictionary's args_num value, if it’s zero it simply executes the function in the command dictionary’s function value. If the command needs more than zero args it makes sure that there are at least the required amount and it passes them to the command dictionary’s function.
Теперь рассмотрим, как сделать закрытый канал в Дискорде. Для этого предусмотрена специальная функция, позволяющая задавать права доступа.
Сделайте следующие шаги:
Поставить пароль на канал не получится, ведь эта опция не предусмотрена. Но можно использовать альтернативный метод. Он позволяет закрыть канал непосредственно в момент создания. Для этого сделайте следующее:
Закрытый канал показывается в общем перечне и его будут видеть все участники. При этом войти смогут лишь те, у кого имеется разрешение.
Первый опыт администрирования
«Как создать канал в Дискорде» — таким вопросом задаются многие пользователи, ведь хочется собрать вокруг себя единомышленников, иметь дополнительные права.
Для начала новичку нужно создать иерархическую систему в виде ролей. Это поможет распределить права между участниками, создать монолитную структуру взаимодействия, разнообразит живое общение.
«Творец» канала имеет права администратора и вносить изменения в его роль не требуется. Но будет нелишним проверить свои возможности внутри организационной структуры.
Для удобства восприятия разделим повествование на несколько частей.
Текстовый канал
Голосовой канал
Процесс создания идентичен текстовому собрату. Разница состоит только в выборе необходимого пункта после нажатия «плюсика». Выбираем «Голосовой канал» и выполняем предписания вышеописанной пошаговой инструкции.
Площадка для общения с помощью звуков видна для всех пользователей, не имеющих права доступа. При попытке подключения видим перечеркнутый красными линиями круг.
Администрирование предусматривает внесение изменений в серверную реализацию. В настройках выбираем пункт «Права доступа» и видим список активных ролей, участников и их права.
Как добавить грустные слова в бота
Для начала нам нужно создать список Python, содержащий грустные слова, на которые будет отвечать бот.
Добавьте следующую строку после создания переменной client :
Не стесняйтесь добавлять в список больше слов.
Добавьте следующий список после созданного вами списка sad_words :
Как и раньше, не стесняйтесь добавлять в список другие фразы по вашему выбору. Сейчас я использую всего три элемента, потому что позже мы добавим возможность пользователям добавлять больше ободряющих фраз для использования ботом.
Вот обновленный код:
Это хорошее время для тестирования бота. Теперь вы знаете достаточно, чтобы создать собственного бота.
Discord has a wonderful API that allows you to creates bots that can join Discord servers and channels and help manage as well as add extra functionality for it’s users.
In this tutorial I will show you how to make a basic Discord bot written in Python 3 that will be able to take handle custom commands using the discord.py package available through pip.
Having a good editor can make the process of writing and debugging code in any language much easier. Some good free editors that I have personally used are PyCharm Community Edition and Sublime Text 3.
You will also need to make sure that you have Python 3 installed on you computer. If you are on Windows you can download an installer from the following link.
Как улучшить бота
Теперь, когда у нас есть базовый бот, мы его улучшим. Не зря он называется «Encourage Bot».
Мы начнем с добавления функции «$inspire».
Как запустить бота
Теперь нажмите кнопку запуска вверху, чтобы запустить своего бота в repl.it.
Если вы пишете бота локально, вы можете использовать эти команды в терминале для запуска бота:
В других системах:
Теперь перейдите в свою комнату в Discord и введите «$hello». Ваш бот должен ответить «Hello!».
Want to inject some flavor into your everyday text chat? You're in luck! Discord uses Markdown, a simple plain text…
At this point you can do allot. Any information you can get into Python (which is allot) you can style and print to the users. You can add allot of cool features just from using different API’s. Below are a couple other API’s that I have made commands with.
Как создать реплику и установить disocrd.py
Вы можете разработать бота на своем локальном компьютере с помощью любого редактора кода. Однако в этом уроке мы будем использовать Repl.it, потому что это упростит всем пользователям следовать его указаниям. Repl.it - это онлайн-среда IDE, которую вы можете использовать в своем веб-браузере.
Создайте новый Repl и выберите «Python» в качестве языка.
Чтобы использовать библиотеку discord.py, просто напишите import discord вверху main.py . Repl.it автоматически установит эту зависимость, когда вы нажмете кнопку «Run».
Если вы предпочитаете кодировать бота локально, вы можете использовать эту команду в MacOS для установки discord.py:
Возможно, вам придется использовать pip3 вместо pip .
Если вы используете Windows, вы должны вместо этого использовать следующую строку:
Как пригласить вашего бота присоединиться к серверу
Теперь вам нужно подключить своего пользователя-бота к серверу. Для этого вы должны создать для него URL-адрес приглашения.
Перейдите на вкладку «OAuth2». Затем выберите «бот» в разделе «scopes».
После выбора соответствующих разрешений нажмите кнопку «Copy» над разрешениями. Это скопирует URL-адрес, который можно использовать для добавления бота на сервер.
Вставьте URL-адрес в свой браузер, выберите сервер, на который будет приглашен бот, и нажмите «Авторизовать».
Чтобы добавить бота, вашей учетной записи необходимы разрешения «Управление сервером».
Теперь, когда вы создали пользователя-бота, мы начнем писать код Python для бота.
Добавление или удаление пользователей
В разделе «Права доступа» увидите список посетителей и ролей на сервере. Здесь можно добавлять новый людей и удалять существующих.
Нажмите на кнопку Добавления участников или ролей. В свою очередь для удаления найдите пользователя в списке и щелкните на значок с крестиком рядом с ним.
Асинхронная библиотека discord.py содержит все что нужно для бота, с помощью нее даже можно работать с голосовыми каналами сервера. В этой статье я расскажу как создать простенького бота для вашего discord сервера.
Как добавить в бота вдохновляющие цитаты
Мы будем получать вдохновляющие цитаты из API под названием zenquotes.io. Нам нужно импортировать еще пару модулей Python, добавить функцию get_quote() и обновить код нашего бота, чтобы вызвать функцию.
Вот обновленный код. После кода я объясню новые части.
Функция get_quote() очень проста. Во-первых, она использует модуль запросов для запроса данных из URL-адреса API. API возвращает случайную вдохновляющую цитату. Эту функцию можно легко переписать для получения котировок из другого API, если текущий перестанет работать.
Затем внутри функции мы используем json.loads() для преобразования ответа API в JSON. Методом проб и ошибок я понял, как перевести цитату из JSON в нужный строковый формат. Цитата возвращается из функции в виде строки.
На этом этапе вы можете запустить свой код и попробовать его.
Как поставить пароль на канал в дискорд?
Так как поставить пароль на канал в Дискорде нельзя, то установить ограничение можно следующим образом:
Получение токена и Client ID для вашего бота
Для получения токена и ID бота небходимо создать свое приложение и в разделе General Information скопировать Client ID.
А в разделе настроек создать бота и скопировать его токен. Задача не сложная, думаю все с этим справятся.
Discord API Docs for Bots and Developers
Как закрыть сервер в Дискорде?
Как мне удалить сервер?
Как создать новый приватный канал?
Запустите Discord и войдите на сервер, на котором у вас есть права администратора.
После входа увидите список чатов. Нажмите на значок с плюсом против них, чтобы вызвать мастер создания нового канала.
В следующем окне выберите, какой хотите создать – текстовый или голосовой. Выберите тип и назовите его, затем в нижней части окна отметьте флажком опцию «приватный канал». Затем нажмите на «Далее».
На следующем шаге появится возможность выбрать тех участников, которым хотите предоставить доступ. Это можно сделать двумя способами:
Если на сервере много посетителей и сообщество разделено на разные группы, можете назначить приватной комнате отдельную роль. Просто отметьте ее в списке. Это приведет к тому, что все участники, имеющие эту роль, сразу подключатся к нему.
После выбора участников или ролей щелкните на кнопку «Создать канал».
Как сделать существующий канал закрытым
Чтобы закрыть канал в Дискорде:
С телефона
Чтобы закрыть сервер в Дискорде воспользуйтесь удобным приватным чатом. Здесь собираются только те люди, которые были приглашены на установленных основателями условиях.
Таким образом, пользователь сможет закрыть текстовый канал в Дискорде и открыть его для определенного числа людей. К великому сожалению, у пользователей будет возможность выбрать только одну роль. Проиллюстрировать все это должным образом не удастся. Приватные каналы следует создавать для ограничения других участников к нему.
С компьютера
Большинство пользователей интересует вопрос, связанный приватного канала не на телефоне, а персональном компьютере. Подключиться к действующему каналу смогут только выделенные администратором роли. Для этого придется сделать:
Процесс по созданию закрытого канала проделан, теперь пользователь находится в невидимой зоне и виден лишь для избранных участников Дискорда. Общее число данных групп может создаваться в неограниченном количестве. Начальный этап осуществлен, пора посмотреть варианты, как настроить собственную группу.
Видео
Заключение
Вот так можно легко запустить у себя на сервере бота. Как можно заметить библиотека делает практически все за тебя и остается только добавлять свой функционал с использованием python. В следующий раз я покажу как следить за событиями, подключатся к голосовым каналам (избегая проблем с linux и Windows), использовать роли и права участников и другое.
Из этого туториала Вы узнаете, как полностью создать собственного бота Discord в облаке.
Вам не нужно ничего устанавливать на свой компьютер, и вам не нужно ничего платить за размещение своего бота.
Мы будем использовать целый ряд инструментов, в том числе Discord API, библиотеки Python, и платформы облачных вычислений под названием Repl.it.
Markdown Text 101 (Chat Formatting: Bold, Italic, Underline)
Integrate your service with Discord - whether it's a bot or a game or your whatever you wildest imagination can come up…
The following eight pictures will guide you through setting up you bot and adding it to your Discord server.
You should now be able to see your bot in the Discord server you added it too and it should have a little tag that says “Bot” next to it’s name.
Create a folder that you will use for bot and in it create a file called bot.py. We are going to start by adding the boilerplate code that is required.
But first we need to install discord.py with Python’s package manager called pip. You can do this by navigating to you Command Prompt in Windows and entering the following.
After this has completed successfully we can open our bot.py and begin. The code below imports the discord.py package that we just installed as well as creates our Discord client object that we will use to interact with the API. The token variable has our bot’s token that we copied earlier from the Discord developers page.
The client variable seen on line 4 is a Discord client object and will facilitate all the communication of the bot.
The on_ready() function above will be called when the bot starts and is connects to the API and will print the bot’s username, client ID, and the version of discord.py that is being used as seen beneath the try on line 12, 13, 14.
The on_message() function above will be called when ever a new message is posted in the Discord server and the message will be passed as the message variable seen entered as it’s only argument. As we have the function right now it will print that message to the console when received.
Try running this code, if it works you should see your bot’s username and client id printed in the console. If you go to the Discord channel that bot was added to and type a message you should see it appear in the console where you bot is running, you might also get an error directly after it which you can ignore for now.
So at this point our bot is able to read every message that is posted in it’s Discord server. To make this useful we need to implement some kind function that evaluates the messages that are posted. We can do this by making a command handler which will read each message, determine if a command is being called, and relay the appropriate response.
Although, before we make our command handler we have to decide on how we are going to organize our commands to make them easy to implement and visualize. My favorite way to do this in Python is by using dictionaries. Dictionaries allow us to define multiple labeled properties to a variable. An example is shown below.
The function above starting on line 2 will take in the parameters message, clients, and args. The variable message is an object with the details of the message, the client variable is also an object we need in the function to send messages with, the args variable is and array that will contain the arguments for function. This function will be used as a variable in our dictionary.
The Command Dictionary Parts
We could just write an independent function that would handle these commands but there is a better way to do it, creating a class. This class will contain methods to add commands, store commands, and evaluate commands. The class would look like this…
The command_handler(self, message) method will be used to evaluate each message that is sent on the Discord server. It basically just sees if the message starts with a command trigger and if it does it executes it’s corresponding function. The following is a pseudo code breakdown of what the command handler is doing for each message posted in the server.
Below is what all this code would look like together and should be completely functional.
This bot should have a fully functioning !hello command that takes in one argument.
So what we have now is a functional “platform” to expand on. In this step I will demonstrate some of the more advanced things you could do with this setup and some ways to make it more user friendly.
Note: I removed the !hello command from earlier because it useless.
In this example I added two new commands, !commands and !ip.
The !commands command will list all the available commands and there descriptions.
The !ip command will take in an argument called IP/Domain and it uses the Free IP-API and the Python 3 requests package to query the API with the given Domain or IP and returns information from the API response. The Python 3 json package is also needed to turn the API response into a Python dictionary which we can work with.
Also if you notice, you also can use the Discord formatting markdown shown in the link below to style your outputs, the **text** will show up as bold in Discord. You can also use Unicode Symbols to mark new lines (\n).
Как написать код для базового бота Discord с помощью библиотеки discord.py
Мы будем использовать библиотеку Python discord.py, чтобы написать код для бота. discord.py - это оболочка API для Discord, которая упрощает создание бота Discord на Python.
Как создать голосовую комнату с помощью бота
Для создания канала для приватных бесед с одним, двумя или большим количеством участников потребуется установить и настроить бота. Пример показан на видео
Для начала нужно перейти в меню, введя команду «voice setup». Далее созданной категории присваивается имя. Это может быть «Private», «Secret», «My channel» – на выбор. Переименование происходит после входа в контекстное меню, открываемое по клику ПКМ. Не забываем о сохранении внесенных изменений.
Затем создается закрытый голосовой канал. В списке возможных кандидатур на присоединение должны отображаться активные пользователи чата. Уже из их числа производится выбор тех, с кем будет вестись «тайная беседа».
Как создать учетную запись Discord Bot
Чтобы работать с библиотекой Python и API Discord, мы должны сначала создать учетную запись Discord Bot.
Вот шаг к созданию учетной записи Discord Bot.
1. Убедитесь, что вы вошли на сайт Discord.
3. Щелкните кнопку «Новое приложение».
4. Дайте приложению имя и нажмите «Создать».
5. Перейдите на вкладку «Бот» и нажмите «Добавить бота». Вам нужно будет подтвердить действие, нажав «Yes, do it!»
Оставьте настройки по умолчанию для Public Bot и Require OAuth2 Code Grant.
Ваш бот создан. Следующим шагом будет копирование токена.
Этот токен является паролем вашего бота, поэтому не сообщайте его никому. Это может позволить кому-то войти в ваш бот и делать разные плохие вещи.
Вы можете регенерировать токен, если он случайно станет доступен.
Собственно пишем бота
Устанавливаем discord.py с помощью pip:
После успешной установки создаем файл bot.py, где будем писать бота.
Импортируем все необходимое:
Создаем переменную с вашим токеном, про который я писал выше:
Хотя еще рано, но если вы захотите залить вашего бота на какой-нибудь сервер, то стоить побеспокоится о безопасности вашего токена.
Создаем тело бота:
Для начала сделаем простенькую команду, аргумент которой бот будет просто пересылать:
И в конце запускаем бота с вашим токеном:
В итоге должно получится вот такое:
Теперь необходимо добавить бота на сервер. Сделать это можно с помощью ссылки:
Число необходимых прав можно получить в разделе настроек бота.
Теперь можно запускать бота:
После нескольких секунд, можно заметить его в сети:
Как настроить события Discord для вашего бота
Добавьте этот код в main.py. (Вы можете назвать файл как-нибудь иначе, только не discord.py.) Я вскоре объясню, что делает весь этот код.
Когда вы создали своего пользователя-бота в Discord, вы скопировали токен. Теперь мы собираемся создать файл .env для хранения токена. Если вы запускаете свой код локально, вам не нужен файл .env . Просто замените os.getenv('TOKEN') токеном.
.env файлы используются для объявления переменных среды. На Repl.it большинство создаваемых вами файлов видны всем, но .env файлы видны только вам. Другие люди, просматривающие публичный ответ, не смогут увидеть содержимое файла .env .
Поэтому, если вы разрабатываете на Repl.it, включайте в файл .env только личную информацию, такую как токены или ключи.
Внутри файла добавьте следующую строку, включая ваш фактический токен, который вы скопировали ранее:
Теперь давайте рассмотрим, что делает каждая строка в коде вашего бота Discord.
У нас есть код для бота, поэтому теперь нам просто нужно его запустить.
Как избавиться от спамеров в Discord
Теперь сделаем общение в мессенджере более комфортным. Чтобы спамеры и прочие сомнительные личности не ломились в личку с заманчивыми предложениями, разберитесь с настройками конфиденциальности и установите подходящий уровень социофобии.
Этот вариант заставляет искусственный интеллект Discord сканировать все входящие картинки и блокировать мусор. Если же у вас в друзьях проверенные люди, можно выбрать вариант Мои друзья хорошие — тогда ИИ будет пропускать послания от них.
А чтобы кто попало не напрашивался в друзья, в разделе под логичным названием Кто может добавлять вас в друзья обозначьте группы тех, от кого вы готовы принимать заявки. Спойлер: вариант Все повышает шансы нарваться на спам во входящих.
Защищаем дорогое от злоумышленников
Пришло время рассмотреть возможность добавления пароля на канал в Дискорде.
Разработчиками не предусмотрено механизма защиты от несанкционированного входа, но выход все же есть. Пользователи наловчились использовать роли для ограничения доступа. Вашему вниманию пошаговая инструкция:
Администратор может отменить фильтр для некоторых участников с помощью серверных настроек. Во вкладке «Права доступа» нажимаем ЛКМ на серый плюсик и выбираем требуемого пользователя.
Ограничение на вход удобно при обсуждении вопросов узким кругом лиц, будь то стратегия на предстоящий поединок или обсуждение глобальных проблем человечества.
Читайте также: