Python 3.x Discord Bot无法发送消息,因为send不是上下文的属性
根据文档,我正在以正确的方式重新实现我的命令,使用上下文和命令装饰器而不是on_消息侦听器,将我的命令传递到上是一种痛苦,但文档非常有用。不幸的是,我遇到了一个阻止我发送消息的问题 在搬家之前,我发送信息的方式是这样的Python 3.x Discord Bot无法发送消息,因为send不是上下文的属性,python-3.x,discord.py,Python 3.x,Discord.py,根据文档,我正在以正确的方式重新实现我的命令,使用上下文和命令装饰器而不是on_消息侦听器,将我的命令传递到上是一种痛苦,但文档非常有用。不幸的是,我遇到了一个阻止我发送消息的问题 在搬家之前,我发送信息的方式是这样的 @client.event async def on_message(message): if message.author.id in AdminID: await client.send_message(message.channel. '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)
虽然bot识别了该命令并转到那里,但我无法发送消息,因为send不是ctx的属性,该代码已从文档中删除,我是否遗漏了什么?有人能帮我弄清楚吗?谢谢您正在查看的文档与您正在使用的库版本不同 您使用的是版本
0.16
,也称为“异步”分支。该分支的文档是
您正在阅读1.0
版本(也称为重写分支)的文档
你的命令看起来像
@bot.command(pass_context=True)
async def test(ctx):
if ctx.message.author.id in AdminID:
await client.send_message(ctx.message.channel, 'message')
非常感谢!应该猜到它会是这样的,但是在发送部分,您用句号而不是逗号分隔每个参数,这会导致它崩溃,但是如果用逗号替换,它工作得很好!