Дублируется вызов функции. Python
Использую библиотеку Nextcord (асинхронный питон). Столкнулся с проблемой в написании кода. Код работает исправно за исключением повторного срабатывания функции.
class MyServer(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.game_message = None
@commands.command(name='add_field')
@commands.has_permissions(administrator=True)
async def add_field_func(self, ctx):
if ctx.author.id != Здесь ID:
return
input_text = ctx.message.content.split(' ')
game_name = input_text[1]
game_emoji = input_text[2:]
game_emoji = ' '.join(game_emoji)
embed = nextcord.Embed(
title=":white_check_mark: Успешно!",
description=f':video_game: {game_name} добавлен/на в список. Обозначаемая реакция: {game_emoji}',
colour=nextcord.Colour.green()
)
embed.timestamp = datetime.datetime.utcnow()
await ctx.send(embed=embed)
if self.game_message is not None:
message_id = self.game_message
message = await ctx.fetch_message(message_id)
embed = message.embeds[0]
embed.add_field(name=f'{game_name} - {game_emoji}', value=" ", inline=False)
await message.edit(embed=embed)
@commands.command(name='create_game_message')
@commands.has_permissions(administrator=True)
async def create_game_message(self, ctx):
if ctx.author.id != 436903034404995072:
return
guild = ctx.guild
message_id = self.game_message
if message_id is None:
embed = nextcord.Embed(
title=f'Выберите из списка ниже игру в которую вы играете',
description='',
colour=0x00e97d
)
embed.set_author(name=guild.name, icon_url=ctx.guild.icon.url)
message = await ctx.send(embed=embed)
self.game_message = message.id
def setup(bot):
bot.add_cog(MyServer(bot))
Подскажите пожалуйста где косяк upd. Код дублируется с момента получения ID сообщения (message_id)
Источник: Stack Overflow на русском