Как получить идентификатор пользователя в Discord.py - PullRequest
0 голосов
/ 29 октября 2018

Мы пишем бота для нашего сервера Discord, который должен упоминать человека, который запускает определенную команду. Для этого мне понадобится идентификатор пользователя, но я не могу понять, как его получить.

@bot.command()
async def name():

author = discord.User.id

await bot.say(str(author))

Мы пробовали это так, поскольку в документации сказано, что идентификатор пользователя находится в классе User. Но единственное, что мы получаем, это

<member 'id' of 'User' objects>

На наш взгляд, мы получили правильный параметр, но не можем получить само удостоверение личности? Нужно ли как-то конвертировать?

Ответы [ 2 ]

0 голосов
/ 29 октября 2018

Чтобы бот упомянул автора сообщения в асинхронной ветке, вам нужно обратиться к этому автору через сообщение, которое вызвало команду, ctx.message:

@bot.command(pass_context=True)
async def name(ctx):
    await bot.say("{} is your name".format(ctx.message.author.mention))

Чтобы получить свой идентификатор:

@bot.command(pass_context=True)
async def myid(ctx):
    await bot.say("{} is your id".format(ctx.message.author.id))
0 голосов
/ 29 октября 2018

Вам необходимо указать параметр в имени функции. У каждого bot.command должен быть хотя бы один параметр, известный как «context». Такие как:

async def name(ctx):
   author = ctx.message.author
   user_name = author.name
...