Discord Bot无法发送消息,因为send不是上下文的属性

时间:2018-12-31 00:04:58

标签: python-3.x discord.py

我正在根据文档正确地实现命令,而是使用上下文和命令修饰符而不是on_message侦听器来实现,将我的命令移交给我是很痛苦的,但是文档还是非常有用的。不幸的是,我遇到了一个阻止我发送消息的问题...

在搬家之前,我发送邮件的方式就是这样

@client.event
async def on_message(message):
    if message.author.id in AdminID:
    await client.send_message(message.channel. 'message')

不幸的是,这不适用于新格式,因为没有消息参数可以从中获取信息,您要做的是使用ctx(上下文)参数,根据文档,它看起来像这样

@bot.command()
async def test(ctx, arg):
    await ctx.send(arg)

尽管机器人可以识别命令并到达那里,但我无法发送消息,因为send不是ctx的属性,该代码已从文档中删除,我是否缺少某些内容?有人可以帮我解决这个问题吗?谢谢

1 个答案:

答案 0 :(得分:1)

您正在查找与所用库不同版本的文档。

您正在使用0.16版,也称为“异步”分支。该分支的文档为here

您正在阅读1.0版本的文档,也称为rewrite分支。

您的命令类似于

@bot.command(pass_context=True)
async def test(ctx):
    if ctx.message.author.id in AdminID:
        await client.send_message(ctx.message.channel, 'message')