discord.py-message-components
discord.py-message-components copied to clipboard
Bug in printing discord.Interaction
When I am trying to print discord.Interaction object it throws this error
Ignoring exception in command test_command:
Traceback (most recent call last):
File "/home/ibrahim/.local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
ret = await coro(*args, **kwargs)
File "main.py", line 245, in test_command
print(interaction, button)
File "/home/ibrahim/.local/lib/python3.8/site-packages/discord/interactions.py", line 96, in __repr__
return f'<Interaction {", ".join(["%s=%s" % (a, getattr(self, a)) for a in self.__slots__ if a[0] != "_"])}>'
AttributeError: 'Interaction' object has no attribute '__slots__'
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/ibrahim/.local/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 1062, in invoke
await ctx.command.invoke(ctx)
File "/home/ibrahim/.local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/home/ibrahim/.local/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Interaction' object has no attribute '__slots__'
I think its caused because in the __init__
it doesn't defines __slots__
and in the __repr__
part, it inserted __slots__
in the return statement. So, it raised an AttributeError
This is the code that I ran to get the error
@commands.command(ignore_extra=True)
async def test_command(self, ctx, count:int):
new_button = Button(label="test_button", custom_id = "009")
message = await ctx.send("test", components = [[new_button]])
def check_button(i: discord.Interaction, button):
return i.author == ctx.author and i.message == message
interaction, button = await bot.wait_for('button_click', check=check_button)
print(interaction, button)
await interaction.edit(content=count)
Oh yea another peace of Code i forgot to change after removing the __slots__
, will bee fixed with the next update (im working on Implementation for Slash-commands and context-menus.)