@Romeo558
Продолжающий программист на python.

Как получить основные данные пользователя в дискорде?

Я только сегодня начал делать своего нового бота в Discord. Я веду log-журнал.
Проблема: я не могу получить данные отправителя сообщения(не важно какое). То есть кто куда и в какое время отправил сообщение или ссылку. Структура моего кода выглядит примерно так:
@bot.command() #Метод для каждой команды для бота
async def start_message(ctx): #Приветственное сообщение
    author = ctx.message.author
    await ctx.send(f'{author.mention}, привет!') #Здесь я могу получить имя пользователя, но вне функции я этого сделать не могу, именно в этом проблема.
@bot.command()
async def hello_message(ctx):#Ещё команда
    author = ctx.message.author
    embed = discord.Embed(color=654321, title=f'Привет, {author}!!') #Эмбед сообщение
    embed.set_image(url='https://avatars.mds.yandex.net/get-pdb/1390202/3d87c5f7-dbe3-46db-b73e-a1c59ca88e37/s1200')
    await ctx.send(embed = embed)
@bot.command()
async def ilovemyfamily(ctx):
    embed = discord.Embed(color=654321, title=f'Хабр топ')
    embed.set_image(url='https://upload.wikimedia.org/wikipedia/commons/thumb/f/f1/Heart_coraz%C3%B3n.svg/800px-Heart_coraz%C3%B3n.svg.png')
    await ctx.send(embed = embed)

Вопрос: Как вне функции получить имя пользователя, его ID(#????), произвольный никнейм на сервере и наконец текст сообщения?
Буду использовать метод with open, и все-все, но мне нужно просто навсего вести журнал.
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
@ex2mple
В свободное время пишу на Python
@bot.listen()
async def on_message(message):
    member = message.author
    name = member.name
    discriminator = member.discriminator #Это непосредственно ID(#????) - четыре цифры на конце имени
    nick = member.nick
    text = message
    # далее записываете переменные туда, куда вам нужно

А вообще почитайте документацию - https://discordpy.readthedocs.io/en/stable/index.html
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы