これが私が試したコードです:
@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.")
しかし、それは機能していないようです。
コマンドデコレータを使用する場合、次のことができます。
from discord.ext import commands # necessary for this task
client = commands.Bot(command_prefix=commands.when_mentioned_or("!"))
または、on_message()
イベントを使用して、これは言及を確認できる多くの方法の1つです。
@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")
また、チャンネルにメッセージを送信する方法が正しくないことに気づきました。
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()
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加