Discord.py реакция смайликов в моей билетной системе не работает?

#python #discord #discord.py #ticket-system

Вопрос:

Я хотел создать систему билетов с близкой командой. Но это не работает. Я действительно получаю встроенное сообщение, но когда я реагирую на сообщение, ничего не происходит. Я даже не получаю ошибки.

Это мой код:

 @bot.command(name='Close', aliases=['close'])
async def close(ctx):
    if ctx.message.channel.name.startswith('ticket'):
        msg = 'The ticket is closed. If you aren't done yet react to this message with 🔓, if you are react with 🗑️'
        embed = discord.Embed(title='Closed ticket', description=msg)
        message = await ctx.send(content=None, embed=embed)
        await message.add_reaction('🔓')
        await message.add_reaction('🗑️')
        await ctx.message.channel.set_permissions(ctx.author, send_messages=False, read_messages=True)
        def check(reaction, user):
            return user == ctx.message.author and str(reaction.emoji) in ['🔓', '🗑️']
        reaction, user = await bot.wait_for('reaction_add', check=check)
        if reaction.emoji == '🗑️':
            countdown = await ctx.send('**Ticket will be closed in 10 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 9 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 8 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 7 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 6 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 5 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 4 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 3 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 2 seconds**')
            await asyncio.sleep(1)
            await countdown.edit(content='**Ticket will be closed in 1 second**')
            await asyncio.sleep(1)
            await ctx.message.channel.delete()
            await user.send('**Ticket is deleted**')
        if reaction.emoji == '🔓':
            await ctx.send('**Ticket reopened**')
            await ctx.message.channel.set_permissions(user, send_messages=True)
    else:
        await ctx.send('This isnt a ticket')
 

Комментарии:

1. Для меня это прекрасно работает. Вы получаете какие-либо ошибки? Какие из смайликов не работают?

2. Попробуйте заменить if reaction.emoji == '🗑️': на if str(reaction.emoji) == '🗑️': , потому что reaction.emoji может быть нескольких типов, и только один из них-строка ( ссылка )

3. @Dominik ни один из них не работает. И я не получаю никаких ошибок

4. @Baptiste пробовал это, но у меня не получается

5. Вы импортировали members Намерение или что-то в этом роде? Я не знаю, связано ли это как-то друг с другом.