После перезапуска бота с помощью постоянных кнопок, функциональные ошибки ⇐ Python
-
Гость
После перезапуска бота с помощью постоянных кнопок, функциональные ошибки
Я считаю, что настроил свою постоянную кнопку правильно, поскольку она отлично синхронизируется, однако я считаю, что это ошибка моего кода, и я не уверен, что ее вызвало.
Команда «embed = self.command()» работает нормально при первом запуске бота, но после перезапуска возникает ошибка «Объект 'NoneType' не может быть вызван» в разделе embed = ...
Обратите внимание, что код genEmbed в настоящее время предназначен для тестирования и в будущем будет изменен для моих нужд.
@client.event асинхронная защита on_ready(): пытаться: синхронизировано = ожидайте client.tree.sync() print(f"Синхронизированные команды {len(synced)}") print(f"Активен на серверах {str(len(client.guilds))}") кроме исключения как e: распечатать(е) пытаться: client.add_view(genButton(команда=Нет,канал=Нет)) print("Синхронизированные кнопки") кроме исключения как e: print(f"Не удалось синхронизировать кнопки {e}") Защитный тест(): embed = discord.Embed(color=0xe5ff00, временная метка = дата-время.дата-время.сейчас()) embed.set_author(name=f"Код") embed.add_field(name="**__Code__**",value=f"```test```",inline=True) embed.set_footer(text="text",icon_url="*url значка*") вернуть встроить класс genButton(discord.ui.View): def __init__(сам, команда,канал): супер().__init__(таймаут=Нет) self.command = команда self.channel = канал @discord.ui.button(label="Generate",custom_id="gen_button",emoji=None,style=discord.ButtonStyle.success) асинхронное определение генерации (self, взаимодействие: discord.Interaction, кнопка: discord.ui.Button): встроить = self.command() ждут взаимодействия.ответ.send_message(embed=embed,ephemeral=True) @client.tree.command(name="embed") async def genEmbed(interaction: discord.Interaction, title: Необязательно[str], chan: Необязательно[строка], шаг1: Необязательно[строка], Шаг2: Необязательно[строка], примечания: Необязательно[строка]): идентификатор канала = чан встроить = discord.Embed(цвет=0xe6c12d) embed.set_author(имя=название) embed.add_field(name="channel",value=f"") если шаг 1 != Нет: embed.add_field(name="Шаг 1",value=step1,inline=True) если шаг2 != Нет: embed.add_field(name="Шаг 2",value=step2,inline=True) если отмечает != Нет: embed.add_field(name="Notes",value=notes) embed.set_footer(text="text",icon_url="*url значка*") ждут взаимодействия.ответ.send_message("Отправлено для вставки") канал = client.get_channel(int(channelid)) awaitchannel.send(embed=embed,view=genButton(test,channel)) Я много раз пробовал менять небольшие части, просто чтобы попытаться заставить его работать, но каждый раз, когда в этом разделе возникает ошибка, я предполагаю, что это какая-то крошечная часть моего кода, вызывающая это, но я не слишком уверен
р>
Я считаю, что настроил свою постоянную кнопку правильно, поскольку она отлично синхронизируется, однако я считаю, что это ошибка моего кода, и я не уверен, что ее вызвало.
Команда «embed = self.command()» работает нормально при первом запуске бота, но после перезапуска возникает ошибка «Объект 'NoneType' не может быть вызван» в разделе embed = ...
Обратите внимание, что код genEmbed в настоящее время предназначен для тестирования и в будущем будет изменен для моих нужд.
@client.event асинхронная защита on_ready(): пытаться: синхронизировано = ожидайте client.tree.sync() print(f"Синхронизированные команды {len(synced)}") print(f"Активен на серверах {str(len(client.guilds))}") кроме исключения как e: распечатать(е) пытаться: client.add_view(genButton(команда=Нет,канал=Нет)) print("Синхронизированные кнопки") кроме исключения как e: print(f"Не удалось синхронизировать кнопки {e}") Защитный тест(): embed = discord.Embed(color=0xe5ff00, временная метка = дата-время.дата-время.сейчас()) embed.set_author(name=f"Код") embed.add_field(name="**__Code__**",value=f"```test```",inline=True) embed.set_footer(text="text",icon_url="*url значка*") вернуть встроить класс genButton(discord.ui.View): def __init__(сам, команда,канал): супер().__init__(таймаут=Нет) self.command = команда self.channel = канал @discord.ui.button(label="Generate",custom_id="gen_button",emoji=None,style=discord.ButtonStyle.success) асинхронное определение генерации (self, взаимодействие: discord.Interaction, кнопка: discord.ui.Button): встроить = self.command() ждут взаимодействия.ответ.send_message(embed=embed,ephemeral=True) @client.tree.command(name="embed") async def genEmbed(interaction: discord.Interaction, title: Необязательно[str], chan: Необязательно[строка], шаг1: Необязательно[строка], Шаг2: Необязательно[строка], примечания: Необязательно[строка]): идентификатор канала = чан встроить = discord.Embed(цвет=0xe6c12d) embed.set_author(имя=название) embed.add_field(name="channel",value=f"") если шаг 1 != Нет: embed.add_field(name="Шаг 1",value=step1,inline=True) если шаг2 != Нет: embed.add_field(name="Шаг 2",value=step2,inline=True) если отмечает != Нет: embed.add_field(name="Notes",value=notes) embed.set_footer(text="text",icon_url="*url значка*") ждут взаимодействия.ответ.send_message("Отправлено для вставки") канал = client.get_channel(int(channelid)) awaitchannel.send(embed=embed,view=genButton(test,channel)) Я много раз пробовал менять небольшие части, просто чтобы попытаться заставить его работать, но каждый раз, когда в этом разделе возникает ошибка, я предполагаю, что это какая-то крошечная часть моего кода, вызывающая это, но я не слишком уверен
р>