Maison >développement back-end >Tutoriel Python >Pourquoi mes commandes de robot Discord.py ne fonctionnent-elles pas après la personnalisation de on_message ?

Pourquoi mes commandes de robot Discord.py ne fonctionnent-elles pas après la personnalisation de on_message ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-17 18:56:10990parcourir

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

Comprendre le problème : les commandes ne fonctionnent pas

Lors de l'utilisation de la bibliothèque Discord.py, certains utilisateurs rencontrent un comportement inattendu où les commandes ne s'exécutent pas même bien que le bot semble être actif. Ce problème peut être attribué au gestionnaire d'événements on_message.

Résoudre le problème : ajout de bot.process_commands(message)

Selon la documentation Discord.py, remplacer le Le gestionnaire d'événements on_message par défaut empêche l'exécution de commandes supplémentaires. Pour résoudre ce problème, il est nécessaire d'inclure une ligne bot.process_commands(message) à la fin de la fonction on_message personnalisée.

Référence à la documentation pour obtenir des conseils :

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.

Exemple de mise en œuvre :

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)

En suivant ces directives, vous pouvez conserver la fonctionnalité de votre système personnalisé gestionnaire d'événements on_message tout en garantissant que les commandes continuent de fonctionner de manière transparente.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn