При отправке сообщения в канал мне в терминал выходит ошибка " View.to_components() missing 1 required positional argument: 'self' ". То есть я не могу прикрепить к сообщению кнопку.
Фрагмент кода:
class ButtonsOpen(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(style=discord.ButtonStyle.red, label='Закрыть тикет', custom_id='ButtonsOpen:close')
async def OPNclose_ticket(self, interaction: discord.Interaction, button: discord.ui.Button):
name = interaction.channel
await interaction.response.send_message("Тикет будет удалён через 3 секунды")
await asyncio.sleep(3)
await name.delete()
class ButtonsUsers(discord.ui.View):
def __init__(self):
super().__init__(timeout=None)
@discord.ui.button(style=discord.ButtonStyle.green, label='Открыть тикет', custom_id='ButtonsUsers:open')
async def open_ticket(self, interaction: discord.Interaction, button: discord.ui.Button):
name=interaction.user.name.replace(".","")
channel = discord.utils.get(interaction.guild.channels, name=name)
if channel is None:
channel_create = await interaction.guild.create_text_channel(name=interaction.user.name, overwrites={interaction.user: discord.PermissionOverwrite(), interaction.guild.default_role: discord.PermissionOverwrite(view_channel=False)})
await interaction.response.send_message(f"Запрос создан. Чат тикета - {channel_create.mention}", ephemeral=True)
await channel_create.send(f"Вы можете управлять тикетом кнопками ниже", view=ButtonsOpen)
cursor.execute(f"UPDATE users SET tickets = tickets + 1 WHERE id = {interaction.user.id}")
connection.commit()
else:
await interaction.response.send_message(f"Тикет уже создан - {channel.mention}", ephemeral=True)
я думаю, что ошибка в строке
await channel_create.send(f"Вы можете управлять тикетом кнопками ниже", view=ButtonsOpen)
но я не понимаю почему она появляется и причём тут "self"...
также увидел, что в терминале появляется ошибка "discord.ui.view Ignoring exception in view for item url=None disabled=False label='Открыть тикет' emoji=None row=None>"