Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapa Perintah Discord Saya Berhenti Berfungsi Selepas Melaksanakan `on_message()`?
Perintah Dilumpuhkan Selepas Pelaksanaan on_message()
Apabila menggunakan acara on_message() discord.py, pengguna mungkin menghadapi masalah apabila arahan mereka berhenti kerja. Ini disebabkan sifat overriding on_message(), yang melumpuhkan pelaksanaan perintah melainkan didayakan secara khusus.
Menangani Isu
Untuk menyelesaikan isu ini, ia adalah penting untuk menambah panggilan ke bot.process_commands(message) pada penghujung fungsi on_message() anda. Baris ini mengarahkan Discord untuk memproses sebarang arahan yang terdapat dalam mesej.
Kod Diubahsuai
Berikut ialah versi diubah suai kod anda yang menggabungkan bot.process_commands(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): if message.content.startswith('-debug'): await message.channel.send('d') # Process any commands present in the message await bot.process_commands(message) @bot.command(pass_context=True) async def ping(ctx): await ctx.channel.send('Pong!') @bot.command(pass_context=True) async def add(ctx, *, arg): await ctx.send(arg)
Penjelasan
Acara lalai on_message() termasuk panggilan ke bot.process_commands(message) secara dalaman. Baris ini membolehkan pelaksanaan arahan dalam mesej. Dengan mengatasi on_message() lalai, anda menyekat pemprosesan arahan dengan berkesan. Menambah bot.process_commands(message) secara manual memulihkan kefungsian yang diingini.
Kesimpulan
Dengan melaksanakan penyelesaian yang dinyatakan di atas, anda boleh memastikan bahawa kedua-dua output nyahpepijat dalam on_message() dan arahan tersuai anda berfungsi dengan betul.
Atas ialah kandungan terperinci Mengapa Perintah Discord Saya Berhenti Berfungsi Selepas Melaksanakan `on_message()`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!