Python 如何使这两个命令都可以放入discord.py
有趣的是,我添加了Python 如何使这两个命令都可以放入discord.py,python,discord.py,Python,Discord.py,有趣的是,我添加了@bot.command()(此代码用于在检测到命令时发送图像,它将在discord.py中发送图像,它可以工作)。 但是如果我在discord.py中同时添加了@bot.event()(此代码用于关键字搜索,如果它搜索任何关键字,它将发送一条消息以回复),则无法工作。 这意味着我不能将这两个函数放在discord.py中,我如何解决它? 这是我的密码: @bot.command() 异步def发送照片(ctx): 等待ctx.send('image_1') @机器人事件 异步
@bot.command()
(此代码用于在检测到命令时发送图像,它将在discord.py中发送图像,它可以工作)。
但是如果我在discord.py中同时添加了@bot.event()
(此代码用于关键字搜索,如果它搜索任何关键字,它将发送一条消息以回复),则无法工作。
这意味着我不能将这两个函数放在discord.py中,我如何解决它?
这是我的密码:
@bot.command()
异步def发送照片(ctx):
等待ctx.send('image_1')
@机器人事件
异步def on_消息(消息):
关键字=[“早上”,“再见”]
对于输入关键字:
如果输入msg.content和key==关键字[0]和msg.author!=bot.user:
random\u morning=random.choice(jdata['GOODMORNING'])
等待消息。频道。发送(随机上午)
打破
elif key in msg.content和key==关键字[1]和msg.author!=bot.user:
random\u bye=random.choice(jdata['bye'])
等待消息通道发送(随机再见)
打破
文档的常见问题页面提到了如何解决此问题:
从本质上讲,覆盖_消息上提供的默认值不允许运行任何额外的命令。要解决此问题,请在on_消息的末尾添加bot.process_命令(msg)行。所以只要使用:
async def on_消息(msg):
关键字=[“早上”,“再见”]
对于输入关键字:
如果输入msg.content和key==关键字[0]和msg.author!=bot.user:
random\u morning=random.choice(jdata['GOODMORNING'])
等待消息。频道。发送(随机上午)
打破
elif key in msg.content和key==关键字[1]和msg.author!=bot.user:
random\u bye=random.choice(jdata['bye'])
等待消息通道发送(随机再见)
打破
bot.process_命令(msg)
顺便说一下,代码
keyword=['morning','debye']
对于输入关键字:
如果输入msg.content和key==关键字[0]和msg.author!=bot.user:
random\u morning=random.choice(jdata['GOODMORNING'])
等待消息。频道。发送(随机上午)
打破
elif key in msg.content和key==关键字[1]和msg.author!=bot.user:
random\u bye=random.choice(jdata['bye'])
等待消息通道发送(随机再见)
打破
可以缩短为
如果msg.content中的“上午”:
random\u morning=random.choice(jdata['GOODMORNING'])
等待消息。频道。发送(随机上午)
msg.content中的elif“再见”:
random\u bye=random.choice(jdata['bye'])
等待消息通道发送(随机再见)
这是一种非常低效的方法。。。为什么不在没有for循环的情况下做一些事情,比如:msg.content中的if关键字[0]: