Как получить id пользователя при обращении к слеш команде disnake
Не знаю как получить id пользователя, вызвавшего слеш команду.(disnake)
@bot.slash_command(name="sms")
async def sms (inter, id: str, message: str):
admin=00000000000000000
if ctx.author.id == admin:
user = bot.get_user(id)
await user.send(message)
await inter.response.send_message("Отправлено! ^^")
Ответы (2 шт):
В disnake вместо ctx.author.id нужно использовать inter.author.id. Также обратите внимание, что вы пытаетесь использовать аргумент id, который не передается в слеш-команду. Вместо этого, вам нужно использовать аргумент user: disnake.User, чтобы получить пользователя, которому нужно отправить сообщение.
Попробуйте изменить свой код следующим образом:
@bot.slash_command(name="sms")
async def sms(inter, user: disnake.User, message: str):
admin = 00000000000000000
if inter.author.id == admin:
await user.send(message)
await inter.response.send_message("Отправлено! ^^")
теперь вы можете вызвать эту команду, указав пользователя и сообщение, которое нужно отправить. Например, /sms @user Привет!.
Подправлю человека. Мало того что нужно использовать inter. Еще нужно определить себе в помощь его. inter: disnake.CommandInter. Тогда у тебя будут выпадать нужные методы и атрибуты