Как получить id пользователя при обращении к слеш команде disnake

Рейтинг: 0Ответов: 2Опубликовано: 25.03.2023

Не знаю как получить 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("Отправлено! ^^")

Ответы

▲ 0

В 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 Привет!.

▲ 0

Подправлю человека. Мало того что нужно использовать inter. Еще нужно определить себе в помощь его. inter: disnake.CommandInter. Тогда у тебя будут выпадать нужные методы и атрибуты