python Interactions library doesnt accept argument

28 views Asked by At

I am doing a program for 1 game, which will parse info from website and send it in discord, but it doesnt accept argument player_name.

@interactions.slash_command(
    name="stats",
    description="Показывает статистику игрока"
)
@interactions.option(
    name="Имя",
    description = "Имя игрока"
)
async def player_stats(ctx: interactions.SlashContext, text: str):
    if text:
        player_data = PlayerData(text)
        player_data.fetch_data()
        image_filename = "chart.png"

        try:
            if os.path.exists(image_filename):
                os.remove(image_filename)
        except PermissionError:
            if 'file' in locals():
                file.fp.close()

        points_data = player_data.get_points()
        time_data = player_data.get_time()
        maps_data = player_data.get_maps()
        map_types_data = player_data.get_map_types()

        if 'удалось' in map_types_data:
            val = f'Не удалось получить информацию о {text}.'
            await ctx.send(content=f"Не удалось получить информацию о {text}")
        else:
            val = '\n'.join(map_types_data)

        if 'удалось' in val:
            pass
        else:
            image_buffer = generate_pie_chart(map_types_data)
            with open(image_filename, "wb") as f:
                f.write(image_buffer.read())

        embed = interactions.Embed(
            title=f'Статистика для {text}',
            color=0x08B9F9
        )
        embed.add_field(name='Очки', value=points_data, inline=False)
        embed.add_field(name='Время в игре', value=time_data, inline=False)
        embed.add_field(name='Карты', value=val, inline=False)

        if 'удалось' in val:
            pass
        else:
            with open(image_filename, "rb") as f:
                file = interactions.File(f)
                embed.set_image(url="attachment://chart.png")

            await ctx.send(embed=embed, file=file)
    else:
        await ctx.send("Необходимо указать имя игрока.")


@bot.event
async def on_ready():
    print("Ready!")

# Start the interactions client
bot.start()

Error message:

Traceback (most recent call last):
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\site-packages\interactions\client\client.py", line 1900, in __dispatch_interaction
    response = await callback
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\site-packages\interactions\client\client.py", line 1771, in _run_slash_command
    return await command(ctx, **ctx.kwargs)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\site-packages\interactions\models\internal\command.py", line 132, in __call__
    await self.call_callback(self.callback, context)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\site-packages\interactions\models\internal\application_commands.py", line 833, in call_callback
    return await self.call_with_binding(callback, ctx, *new_args, **new_kwargs)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python310\lib\site-packages\interactions\models\internal\callback.py", line 43, in call_with_binding
    return await callback(*args, **kwargs)
TypeError: player_stats() missing 1 required positional argument: 'player_name'
0

There are 0 answers