@x4zx

Как сделать так чтобы можно было создавать много репортов?

Здравствуйте, пишу бота для системы репортов под отдельный сервер и вот столкнулся с проблемой.
Есть команда "report" она вызывает меню с кнопкой при нажатии на которую создается репорт (как тех.поддержка), но если одни из участников сервера уже создал один репорт то остальные не могут нажать на кнопу, точнее могут но дискорд выдаст ошибку взаимодействия. Подскажите пожалуйста что нужно сделать?
Я не знаю как сделать это в виде кода...

Сам код:

@bot.command()
@commands.has_role(832536148232503326)
async def report(ctx):
        emb = discord.Embed(title = '', description = "**На всі ваші питання допоможе відповісти - <@&833314249827680257>** \n Щоб зв'язатися з адміністраторами натисніть на кнопку нижче", colour = 0xFF8C00)
        emb.set_image(url = 'https://riskcontrolacademy.com/wp-content/uploads/2019/09/support.png')
        emb.set_footer(text = 'Support Team', icon_url = 'https://cdn.discordapp.com/attachments/772850448892690462/833028640715440128/unknown.png')
        await ctx.send(
            embed = emb,
            components = [
                Button(style = ButtonStyle.gray, label = "Зв'язатися", emoji = '')
            ]
        )
        
        while True:

            res = await bot.wait_for('button_click')
            member = res.guild.get_member(res.user.id)
            if res.component.label.startswith("Зв'язатися"):
                await res.respond(type = 6)
                channel = await ctx.guild.create_text_channel(name = f"{member}", category = ctx.guild.get_channel(833425673188016149))
                await channel.set_permissions(ctx.author, overwrite = discord.PermissionOverwrite(view_channel = True, send_messages = True))

            #for role in ctx.author.roles:
                #mentions = ", ".join(role for role in ctx.author.roles)
                #mention = role.mention

            await channel.send('**<@&833314249827680257> Новий тікет, інформація про користувача нижче**')
            roles = [role for role in member.roles[1:]]

            emb1 = discord.Embed(title = "Інформаційне табло", description = 'Це табло надає інформацію про автора тікета', colour = 0xFF8C00)
            emb1.add_field(name = 'Користувач', value = f'{member.mention}')
            emb1.add_field(name = 'ID', value = f'{member.id}')
            emb1.add_field(name = 'Ролі', value = " ".join([role.mention for role in roles]), inline = False)
            emb1.add_field(name = 'Приєднався', value = f'{member.joined_at.strftime("%#d %B %Y, %H:%M")}')
            emb1.add_field(name = 'Дата створення', value = f'{member.created_at.strftime("%#d %B %Y, %H:%M")}')
            emb1.set_thumbnail(url = f'{member.avatar_url}')
            emb1.set_footer(icon_url = f'{member.avatar_url}', text = f'{member}')
            await channel.send(
                embed = emb1,
                components = [
                    Button(style = ButtonStyle.gray, label = 'Закрити', emoji = '⛔')
                ]
            )

            #adminrole = [833314249827680257]
            
            res = await bot.wait_for('button_click')
            if res.component.label.startswith("Закрити"):
                await res.respond(type = 6)
                emb2 = discord.Embed(title = '', description = '**Тікет видалиться через декілька секунд.**', colour = 0xFF8C00)
                await channel.send(embed = emb2)
                await asyncio.sleep(3)
                await res.channel.delete()
  • Вопрос задан
  • 128 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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