[已解决]节点:65297UnhandledPromiseRejectionWarning:TypeError:mem.addRole不是函数

问题描述

我对运行脚本有疑问。 我正在使用discord Bot Maker的JavaScript代码及其运行脚本。 如您所见,这是一个持久角色系统。 如果您离开不和谐的服务器,应该保留您的角色,如果返回,则将其交还给他们。 但是,一旦我升级discord.js V12,我就得到了这个错误,并且不知道如何解决它。 有人有主意吗?

const roles = tempVars("roles");
const arr = roles.split(',');
const guild = client.guilds.cache.get(tempVars("serv_id"));
const mem = tempVars("mem");

if (!roles) console.error('Role list is undefined,cant add roles.');

(async () => {
    for (var i = 0; i < arr.length; i++) {
        let elm = arr[i];
        if (elm !== "@everyone") {
            elm = elm.replace('<@&','')
                .replace('>','');
            mem.addRole(elm)
                .catch(console.error);
            await require('util')
                .promisify(setTimeout)(1000)
        }
    }
console.log(`Added all applicable roles to ${mem.user.tag}`);
Actions.callNextAction(cache);
})()

解决方法

在版本12中,<member>.addRole()已替换为<member>.roles.add()

尝试将mem.addRole(elm)更改为mem.roles.add(elm)