【问题标题】:Discord.py How to get message of mentioned user?Discord.py 如何获取提及用户的消息?
【发布时间】:2022-01-30 22:22:44
【问题描述】:

我正在更新一个在上次更新之前运行良好的旧版 Bot。大多数命令都很容易上手。 在一个命令中,用户 A 应该指定另一个用户 B 和一个号码。提到了用户 B,并且该数字经过一个为他/她掷骰子数量的类。在这发生并生成了一个数字之后,用户 B 现在应该命名一个也经过此类并形成计数器值的数字。 这可以达到预期用户 B 的反馈的程度。之后我收到错误“Client.wait_for() got an unexpected keyword argument 'author'”。

@bot.command()
async def bam(ctx, op: discord.Member, a: int):
    __wuerfe , __erfolg , __sechs = wurf(a)
    __wuerfe.clear()
    while __sechs > 0:
        ___wuerfe , ___erfolg , ___sechs = wurf(__sechs)
        ___wuerfe.clear()
        __sechs = ___sechs
        ___sechs = 0
        __erfolg += ___erfolg
    if __erfolg == 0:
        await ctx.send("{} schlug voll daneben!".format(ctx.message.author.mention))
    else:
        await ctx.send("{} griff ".format(ctx.message.author.mention) + str(op.mention) + " mit **" + str(__erfolg) + "** Erfolgen an! " + str(op.nick) + " gib bitte deinen Wert für physische Verteidigung ein.")
        antwort = await bot.wait_for(author = op, timeout=90)
        antwortVer = antwort.content
        verteidigung = int(antwortVer)

        wuerfeVer , erfolgVer , sechsVer = wurf(verteidigung)
        wuerfeVer.clear()
        while sechsVer > 0:
            wuerfeVer2 , erfolgVer2 , sechsVer2 = wurf(sechsVer)
            wuerfeVer2.clear()
            sechsVer = sechsVer2
            sechsVer2 = 0
            erfolgVer += erfolgVer2

我知道我正在使用的结构已经过时,但我找不到一种工作方式来获取提到的用户 B 并等待他的回答。

【问题讨论】:

    标签: python discord discord.py


    【解决方案1】:

    这是我为此使用的代码,您仍然可以添加超时,但可以将其编辑为您想要(或删除)的任何成员和频道

    def check(message):
          return message.author == ctx.author and message.channel == ctx.channel
    await client.wait_for('message', check=check)
    

    【讨论】:

    • 谢谢,这对理解新结构很有帮助。可以弄清楚如何更新我的其余代码!
    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-01
    • 2021-08-02
    • 2021-07-31
    • 2021-09-12
    • 2017-10-13
    相关资源
    最近更新 更多