Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使这两个命令都可以放入discord.py_Python_Discord.py - Fatal编程技术网

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]: