ホームページ >バックエンド開発 >Python チュートリアル >on_message をカスタマイズした後、Discord.py ボット コマンドが機能しないのはなぜですか?
問題の理解: コマンドが機能しない
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 サイトの他の関連記事を参照してください。