当前位置: 首页 > 知识库问答 >
问题:

不一致py |如何一次删除特定用户添加的消息中的所有反应

杨昆
2023-03-14

现在,我的机器人发送一条消息,并用一系列表情符号对自己的消息进行反应,多个用户使用机器人反应的表情符号进行反应。一段时间后,机器人需要移除除机器人创建的反应之外的所有反应。

比方说,如果一个机器人发送一条消息“react text”并使用表情符号“yes emoji”(仅由机器人做出反应)“no emoji”(也仅由机器人做出反应)并且多个用户对“yes emoji”(然后由机器人和多个用户做出反应)“no emoji”(然后由机器人和多个用户做出反应)一段时间后,所有的“yes emoji”(由机器人和多个用户反应)“no emoji”(由机器人和多个用户反应)反应都需要删除,但机器人的反应必须是这样的,所以最终的结果必须是机器人的反应“yes emoji”(仅由机器人反应)“no emoji”(也仅由机器人反应)

我用过:

等待反应。删除(用户)

但是,它一次删除一个反应,需要一段时间。一个特定用户在特定消息中做出的所有反应是否可以一次删除?如果可能的话,该怎么做?

非常感谢。

共有1个答案

乐正瑞
2023-03-14

使用消息。反应您会得到一个对该消息的反应列表,您应该对其进行迭代。然后在该反应上,迭代与之反应的用户,如果该用户不是机器人,则删除该用户的反应:

for reaction in message.reactions:
    for user in await reaction.users().flatten():
        if user != client.user: #check if the user is the bot, might be slightly different for you
            await reaction.remove(user)
 类似资料:
  • 是否有任何方法可以删除除bot本身之外的任何人发送的消息,文档似乎表明这是可能的 您自己的邮件可以删除没有任何适当的权限。然而,要删除其他人的邮件,您需要适当的权限才能这样做。 但是我找不到一种方法来定位消息,以便在on_message事件触发器中这样做,我是错过了什么还是不可能?

  • 我对javascript和discord非常陌生。js,有人能帮我,告诉我如何设置做出反应的用户的角色吗?我自己做这件事有困难。

  • 我想创建一个不和谐机器人,每天在特定的时间发送2条消息。下面的代码将使消息进入一个循环,例如每5秒发送一条消息。我如何设置每天发送消息的具体时间,例如,消息1在下午6点,消息2在上午10点。我在这里找到了这段代码,但是没有找到我想要的。

  • 我的代码是这个但是输出很糟糕 我的输出: 与不和有关![ 文件"C:\用户\Cinar\untitled0.py",第18行,client.run('Bot Token', bot=False) 在运行_cleanup_loop(循环)中,文件"D:\用户\Cinar\anaconda3\lib\site-包\discord\client.py",第714行。 文件“D:\Users\cinar\

  • 我正试图为不和谐做一个会员机器人。机器人将从API中检索用户ID和角色,并需要从用户中删除此角色。 首先,我要了解特定用户所在的公会: 然后,我通过名称查找角色: 然后我试图通过他的ID找到用户,并删除上面的角色。但是,用户始终未定义: 通常,当我添加一个角色时,我会使用消息对象,然后像这样使用消息中的公会: 但是,我从API中检索数据,因此我必须以另一种方式进行。 我的脚本的完整代码:

  • 我使用Python3.6idle编写了一个bot,我想添加一个命令,但我不知道如何添加它。你们中的一些人能帮我举一些例子或建议吗?我会很高兴的,谢谢。