Как получить сообщение discord py
Перейти к содержимому

Как получить сообщение discord py

  • автор:

Получения сообщение от пользователя Discord.py

Как получить сообщение от пользователя? Там при выводе on_message(message) нигде нету сообщения.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
import discord from dotenv import load_dotenv from discord.ext import commands from datetime import datetime load_dotenv() intents = discord.Intents.default() intents.members = True client = commands.Bot(command_prefix=".", intents=intents) #client = discord.Client() @client.event async def on_ready(): print(f' has connected to Discord!') @client.event async def on_message(message): if message.author.bot == False: now = datetime.now() current_time = now.strftime("%D:%H:%M:%S") print(f" | chanel: | user: | message:") print(message) client.run("token")

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Как получить id пользователя discord.py автоматически
Подскажите, пожалуйста как получить id пользователя в @bot.event async def on_member_join(member).

Discord.js проверка нахождения пользователя в голосовом чате
У меня есть тестовый сервер, в нем единственный голосовой чат Я подключен к этому чату, включен.

Как получить аватарку и имя пользователя Discord API Oauth2
Здравствуйте, сделал бота который авторизует пользователя. Бот получает его аватарку и имя. Как.

Discord.py как сделать что-бы бот мутил пользователя на определенное время?
у меня есть команда мут в которую вводится: async def mute(ctx, member: discord.Member, time: int.

Включить Discord.Intents для Discord бота
Доброго времени суток, уважаемые Форумчане. Возникла следующая трудность не могу никак понять как.

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Работа с голосовыми каналами в Discord (Discord.Net v 2.0.1)
Интересует вопрос о вызове аудиопотока в Discord и выгрузке в этот аудиопоток музыки. Попытки.

VK API и получения айди пользователя
Пишу скрипт на PHP, и понадобился для него скрипт на JS, раньше никогда его не изучал. Прочитал.

Ожидание получения сигнала от пользователя в цикле игры
Добрый день. Имеется игра, скажем к примеру монополия. Взаимодействие компонентов осуществлено на.

Запрос на ввод от пользователя до получения нужного результата
Всем привет, как реализовать запрос, например, ввода пароля до тех пор, пока юзер не введет верный.

Переход к листу после получения данных от пользователя
Добрый день Уважаемые программисты! Прошу вашей помощи так как не силен в VBA, но требуется решить.

Простой чат-бот для Discord на Python

discord_appdev

Сегодня рассмотрим пример создания простого чат-бота для Discord на языке Python 3 с использованием популярной библиотеки discord.py. Данный чат-бот по команде будет присылать стоимость криптовалюты биткоин (Bitcoin), которую будет узнавать с сайта coinmarketcap.com.

Делать будем все подручными средствами без сред разработки, а в обычном текстовом редакторе.

Что потребуется для из средств разработки:

  • Python 3.4.2+ (в Ubuntu 16.04 в коробке сразу идет Python 3.5.2)
  • Pip3 (менеджер пакетов для установки библиотек, в версиях Python 3.4+ входи в коробочную версию)
  • Любой текстовый редактор

В случае, если не установлен pip3, то установка в Ubuntu выглядит так:

$ sudo apt-get install python3-pip

Далее ставим главную библиотеку discord.py — обертка над API Discord для Python 3:

$ pip3 install discord.py

В Windows команда для терминала cmd выглядит также. Но если не настроены пути, то будет появляться ошибка. Тогда можно написать полный путь до pip3 примерно так:

C:\_ПУТЬ_ДО_ПАПКИ_PYTHON3\Tools\Scripts\pip3.exe install discord.py

Уже почти все сделано, осталось написать код. Создаем пустой файл с названием, например, discordpy-chatbot.py. Открываем любым текстовым редактором и вставляем туда код. На Github я привел программный код нашего чат-бота. Вот ссылка, ниже gist:

Осталось изменить значение переменной DISCORD_BOT_TOKEN, в которую необходимо сохранить токен вашего Discord-приложения (чат-бота). Чтобы узнать свой токен, необходимо перейти по адресу https://discordapp.com/developers/applications/me, выбрать в списке необходимый чат-бот или создать новый, и на странице настроек приложения в блоке «Bot» нажать на ссылку «click to reveal», где раскроется токен вашего приложения. Его и нужно занести в переменную DISCORD_BOT_TOKEN:

discord_bot_token

Все готово. Сохраняем файл со скриптом и запускаем чат-бот:

$ python3 discordpy-chatbot.py

После запуска на вашем сервере Discord, куда был добавлен чат-бот (а как добавлять своих ботов на свой сервер я писал в этой статье), можно писать команду:

!btcprice

на что бот вам любезно ответит текущей ценой за 1 биткоин:

discrod_btcprice

Python discord, discord.py, discordapp, howto, python. permalink. 58 543

20 thoughts on “ Простой чат-бот для Discord на Python ”

Я может чего-то не понимаю, но с какой стати мне IDLE пишет, что в модуле discord нет атрибута Client

Marcsus says:
Столкнулся с такой же ситуацией, удалось решить путем замены python 3.7 на python 3.6
Вячеслав says:
Как поставить бота на удаленный сервер, чтобы бот работал постоянно?
tetraquark says:

Достаточно запустить скрипт бота непосредственно на сервере, например, как описано в статье. В самом простом случае на сервере необходимо установить Python 3, pip3, библиотеку discord.py и просто запустить скрипт в фоновом режиме. Либо можно воспользоваться сервисами, например, Heroku, которые позволяют очень просто запускать пользовательские скрипты на своих серверах.

Антон says:

Здравствуйте, появилась хотелка, запустить бота на своем сервере, на котором крутится сервер DontStarveTogether, для возможности мониторинга его состояния, запуска, перезапуска, обновления, отправки команд непосредственно в сервер игры. Т.е. нужно получать некоторые данные с машины. С ботом дискорда только начал знакомиться, что для этих целей подойдет больше, лучше, где искать информацию?

tetraquark says:

Здравствуйте!
К сожалению, я вряд ли смогу посоветовать что-то конкретное непосредственно для серверов Dont Starve Together. Но могу попытаться описать вариант общего решения.
Реализовать управление игровым серверным приложением (как и почти любым другим), на мой взгляд, вполне возможно с использованием дискорд бота, поскольку в данном случае он лишь выполняет функции для передачи данных/команд из дискорд чата в приложение на сервере, который как-то обрабатывает эти сообщения. Можно использовать Python библиотеку discord.py, которая используется в данной статье. Можно использовать любую другую библиотеку на другом языке. С ботом никаких других проблем быть не должно. Но бота реализовывать надо будет самостоятельно.
Но основная проблема это организация связи приложения дискорд бота с программой сервера игры (если на одной машине запущен и бот, и сервер игры). Если серверное ПО для Dont Starve Together позволяет выполнять процедуры средствами терминала (и скорее всего позволяет), то самый простой вариант это вызывать эти CLI команды из приложения. Если делать бота на Python, то можно использовать модули os.system или subprocess (стандартные Python модули). Как ими пользоваться — можно найти в сети и на русском языке. То есть схема простая:
1) В дискорд чат пользователь отправляет команду;
2) Приложение бота на удаленном сервере получает сообщение с командой и обрабатывает его;
3) Приложение бота определив, что за команда пришла, пытается связаться с сервером игры, например, используя модуль os.sysem, вызвая команды CLI.
4) После успешного выполнения/ошибки бот отправляет в чат дискорда результат.

