因此,如果我实现了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>
答案 0 :(得分:1)
因为您有一个on_message
事件。当您的漫游器中有on_message
个事件时,您需要在await bot.process_commands(message)
事件代码的最后一行添加on_message
。否则它将阻止命令工作。