#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
Намерение или что-то в этом роде? Я не знаю, связано ли это как-то друг с другом.