不和谐.js仅使用 id 管理角色



我正在尝试编写一个不和谐.js机器人。现在我正在开发一个临时系统,但似乎找不到一种从用户中删除角色的方法他们的ID可以使用!我已经在互联网上搜索过,但我似乎找不到任何对我有帮助的东西。
前任。不和谐.js文档和白痴指南

我的代码:

exports.run = (client, message, args, config) => { if(!message.member.roles.some(r=>[config.BotMaster].includes(r.name))) return message.reply("Du behöver en högre rank!");
const mysql = require('mysql');
const con = mysql.createConnection({
    host: config.host,
    user: config.user,
    password: config.password,
    database: config.database
});
    let role = message.guild.roles.find("name", config.Muted);
    let member = message.mentions.members.first();
    let sql = "SELECT * FROM TempMute WHERE Time<=" + Date.now() + ' AND Unmuted!="True"'
    con.query(sql, function (err, rows) {
        if (err) return console.log(err);
        for (var i = 0; i < rows.length; i++) {
            var row = rows[i];
            var sql2 = "UPDATE TempMute SET Unmuted = 'True' WHERE Id = " + row.Id + ";";
            con.query(sql2, function (err, result) {
                if (err) return console.log(err);
                var Id = row.Name
                var unmute = client.fetchUser(Id)
                unmute.removeRole(role).catch(console.error);
            });
        };
    });
};

错误:

/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/Parser.js:80
    throw err; // Rethrow non-MySQL errors
    ^
TypeError: unmute.removeRole is not a function
at Query._callback (/home/pi/Documents/PinkBot/commands/rm.js:22:24)
at Query.Sequence.end (/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/sequences/Sequence.js:88:24)
at Query._handleFinalResultPacket (/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/sequences/Query.js:139:8)
at Query.OkPacket (/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/sequences/Query.js:72:10)
at Protocol._parsePacket (/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/Protocol.js:279:23)
at Parser.write (/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/Parser.js:76:12)
at Protocol.write (/home/pi/Documents/PinkBot/node_modules/mysql/lib/protocol/Protocol.js:39:16)
at Socket.<anonymous> (/home/pi/Documents/PinkBot/node_modules/mysql/lib/Connection.js:103:28)
at Socket.emit (events.js:160:13)
at addChunk (_stream_readable.js:269:12)

client.fetchUser(id)返回一个承诺,从这个承诺中你会得到一个用户。您无法从用户中删除角色。你需要一个公会成员才能删除角色。
而不是: var unmute = client.fetchUser(Id) ,你需要这样的东西:

message.guild.fetchMember(Id).then(guildMember => {
    guildMember.removeRole(role).catch(console.error);
})

最新更新