#python #discord.py
Вопрос:
Я хочу создать команду, в которой в качестве аргумента после ctx используется идентификатор пользователя, чтобы бот отправил упоминание пользователя. Проблема в том, что я не знаю, каков синтаксис идентификатора пользователя. Я уже просматривал документацию, но не нашел там ответа.
Вот код.
@client.command()
async def userid(ctx, member: discord.Member.id):
await ctx.send(f'{member.mention})
Ответ №1:
Ты почти на месте.
Typehint преобразует имена пользователей, упоминания, идентификатор и отображаемое имя в объект-член, этот объект содержит все вышеперечисленное.
@client.command()
async def userid(ctx, member: discord.Member):
await ctx.send(member.mention)
Комментарии:
1. Поскольку синтаксис применим как для упоминания, так и для идентификатора, как сделать так, чтобы команда применялась только для идентификатора и игнорировала аргумент упоминания?
2. Извините, что вы имеете в виду?
3. Хорошо, здесь, поэтому, когда я набираю команду, сам участник подает заявку на идентификатор и упоминает, например, префикс бота»!», и я написал !идентификатор пользователя «идентификатор пользователя» там, это сработало, и использование !идентификатор пользователя «@пользователь» также работает, я на самом деле хочу, чтобы команда принимала только идентификатор в качестве аргумента и не упоминала. Есть ли какой-либо способ заставить бота игнорировать команду, когда пользователь вводит команду с упоминанием пользователя, а не с идентификатора.
4. Возможно, есть способ, но это было бы грязно и не идеально, все дело в том, что член-это объект-член, который содержит всю эту информацию. Подсказка типа автоматически преобразует идентификатор участника в объект участника.
5. О, я понимаю, тогда ладно.