ホームページ > バックエンド開発 > Python チュートリアル > Discord.py 2.0 コマンドが機能しないのはなぜですか?

Discord.py 2.0 コマンドが機能しないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-07 09:28:13
オリジナル
243 人が閲覧しました

Why Aren't My Discord.py 2.0 Commands Working?

Discord.py 2.0 でのコマンド実行エラーを解決する方法

Discord.py バージョン 2.0 では、明示的な指定を必要とするメカニズムであるインテントが導入されています。ボットが処理できるイベント。この変更により、ボットがデフォルトですべてのイベントをリッスンすることがなくなり、プライバシーとパフォーマンスが大幅に向上します。

あなたの場合、必要なインテントが有効になっていないため、discord.py 2.0 に移行した後、ボットはコマンドの実行に失敗します。 。この問題を解決し、コマンドの機能を復元するには、次の手順に従います。

1. Discord 開発者ポータルでインテントを有効にします:

  • Discord 開発者ポータルにサインインします。
  • ボット アプリケーションを選択します。
  • 「ボット」をクリックします。 「セクション。
  • 「Privileged Gateway Intents」の下で、有効にします。 「メッセージコンテンツ」インテント。

2.ボットにインテントを追加します:

  • discord.Intents クラスをインポートし、Intents オブジェクトを作成します。
  • メッセージ コンテンツの処理を有効にするには、message_content 属性を True に設定します。
  • ボットの作成時に Intents オブジェクトを Intents パラメータとして渡しますインスタンス。
import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True

bot = commands.Bot(command_prefix='$', intents=intents, help_command=None)
ログイン後にコピー

3.コマンド宣言を更新します:

  • コマンド デコレーターに name パラメーターを追加して、コマンドの名前を指定します。
  • aliases パラメーターを使用してエイリアスを定義することを検討してください。
@bot.command(name='test1', aliases=['t1'])
async def test1(ctx):
    print('test command')
ログイン後にコピー

4.ボットの実行:

run メソッドを使用して通常どおりボットを実行します。

この強化されたインテント メカニズムにより、ボットがユーザーのプライバシーを尊重するだけでなく、全体的なパフォーマンスも向上します。インテントを明示的に指定することで、ボットは必要なイベントのみをリッスンし、リソースを節約し、待ち時間を短縮します。

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

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