Как сделать команду кика discord py
Привет людям, которые смотрели это. Мне нужна помощь в создании команды удара для моего бота discord. Я использую discord.js и node.js . У меня есть стартовые вещи, такие как const Discord = require('discord.js'); const Client = new Discord.Client(); . Я кодирую его с помощью Visual Studio Code. Я действительно не понимаю, что еще делать. Я пытался искать помощь в YouTube, но каждый раз, когда я пытаюсь, кажется, что это больше не работает. Кто-нибудь может меня проводить? Спасибо :D
2 ответа
У меня есть проблема, что когда я хочу включить своего бота discord на моем сервере, который использует cPanel, я не могу заставить его работать с панели управления node.js, не поместив команду shell node index.js в файл package.json и не используя функцию запуска скрипта панели. проблема в том.
Я нахожусь в процессе создания бота discord с использованием discord.py и asyncio. У бота есть такие команды, как kick и ban , которые, очевидно, не должны быть доступны обычным пользователям. Я хочу создать простую систему, которая определит, какие разрешения имеет роль пользователя, используя.
Единственный способ создать команду kick-это использовать этот код. Но команда kick довольно сложна для начинающего пользователя. Для этого нужно учесть множество нюансов, попробовать реализовать что-то попроще для начала.
(от discord.js github)
Сейчас я создаю бота discord и хочу сделать команду poke. Пользователь может ткнуть другого участника. Я знаю, как упомянуть автора, но, похоже, не могу упомянуть пользователя. EXAMPLE: '!poke [пользователь, указанный автором]'. Как сделать так, чтобы мой бот упомянул этого пользователя?
Похожие вопросы:
Я пытаюсь понять, как сделать команду, которая 'reloads' команды Discord Bot и позволяет мне поддерживать работу бота, пока я добавляю новые команды. Это просто облегчает мне жизнь, поэтому мне не.
Я создаю бота discord, и я изо всех сил пытаюсь понять, как ударить пользователя. Я не могу найти код или документацию по этому вопросу. Вот код. private void MuteUserCommand()
У меня есть проблема, что когда я хочу включить своего бота discord на моем сервере, который использует cPanel, я не могу заставить его работать с панели управления node.js, не поместив команду.
Я нахожусь в процессе создания бота discord с использованием discord.py и asyncio. У бота есть такие команды, как kick и ban , которые, очевидно, не должны быть доступны обычным пользователям. Я.
Сейчас я создаю бота discord и хочу сделать команду poke. Пользователь может ткнуть другого участника. Я знаю, как упомянуть автора, но, похоже, не могу упомянуть пользователя. EXAMPLE: '!poke.
Как создать команду «ban»/«unban» в discord.py
Если бот уже подготовлен к работе и добавлен на сервер в Discord (подробные инструкции, связанные с инсталляцией и авторизацией представлены в официальной документации), то следующий этап – подготовка кода Python, необходимого для взаимодействия с потенциальными нарушителями.
Работают команды на основе библиотеки Discord.py, а потому и начинать предстоит с импорта уже заготовленных скриптов и commands в построчном режиме:
Следом добавляется источник для импорта:
from discord.ext import commands
Заданная основа для кода открывает простор для творчества и экономит время. Дальше предстоит подготовить код следующего формата:
После ввести конструкцию через async
async def ban(ctx, user: discord.Member, *, reason=None):
Функция разделяется на несколько строк с сохранением синтаксиса.
await ctx.send(f" пользователь успешно заблокирован")
Важно помнить о структуре: на следующей строчке после функции async для await понадобится отступ в 4 пробела.
Снимается блокировка с помощью дополнительного кода. Основа уже знакомая.
Далее – уже знакомый набор дополнительных команд (важно сохранить структуру)
async def unban(ctx, *, member):
Обязательно 4 пробела впереди!
banned_users = await ctx.guild.bans()
И следом сразу строка для отсеивания лишней аудитории.
После задается For.
for ban_entry in banned_users:
Обязательно 4 пробела впереди!
И условие через if.
if (user.name, user.discriminator) == (member_name, member_discriminator):
await ctx.send(f" пользователь успешно разблокирован")
Как и в случае с командой ban отступ важен: иначе Python не разберется, когда начинается и заканчивается функция. Дополнительные подробности на скриншоте ниже.
После подготовки кода в чате сервера станут доступны команды !ban и !unban (префикс – восклицательный знак), сочетаемые с никнеймом нарушителя (!ban @nickname).
Почему команда может не работать
Тот же Visual Code способен сразу предупредить, в каком месте коду требуется доработка.
Всем привет.
В интернете очень мало качественных гайдов на тему разработки Discord-бота . Поэтому я решил написать полный подробный курс на эту тему.
В этом курсе мы будем учиться созданию Discord-бота на языке программирования Python (библиотека Discord.py) с нуля.
Создание приложения
Нажимаем на нее. В открывшемся окне нам будет предложено ввести название нового приложения.
Вводим и нажимаем Create. Теперь нам нужно выбрать вкладку "Bot" в меню слева.
В правой верхней части экрана нажимаем "Add Bot" . В открывшемся окне нажимаем "Yes, do it!" .
Строка "USERNAME" - будущее имя бота.
Token - это и есть наш код доступа к API, ради которого мы все это делали.
Добавление бота в канал
После перехода по ссылке, в открывшемся выбираем наш сервер, куда мы хотим добавить бота.
Теперь нажимаем кнопку "Продолжить" , а затем "Авторизовать" , проходим проверку на робота. Готово! Наш бот добавлен в наш сервер.
Теперь перейдем непосредственно к разработке самого бота.
Установка Discord.py
Я буду показывать пример работы в Командной Строке Windows . В целом, ход действий мало отличается от Linux , так что, если у вас линукс, - пишите то же самое.
Для удобства работы лучше будет создать виртуальное окружение (Virtual Env) . В консоли переходим в папку нашего проекта. В ней выполняем следующие команды:
// Устанавливаем VirtualEnv, если он у вас еще не установлен
> pip install virtualenv
// Создаем нашу виртуальную среду
> python -m venv [название]
// Активируем виртуальную среду
[Windows] > [название]\Scripts\activate.bat
[Linux] > source [название]/bin/activate
// Активацию нужно будет повторять при каждом запуске консоли
Теперь нам нужно установить библиотеку Discord.py . Пишем в консоли:
Готово. Библиотека успешно установлено в наше виртуальное пространство. Теперь можно перейти непосредственно к коду.
Написание основы для бота
В папке нашего проекта создаем Python-файл с любым названием и открываем его в любом редакторе. В моем случае это будет bot.py .
В этот файл вы должны написать такой код:
import discord
from discord.ext import commands
Создание первой команды
API discord предоставляет инструмент для создания и использования ботов. Рассмотрим пример создания базового музыкального бота и добавления его на сервер. Бот сможет проигрывать, пропускать и останавливать музыку, а также будет поддерживать функцию очереди воспроизведения.
Установка discord-бота
Создаем новое приложение на портале разработки discord.
Переходим на портал и нажимаем на “new application”.
Затем вводим название приложения и нажимаем на кнопку “create”.
Затем переходим на вкладку бот и нажимаем на “add bot”.
Бот создан! Теперь можно перейти к добавлению его на сервер.
Добавление бота на сервер
Добавляем созданный бот с помощью генератора OAuth2 URL.
Для этого переходим на страницу OAuth2 и выбираем бота в панели scope.
Теперь копируем сгенерированный URL и вставляем его в браузер.
Затем выбираем сервер, на который хотим добавить URL и нажимаем на кнопку “authorize”.
Создание проекта
Переходим к созданию проекта с использованием терминала.
Для начала создаем директорию и переходим в нее, используя две следующие команды:
Затем создаем модули проекта с помощью команды npm init. После введения команды будут заданы несколько вопросов. Ответьте на них и продолжайте.
Создаем два файла, в которых мы будем работать.
Теперь откройте проект в текстовом редакторе. Я использую VS Code и открываю его с помощью следующей команды:
Основы Discord js
Прежде чем начать, нужно установить несколько зависимостей.
После завершения установки продолжаем написание файла config.json. Сохраните для бота токен и префикс, который он должен слушать.
Для получения токена снова зайдите на портал разработки discord и скопируйте его из раздела bot.
Это все, что нужно выполнить в файле config.json. Приступим к написанию кода javascript.
Сначала импортируем все зависимости.
Затем с помощью токена создаем клиента и логин.
Добавляем несколько базовых listeners, выполняющих метод console.log при запуске.
Теперь можно начать работу с ботом с помощью команды node. Бот должен быть online в discord и в консоль выведется“Ready!”
После этого проверяем, какую команду нужно запустить. Это можно выполнить с помощью простых операторов if.
Узнав, какие команды нужно запустить, можно перейти к их реализации.
Добавление песен
Начнем с добавления команды play. Для этого понадобится песня и гильдия (гильдия представляет собой изолированную коллекцию пользователей и каналов и часто упоминается в качестве сервера). Также понадобится ранее установленная библиотека ytdl.
Для начала создаем map с названием очереди, в котором будут сохранены все песни, введенные в чат.
Переходим к получению информации о песне и сохранении ее в объект song. Для этого используем библиотеку ytdl, которая получает информацию о песне по ссылке на youtube.
Необходимая информация сохраняется в объект song.
В этом фрагменте мы проверяем, является ли serverQueue пустым. Если нет добавляем туда песню.
Если serverQueue имеет значение null, создаем контракт.
В этом блоке кода создается контракт, а песня добавляется в массив songs.
Затем присоединяемся к голосовому чату пользователя и вызываем функцию play(), которую затем реализуем.
Проигрывание песен
Поскольку теперь можно добавлять песни в очередь и создавать контракт при его отсутствии, можно приступить к реализации функцию проигрывания.
Сначала создаем функцию play, которая обладает двумя параметрами (гильдия и песня, которую нужно проиграть) и проверяет, является ли объект song пустым. Если да, то покидаем голосовой канал и удаляем очередь.
Затем начинаем проигрывать песню с помощью функции playStream() и URL-адреса песни.
В этом фрагменте мы создаем stream и передаем его URL-адресу песни. Также добавляем два listeners, которые обрабатывают события end и error.
Примечание: это рекурсивная функция, которая повторяет вызов самой себя. Рекурсия используется для проигрывания следующей песни, когда другая заканчивается.
Теперь можно проиграть песню, введя !play URL в чат.
Пропуск песен
Переходим к реализации функции пропуска. Для этого нужно выполнить завершения диспетчера, созданного в функции play() для начала проигрывания следующей песни.
В этом фрагменте мы проверяем, находится ли пользователь, который ввел команду, в голосовом канале, а также есть ли песни для пропуска.
Остановка песен
Функция stop() похожа на skip(), за исключением того, что массив songs очищается, из-за чего бот удаляет очередь и покидает голосовой чат.
Исходный код для index.js:
Полный исходный код для музыкального бота:
Заключение
У вас все получилось! Надеюсь, эта статья помогла вам разобраться в API Discord и создании с его помощью простого бота.
Читайте также: