Vid*_*ero 2 discord.py discord.py-rewrite
这是我试过的代码:
@client.event
async def on_message(message):
if client.user.mention in message.content.split():
await client.say("You can type `!vx help` for more info.")
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用。
使用命令装饰器时,您可以执行以下操作:
from discord.ext import commands # necessary for this task
client = commands.Bot(command_prefix=commands.when_mentioned_or("!"))
Run Code Online (Sandbox Code Playgroud)
或者使用on_message()事件,这是您可以检查提及的多种方法之一:
@client.event
async def on_message(message):
if client.user.mentioned_in(message):
await message.channel.send("You can type `!vx help` for more info")
Run Code Online (Sandbox Code Playgroud)
另外,我注意到您向频道发送消息的方法不太正确。
在 d.py rewrite (v1.x) 中,您有一个abc.Messageable对象,顾名思义,它类似于服务器的文本频道、DM 或群聊。
这个对象有一个方法被调用send(),它允许你发送内容。您会发现这种情况的一些常见情况是;ctx.send()当您使用命令装饰器时 - 它们Context作为第一个参数 -message.channel.send()当您on_message()像您一样使用事件时。它也会出现在其他一些地方,但这些将是最常见的。
您对它是一个协程有正确的想法,因此需要await它。在文档中,它会说明某些东西是否是协程。
参考:
commands.when_mentioned_or()ClientUser.mentioned_in()abc.Messageable- 查看您可以send()向哪些人发送消息。commands.Context- 这继承自abc.Messageable.Messageable.send()| 归档时间: |
|
| 查看次数: |
7319 次 |
| 最近记录: |