DayShitTV says:
А кто будет модуль давать?
PoZZiTiVe says:

Здравствуйте. Хочу создать себе бота-оповесника,который будет писать сообщение о новом видео или стриме на Ютуб. Можете помочь?

Если Discord сервер, то можно при крутить веб-хук и все.
ahsotna says:

Выдает следующие ошибки, я как новичек в питоне не очень понимаю что они означают и как их решить.
C:\Users\mrgoo\AppData\Local\Programs\Python\Python37-32\python.exe C:/Users/mrgoo/.PyCharmCE2018.2/config/scratches/botdiscrod.py
Traceback (most recent call last):
File «C:/Users/mrgoo/.PyCharmCE2018.2/config/scratches/botdiscrod.py», line 1, in
import discord
File «C:\Users\mrgoo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\__init__.py», line 20, in
from .client import Client, AppInfo, ChannelPermissions
File «C:\Users\mrgoo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\client.py», line 38, in
from .state import ConnectionState
File «C:\Users\mrgoo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\state.py», line 36, in
from . import utils, compat
File «C:\Users\mrgoo\AppData\Local\Programs\Python\Python37-32\lib\site-packages\discord\compat.py», line 32
create_task = asyncio.async
^

tetraquark says:

Данная ошибка, скорее всего, возникает из-за вашей версии Python 3.7. Попробуйте использовать версии Python 3.4 — 3.6.

Как получить сообщение discord py

Save your messages in the cloud and have them available on all your devices. You can also share them with your friends!

Custom Branding

Customize your embeds with your own branding. You can even change the username and avatar of the message to your liking!

Interactive Components

Add interactivity to your messages with buttons and select menus. You can hand out roles or send custom responses to your users!

White Label

Integrate your own bot into Embed Generator to change the username and avatar of responses to buttons, and select menus!

Custom Commands

Add your own commands with custom logic and responses to Embed Generator that your server members can use!

AI Assistant

Use our powerful AI assistant to quickly draft new messages and boost your creativity!

Как получить сообщение на которое ответили? discord.py

Как получить сообщение, в ответ на которое была отправлена команда, и ответить на него же. То-есть например:

User1 - text User2 - reply user1: !command Bot - reply user1: text2 

Отслеживать
задан 28 дек 2022 в 14:54
227 2 2 серебряных знака 16 16 бронзовых знаков

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для этого создайте команду. Пусть будет .say

@client.command() async def say(ctx, text): 

Добавляем проверку для сообщения. То есть если пользователь ответил на сообщение командой .say

 if ctx.message.reference: original = await ctx.fetch_message(ctx.message.reference.message_id) await original.reply(f'Вам сообщение: ') 

Таким образом бот ответит на сообщение на которое ответили Вы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *