discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:“事件”对象没有属性“get_channel”

Posted

技术标签:

【中文标题】discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:“事件”对象没有属性“get_channel”【英文标题】:discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'Events' object has no attribute 'get_channel 【发布时间】:2022-01-05 21:13:08 【问题描述】:

我想让它在我的机器人启动时向某些聊天发送消息。正常上电,一切都很好,当我已经使用特殊的重启命令时,就会发出这个错误。代码如下:

@client.event
async def on_ready():
    changeStatus.start()
    kvuqqs = client.get_channel(906998823187017728)
    librar = client.get_channel(906168716197232660)

    await kvuqqs.send('Айоу! Бот был включен. \nК сожалению, на данный момент обновлений нет. \n`l.хелп`')
    await librar.send(embed=discord.Embed(title='Бот был включен!', description='Версия бота на данный момент: 2.0.1.', color=random.choice(colors)))

还有一个完整的错误:

Traceback (most recent call last):
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/opt/virtualenvs/python3/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/opt/virtualenvs/python3/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: 'Events' object has no attribute 'get_channel'

【问题讨论】:

【参考方案1】:

布鲁 要从 id 获取频道,您需要一个公会

示例:-

guild = client.get_guild(ID)
channel = guild.get_channel(ID)

通过 id 获取频道或公会是特权意图

在您的机器人中添加此代码(如果您没有)

intents = discord.Intents().all()
client = commands.Bot(command_prefix='prefix', intents=intents)

您必须在 Discord Dev Portal 中打开这些意图

您可以在此处阅读有关意图的更多信息:- https://discordpy.readthedocs.io/en/stable/intents.html

【讨论】:

以上是关于discord.ext.commands.errors.CommandInvokeError:命令引发异常:AttributeError:“事件”对象没有属性“get_channel”的主要内容,如果未能解决你的问题,请参考以下文章