Discord.py , помогите в создание бота, я новичек в програмировании, нужна помощь в програмном коде бота, выдает ошибку?
Изучаю программирование, и столкнулся с проблемой, при вводе =инфо (команда, с префиксом "=") выдает ошибку :
Ignoring exception in command инфо: Traceback (most recent call last): File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\discord\ext\commands\core.py", line 83, in wrapped ret = await coro(*args, **kwargs) File "ds.py", line 23, in инфо emb.add_field(name= "Присоединился в", value= str(user.joined_at)[:16]) AttributeError: 'User' object has no attribute 'joined_at'
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\discord\ext\commands\bot.py", line 892, in invoke await ctx.command.invoke(ctx) File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\discord\ext\commands\core.py", line 797, in invoke await injected(*ctx.args, **ctx.kwargs) File "C:\Users\pc\AppData\Local\Programs\Python\Python35\lib\site-packages\discord\ext\commands\core.py", line 92, in wrapped raise CommandInvokeError(exc) from exc discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'User' object has no attribute 'joined_at'
Сам код:
@Bot.command(pass_context=True)
async def инфо(ctx, user: discord.User):
emb = discord.Embed(title= "Информация о {}".format(user.name), color= 0x39d0d6)
emb.add_field(name= "Ник", value= user.name)
emb.add_field(name= "Присоединился в", value= str(user.joined_at)[:16])
emb.add_field(name= "ID", value= user.id)
if user.game is not None:
emb.add_field(name= "Game", value= user.game)
emb.set_thumbnail(url= user.avatar_url)
emb.set_footer(text= "Вызвано: {}".format(user.name), icon_url= user.avatar_url)
await ctx.send(embed= emb)
await ctx.delete_message(ctx.message)
Ответы (1 шт):
Объект типа User - "глобальный пользователь" бота. Т.е. общий между всеми серверами. Объекты данного типа не имеют даты входа на сервер (Guild), так как не привязаны к серверу.
Для получения даты входа нужен объект типа Member.
pass_context в rewrite-версии библиотеки не существует.
@Bot.command()
async def инфо(ctx, user: discord.Member):
emb = discord.Embed(title="Информация о {}".format(user.name), color=0x39d0d6)
emb.add_field(name="Ник", value=user.name)
emb.add_field(name="Присоединился в", value=str(user.joined_at)[:16])
emb.add_field(name="ID", value=user.id)
if user.game:
emb.add_field(name="Game", value=user.game)
emb.set_thumbnail(url=user.avatar_url)
emb.set_footer(text="Вызвано: {}".format(user.name), icon_url=user.avatar_url)
await ctx.send(embed=emb)
await ctx.delete_message(ctx.message)