Как создать селект меню в котором будут все участники дискорд сервера?

Я хочу сделать так, допустим есть команда !send, которая отправляет селект меню, и мне нужно чтобы при нажатии на это меню, в его опциях выводились все участники сервера с возможностью их поиска. Даже если больше 25 опций. Что можно сделать? Видел, что эта реализация возможна, но сам повторить не могу


Ответы (1 шт):

Автор решения: q r t s

Для использования данного меню будем использовать discord.ui.UserSelect. Создадим для удобства класс Select_Menu в который и поместим UserSelect:

class Select_Menu(discord.ui.UserSelect):
    def __init__(self):
        super().__init__(placeholder="Выберите пользователя")
    async def callback(self, interaction: discord.Interaction):
        return # Продолжение кода

Теперь отправим это в сообщении ответом на команду !send:

@client.command()
async def send(ctx):
    view = discord.ui.View()
    view.timeout = None
    view.add_item(Select_Menu()) #Помещаем наш класс
    await ctx.send("Кого выберем?", view=view) #Отправляем сообщение с данным меню

Подробнее о SelectMenu можно узнать на оф. сайте.

→ Ссылка