Python discord bot,等待消息未按预期工作

时间:2021-06-02 13:35:25

标签: python discord discord.py

我正在 discord.py 上发出命令。命令正在从 discord 服务器的管理员用户那里获取一些参数。当您调用 command 时,它会从每个频道获取每条用户消息。我只想做,从调用者用户和他写的文本通道获取参数。同时,错误代码不起作用。当有人尝试调用不是管理员的命令时,它不会发送消息。但是如果用户不是管理员,则无法使用此命令,但我想机器人向他们发送消息。

这是我的命令,

@Bot.command(pass_context=True)
@has_permissions(administrator=True)
async def ekle(ctx):
    
  
    await ctx.channel.send("send 4 parametres")
    
    msg = await Bot.wait_for('message',(ctx.author))
    response = (msg.content)
    bos = response.split(' ')
@ekle.error
async def ekle_error(error, ctx):
    if isinstance(error, CheckFailure):
        msg = "you cant use this command ! {}".format(ctx.message.author.mention)  
        await Bot.send_message(ctx.message.channel, msg)

代码不起作用。控制台没有给出任何错误,但代码无法处理不和谐。 我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

bot.wait_for 接受一个必需参数(事件)和两个可选关键字参数(检查和超时)。

您正在传递第二个位置参数,这将不起作用。正确的用法是,

msg = await Bot.wait_for('message', check=lambda x: x.author.id == ctx.author.id)

参考文献: