python python-3.x discord discord.py discord.py-rewrite

python - ¿Por qué on_message impide que los comandos funcionen?



python-3.x discord (1)

Básicamente, todo parece funcionar bien y arrancar, pero por alguna razón no puedo llamar a ninguno de los comandos. He estado mirando alrededor por una hora fácilmente y ahora estoy viendo ejemplos / viendo videos y no puedo por mi vida descubrir qué está mal. Código a continuación:

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'') @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)

La salida de depuración que tengo en on_message realmente funciona y responde, y todo el bot se ejecuta sin excepciones, pero simplemente no llamará a los comandos.


De la documentación de reescritura:

Anular el valor predeterminado proporcionado en on_message prohíbe la ejecución de comandos adicionales. Para solucionar esto, agregue una línea bot.process_commands(message) al final de on_message . Por ejemplo:

@bot.event async def on_message(message): # do some extra stuff here await bot.process_commands(message)

El on_message predeterminado contiene una llamada a esta rutina, pero cuando la anula con su propio on_message , debe llamarlo usted mismo.