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

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

Mary-Kate Olsen
リリース: 2024-12-17 18:56:10
オリジナル
1054 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート