@NoGrisha
Точка.

Как сделать тест?

Вот хочу создать команду тест в discord.py ну и думаю понятно в чём её смысл. Я хочу как-нибудь это сделать через Select menu из dislash.py. Вот как-то так:
from dislash import InteractionClient, SelectMenu, SelectOption
...
inter_client = InteractionClient(bot)
...
@bot.command()
async def test(ctx, correct = None, b = None,c = None ,d = None):
    await ctx.channel.purge(limit = 1)
    if correct == None and b == None:
        await ctx.send(f'{author.mention},Добавь верный вариант ответа и второй вариант ответа')
        return
    elif correct != None and b == None:
        await ctx.send(f'{author.mention} Добавь второй вариант ответа!')
        return
    elif correct != None and b != None and c == None:
        msg = await ctx.send(
            f"{author.mention}, Создал тест!\n{name}",
            components=[
                SelectMenu(
                    custom_id="t1",
                    placeholder="Выбери правильный ответ!",
                    max_values=2,
                    options=[
                        SelectOption(f"{correct}", "Ей"),
                        SelectOption(f"{b}", "Йе")
                    ]
                )
            ]
        )
        inter = await msg.wait_for_dropdown()
     
        labels = [option.label for option in inter.select_menu.selected_options]

        if len(labels) > 1:
            #Вот здесь надо отправить человеку в лс что надо выбрать один ответ

        elif correct in labels:
            #Вот здесь надо отправить тому кто выбрал правильный ответ в лс что он молодец!

        else:
            #Вот здесь надо отправить тому кто выбрал неправильный ответ в лс то что он ответил неправильно
    ...

И ещё надо сделать так чтобы это меню было многоразовым. Чтобы один человек выбрал и другой потом смог выбрать.
  • Вопрос задан
  • 354 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Ну для начала неплохо бы разделить задачу на части, не?
Отдельная команда для создания теста, которую можно вызывать не в общем канале (иначе все сразу и правильный ответ поймут, он же у тебя всегда первый).
Отдельная команда для показа теста, если требуется.
И отдельные обработчики ответов.

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

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект
18 апр. 2024, в 21:56
2000 руб./за проект