@x4zx

Как решить проблему со списком в mongodb?

Здравствуйте, делаю тикет бота. Столкнулся с проблемой что когда я добавляю человека в черный список (чтобы он не мог создать тикет) и этот человек нажимает на кнопку для создания тикета, он создается. Хотя не должен.

Вот код:

Добавить человека в черный список
@bot.command()
    @commands.bot_has_permissions( manage_roles = True, manage_channels = True, send_messages = True, embed_links = True, read_message_history = True )
    @commands.has_permissions( administrator = True )
    async def addblacklist(ctx, member: discord.Member = None):

        support = ctx.guild.get_role(collticku.find_one({'_id': ctx.guild.id})['support_id'])

        if support in ctx.author.roles:
            if member is None:
                emb1 = discord.Embed(
                    description = 'Укажите участника, для занесения в черный список.',
                    colour = 0x2F3136
                )
                await ctx.reply(embed = emb1, delete_after = 5)
            else:
                collticku.update_one({'_id': ctx.guild.id}, {'$inc': {'blackl': +1}, '$push': {'member': member.id}})
                emb2 = discord.Embed(
                    description = f'Вы успешно занесли ({member.mention}) в черный список.',
                    colour = 0x2F3136
                )
                await ctx.send(embed = emb2, delete_after = 5)
        else:
            emb3 = discord.Embed(
                description = 'Вы не являетесь службой поддержки и не можете заносить участников в черный список.',
                colour = 0x2F3136
            )
            await ctx.reply(embed = emb3, delete_after = 5)


Проверка, есть ли человек в черном списке
def blacklist(inter, guild):
       member = inter.author
       blackl = collticku.find_one({'_id': guild.id}['member'])
       return member.id in [blackl['member']]


Изображение данных в бд - https://yapx.ru/v/PT0q3

Заранее спасибо!
  • Вопрос задан
  • 57 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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