Discord.py,bot.event有效,但bot.command无效

时间:2020-10-20 18:19:07

标签: python discord discord.py

因此,如果我实现了bot.event,则bot.command不起作用,但是如果我注释或删除bot.event,则bot.command可以正常工作。

在这里,bot.command不起作用,但bot.event起作用:

# bot.py
import os
from discord.ext import commands
from dotenv import load_dotenv

load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')

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


@bot.event
async def on_ready():
    print(f'{bot.user.name} has connected to Discord!')


@bot.event
async def on_message(message):
    if message.author == bot.user:
        return

    if message.content.lower() == 'testt':
        await message.channel.send('it works')


@bot.command(name='test')
async def test(ctx, arg):
    await ctx.send(arg)


bot.run(TOKEN)

如果我用bot.event注释了两个函数,则bot.command可以完美地工作。 它出什么问题了? :<< / p>

1 个答案:

答案 0 :(得分:1)

因为您有一个on_message事件。当您的漫游器中有on_message个事件时,您需要在await bot.process_commands(message)事件代码的最后一行添加on_message。否则它将阻止命令工作。