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"