【问题标题】:discord.js | Remove a role from a member and give said role to another member不和谐.js |从成员中删除角色并将该角色赋予另一个成员
【发布时间】:2021-06-16 05:49:00
【问题描述】:

我正在尝试从一个人中删除一个角色,并将该角色分配给发起该命令的人。

当 A 人这样做时,它第一次起作用。但是当其他人第二次尝试调用该命令时,代码找不到人 A。任何帮助都会很酷。

//Just some startup stuff
const { error, timeStamp } = require('console'),
client = new Discord.Client(),
client.login('How About No?')

var command, role, person

//Check if it's alive
client.once('ready', () => {
    console.log(`${client.user.tag} is online`)
})

//When a message is sent
client.on('message', message => {

command = message.content.toLowerCase()

if(command === 'test' && message.guild.id === 'the server ID'){

    role = message.guild.roles.cache.find(r => r.id === 'the role ID') //Find the correct role

    person = role.members.first()
    /* I can use ".first()" here, because there's never supposed to be more than one person with this role.
    The problem is here. On the second run, it outputs "undefined" even though a person has the role. */

    //If a person has the role, remove it from them.
    if(typeof person !== 'undefined') person.roles.remove(role).catch(error => console.log(error))

    //Give the role
    person = message.member
    person.roles.add(role).catch(error => console.log(error))
}

})

【问题讨论】:

    标签: javascript node.js discord discord.js


    【解决方案1】:

    有时会发生这种情况,因为缓存更新不够快。

    你可以做的是fetch角色而不是API请求。

    message.guild.roles.fetch('the role ID',true,true)
    

    【讨论】:

      猜你喜欢
      • 2020-12-05
      • 1970-01-01
      • 2021-02-16
      • 2021-10-11
      • 2018-10-22
      • 2020-11-22
      • 2019-11-16
      • 2021-11-03
      • 1970-01-01
      相关资源
      最近更新 更多