【问题标题】:Is it possible to make awaitReactions give everyone who reacted a role?是否有可能让 awaitReactions 给每个做出反应的人一个角色?
【发布时间】:2020-12-04 21:48:25
【问题描述】:

错误:(节点:2552)UnhandledPromiseRejectionWarning:TypeError:message.member.roles.add 不是函数

代码:

   msg.react('????')
    let collected = await msg.awaitReactions(() => true, {
        time: time
    }).then(collected => {

       var reaction = collected.first();

        message.member.roles.add('743917402714275971')
    })

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    是的,这是可能的。下面的代码我会一步步指导你。

    msg.react('?')
    await msg.awaitReactions(() => true, {
        time: time
    }).then(collected => {
    
        collected.users.cache.forEach((user) => {
            msg.guild.members.cache.get(user.id).roles.add('743917402714275971');
        })
    
    })
    

    所以collected 返回users 的集合。 您必须遍历它们并为每个对象获取 user 对象。 之后,您必须通过使用user ID 从公会获取用户来获取用户的GuildMember 对象。从那里,您可以与每个对消息做出反应并添加角色的用户返回的 GuildMember 对象进行交互。

    【讨论】:

    • (node:4628) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'cache' of undefined 它会报错
    • console.log(collected) 返回什么?
    • 返回为 Collection [Map] { '�' => MessageReaction { message: Message { channel: [TextChannel], 已删除: false, id: '746894974192320543', 类型: 'DEFAULT', 内容: '',作者:[ClientUser],固定:false,tts:false,nonce:未定义,系统:false,嵌入:[Array],附件:Collection [Map] {},createdTimestamp:1598144038485,editedTimestamp:null,反应: [Collection [Map]],提及:[MessageMentions],webhookID:null,命中:null,
    猜你喜欢
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2021-08-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-21
    • 2020-11-21
    相关资源
    最近更新 更多