Heim >Backend-Entwicklung >Python-Tutorial >Warum funktionieren meine Discord.py-Bot-Befehle nach der Anpassung von on_message nicht?

Warum funktionieren meine Discord.py-Bot-Befehle nach der Anpassung von on_message nicht?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-17 18:56:10988Durchsuche

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

Verstehen des Problems: Befehle funktionieren nicht

Bei der Verwendung der Discord.py-Bibliothek stoßen einige Benutzer auf unerwartetes Verhalten, bei dem Befehle nicht einmal ausgeführt werden obwohl der Bot aktiv zu sein scheint. Dieses Problem kann dem on_message-Ereignishandler zugeschrieben werden.

Behebung des Problems: Hinzufügen von bot.process_commands(message)

Laut Discord.py-Dokumentation wird das überschrieben Der standardmäßige on_message-Ereignishandler verhindert die Ausführung zusätzlicher Befehle. Um dieses Problem zu beheben, muss am Ende der benutzerdefinierten on_message-Funktion eine bot.process_commands(message)-Zeile eingefügt werden.

Weitere Informationen finden Sie in der Dokumentation:

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.

Beispielimplementierung:

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)

Durch Befolgen dieser Richtlinie können Sie die Funktionalität Ihres benutzerdefinierten Produkts beibehalten on_message-Ereignishandler und stellt gleichzeitig sicher, dass Befehle weiterhin reibungslos funktionieren.

Das obige ist der detaillierte Inhalt vonWarum funktionieren meine Discord.py-Bot-Befehle nach der Anpassung von on_message nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn