ホームページ >バックエンド開発 >Python チュートリアル >on_message をカスタマイズした後、Discord.py ボット コマンドが機能しないのはなぜですか?

on_message をカスタマイズした後、Discord.py ボット コマンドが機能しないのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-17 18:56:101056ブラウズ

Why Aren't My Discord.py Bot Commands Working After Customizing on_message?

問題の理解: コマンドが機能しない

Discord.py ライブラリを使用すると、一部のユーザーはコマンドが実行できないという予期しない動作に遭遇します。ただし、ボットはアクティブであるように見えます。この問題は、on_message イベント ハンドラーに起因する可能性があります。

問題の解決: bot.process_commands(message) の追加

Discord.py ドキュメントによると、デフォルトの on_message イベント ハンドラーにより、追加のコマンドが実行されなくなります。これを解決するには、カスタム on_message 関数の最後に bot.process_commands(message) 行を含める必要があります。

ガイダンスについてはドキュメントを参照してください:

Overriding the default provided on_message forbids any extra commands from running. To fix this, add a bot.process_commands(message) line at the end of your on_message.

実装例:

import discord
import asyncio
from discord.ext import commands

bot = commands.Bot(command_prefix = '-')
@bot.event
async def on_ready():
    print('Logged in as')
    print(bot.user.name)
    print(bot.user.id)
    print('------')

@bot.event
async def on_message(message):
    # do some extra stuff here

    await bot.process_commands(message)

このガイドラインに従うことで、コマンドがシームレスに動作し続けることを保証しながら、カスタム on_message イベント ハンドラーの機能を強化します。

以上がon_message をカスタマイズした後、Discord.py ボット コマンドが機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。