Skip to content Skip to sidebar Skip to footer

Prefixed And Non Prefix Commands Are Not Working Together On Python Discord Bot

import asyncio import discord from discord.ext import commands from discord.ext.commands import Bot import chalk bot = commands.Bot(command_prefix='!') @bot.event async def on_r

Solution 1:

Change @bot.command to @bot.event when using on_message

Add bot.process_commands when using on_message

Why does on_message make my commands stop working?

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. For example:

@bot.eventasyncdefon_message(message):
    # do some extra stuff hereawait bot.process_commands(message)

http://discordpy.readthedocs.io/en/latest/faq.html#why-does-on-message-make-my-commands-stop-working

Your code should look like this:

import asyncio
import discord
from discord.ext import commands
from discord.ext.commands import Bot
import chalk


bot = commands.Bot(command_prefix='!')

@bot.eventasyncdefon_ready():
    await bot.change_presence(game=discord.Game(name='Test'))
    print("All systems online and working " + bot.user.name)
    await bot.send_message(discord.Object(id=386518608550952965), "All systems online and working")

@bot.command(pass_context=True)asyncdefhel(ctx):
    await bot.say("A help message is sent to user")


@bot.eventasyncdefon_message(message):
    if message.content.startswith("ping"):
        await bot.send_message(message.channel, "Pong")

    await bot.process_commands(message)


bot.run("TOKEN", bot=True)

Solution 2:

Try replacing the @bot.command above on_message with @bot.event

Post a Comment for "Prefixed And Non Prefix Commands Are Not Working Together On Python Discord Bot"