Heim >Backend-Entwicklung >Python-Tutorial >Warum funktionieren meine Discord.py-Bot-Befehle nach der Anpassung von on_message nicht?
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!