ValueError: недопустимый литерал для int () с ошибкой base 10 в боте Discord - PullRequest
0 голосов
/ 07 декабря 2018

Я получаю эту ошибку:

    ValueError: invalid literal for int() with base 10: '<@256430125040533504>'

Для этого кода:

     @client.command(pass_context=True)
async def give(self, user_id: discord.User.id, money: int):
    user_add_xp(user_id, money)
    embed = discord.Embed(description='{0} hat {1}EXP bekommen'.format(discord.User.name, money))
    await self.client.say(embed=embed)

Эта команда должна дать пользователю указанную сумму денег, которой команда является или должна быть .give (имя) (сумма денег)

1 Ответ

0 голосов
/ 07 декабря 2018

Не зная остальной структуры вашего кода, трудно сказать точно, как должна быть структурирована эта команда.Ниже мое лучшее предположение.

from discord.ext.commands import Bot
from discord import User

client = Bot(command_prefix='!')

@client.command(pass_context=True)
async def give(ctx, user: User, money: int):
    user_add_xp(user.id, money)
    embed = discord.Embed(description='{0} hat {1}EXP bekommen'.format(user.name, money))
    await client.say(embed=embed)

client.run("token")

Обратите внимание, что я не использую self.client, потому что эта сопрограмма не является методом класса с атрибутом client.Вместо этого первым аргументом команды является контекст вызова.

...