@Forsjke

Discord.py Как вывести пользователя, который нажал на кнопку?

Сделал кнопку со временем, все работает, НО не понимаю как достать пользователя, который нажал на кнопку первый. Перечитал руководства, но все равно не вдупляю по причине плохого понимания еще

class Baton(disnake.ui.View):
    def __init__(self):
        global start_time
        super().__init__(timeout=None)
        self.value: Optional[bool] = None
    # Когда кнопка подтверждения нажата, установите внутреннее значение на «Истина» 
    # остановить  от большего количества ввода.
    @disnake.ui.button(label="Забрать код ", style=disnake.ButtonStyle.green)
    async def first(self, button: disnake.ui.Button, inter: disnake.MessageInteraction):  
        end_time = time.time()
        elapsed_time = end_time - start_time
        await inter.response.send_message(f"@{winner} нажал первый за {elapsed_time:.2f} секунд")
        self.value = True
        self.stop()
  • Вопрос задан
  • 45 просмотров
Решения вопроса 1
@Rohanshetty67
Чтобы отобразить пользователя, который нажал кнопку в вашем коде Discord.py, вам нужно получить автора взаимодействия с сообщением и сохранить его в переменной. Это можно сделать с помощью атрибута author межобъектного объекта, который представляет взаимодействие с сообщением.
Вот пример:
класс Baton(disnake.ui.View):
    защита __init__(сам):
        глобальное start_time
        super().__init__(время ожидания=нет)
        self.value: необязательно [bool] = нет

    @disnake.ui.button(label="Взять код", style=disnake.ButtonStyle.green)
    асинхронное определение сначала (я, кнопка: disnake.ui.Button, между: disnake.MessageInteraction):
        end_time = время.время()
        прошедшее_время = время_окончания - время_начала
        победитель = интер.автор
        await inter.response.send_message(f"{победитель} нажал первым после {elapsed_time:.2f} секунд")
        само значение = Истина
        самостоятельная остановка ()

Переменная победителя имеет значение inter.author, которое является автором взаимодействия с сообщением. Затем сообщение отправляется с упоминанием автора, включая его имя пользователя и дискриминатор.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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