Задать вопрос
@t0birama

Почему в Select Menu через несколько минут показывает "Ошибка взаимодействия"?

Проблема в ошибке взаимодействия.
При этом никакой ошибки в консоли нет.

class MySelect(View):

    @discord.ui.select(
        placeholder="Выбери нужную роль",
        options=[
            discord.SelectOption(label="Arizona RP", value="1", emoji="<:arizona:1078410644690309191>"),
            discord.SelectOption(label="Counter-Strike: Global Offensive", value="2", emoji="<:csgo:1078411303774859408>"),
            discord.SelectOption(label="Arizona RP | Mobile", value="3", emoji="<:mobile:1078412064642584606>"),
            discord.SelectOption(label="GTA 5", value="4", emoji="<:GTA5:1078411677265043516>"),
            discord.SelectOption(label="Очистить список", value="5", emoji="❌")
        ]
    )

    async def select_callback(self, select, interaction):
        member = interaction.user
        arizona = get(member.guild.roles, id=1078410874697560074)
        csgo = get(member.guild.roles, id=1078411092327399424)
        mobile = get(member.guild.roles, id=1078412189846749224)
        gta = get(member.guild.roles, id=1078412193919406088)
        if select.values[0] == "1":
            await member.add_roles(arizona)
            await interaction.response.send_message("Вам успешно выдана роль", ephemeral=True)
        if select.values[0] == "2":
            await member.add_roles(csgo)
            await interaction.response.send_message("Вам успешно выдана роль", ephemeral=True)
        if select.values[0] == "3":
            await member.add_roles(mobile)
            await interaction.response.send_message("Вам успешно выдана роль", ephemeral=True)
        if select.values[0] == "4":
            await member.add_roles(gta)
            await interaction.response.send_message("Вам успешно выдана роль", ephemeral=True)
        if select.values[0] == "5":
            await member.remove_roles(arizona)
            await member.remove_roles(csgo)
            await member.remove_roles(mobile)
            await member.remove_roles(gta)
            await interaction.response.send_message("Вам сняты все новые роли", ephemeral=True)


@bot.command()
async def menu(ctx):
    view = MySelect()
    embed = discord.Embed(
        title="Игровые роли :",
        description="**Вы можете выбрать себе нужную роль в меню, которое будет ниже!**",
        color=0x903636)
    embed.set_footer(text='Выбором в меню вы можете взять соответствующую смайлику роль или очистить список выбранных ролей.')
    await ctx.send(embed=embed, view=view)
  • Вопрос задан
  • 113 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Потому что взаимодействия по умолчанию ограничены 15 минутами.
Если нужно бесконечное взаимодействие, в примерах библиотеки есть persistent.py, в котором демонстрируется как это сделать
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы