Discord.js 达到某个级别时向用户添加角色的问题

Discord.js 达到某个级别时向用户添加角色的问题,discord.js,Discord.js,我试图通过在达到某个级别时自动将用户添加到角色中,向我的discord botxp系统添加一个功能 我一直在尝试各种我能想到的解决办法,但似乎都不管用 已尝试: addrankup.addRole(fullmember.catch)(console.error); 让addrankup.addRole(fullmember.catch)(console.error); addrankup.addRole(fullmember.id).catch(console.error); 当用户达到设定级

我试图通过在达到某个级别时自动将用户添加到角色中,向我的discord bot
xp系统添加一个功能

我一直在尝试各种我能想到的解决办法,但似乎都不管用

已尝试:

addrankup.addRole(fullmember.catch)(console.error);
让addrankup.addRole(fullmember.catch)(console.error);
addrankup.addRole(fullmember.id).catch(console.error);
当用户达到设定级别时,应自动获得排名:

让xpAdd=Math.floor(Math.random()*5)+10;
console.log(xpAdd);
如果(!xp[message.author.username]){
xp[message.author.username]={
xp:0,
级别:1
};
}
让curxp=xp[message.author.username].xp;
让curlvl=xp[message.author.username].level;
设nxtLvl=xp[message.author.username].level*200;
xp[message.author.username].xp=curxp+xpAdd;
if(nxtLvl{
删除消息(5000)
});
}
if(curlvl{
删除消息(5000)
});
}
fs.writeFile(“./xp.json”,json.stringify(xp),(err)=>{
if(err)console.log(err)
});
但这是控制台告诉我的:

(节点:8460)未处理的PromisejectionWarning:TypeError:无法读取未定义的属性“addRole”
在Client.bot.on(E:\\\\ deatkhillernor Discord Bots\deatkhillerbot\index.js:125:15)
在Client.emit(events.js:187:15)
在MessageCreateHandler.handle(E:\\\ deatkhillernor Discord Bots\deatkhillerbot\node\u modules\Discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
在WebSocketPacketManager.handle(E:\\\ deatchillernor Discord Bots\deatchillerbot\node\u modules\Discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
在WebSocketConnection.onPacket(E:\\\\ Deatchillernor Discord Bots\Deatchillerbot\node\u modules\Discord.js\src\client\websocket\WebSocketConnection.js:333:35)
在WebSocketConnection.onMessage(E:\\\\ DeathKillerNOR Discord Bots\DeathKillerBot\node\u modules\Discord.js\src\client\websocket\WebSocketConnection.js:296:17)
在WebSocket.onMessage(E:\\\ deatkhillernor Discord Bots\deatkhillerbot\node\u modules\ws\lib\event target.js:120:16)
在WebSocket.emit(events.js:182:13)
在Receiver.\u Receiver.onmessage(E:\\\\\\ Deatkhillernor Discord Bots\Deatkhillerbot\node\u modules\ws\lib\websocket.js:137:47)
在Receiver.dataMessage(E:\\\\ Deatkhillernor Discord Bots\Deatkhillerbot\node\u modules\ws\lib\Receiver.js:409:14)
(节点:8460)未处理的PromisejectionWarning:未处理的承诺拒绝。这个错误源于
通过在没有catch块的情况下抛出异步函数的内部,或者拒绝未使用.catch()处理的承诺。(拒绝id:1)
(节点:8460)[DEP0018]弃用警告:未处理的承诺拒绝已弃用。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。

该错误告诉您,
addrankup
未定义,这反过来意味着
消息。提及.members.first()不返回任何内容。我的猜测是,而不是

let addrankup = message.mentions.members.first();
你在找什么

let addrankup = message.member;

好的,我改变了:让addrankup=message.indications.members.first();to:let addrankup=message.author;但现在我得到了另一个控制台错误:UnhandledPromisejectionWarning:TypeError:addrankup.addRole不是function@DeathKillerNOR对不起,我犯了一个小错误,你可以检查更新的答案。您需要的不是
message.author
,而是
message.member
。再一次,为这个错误感到抱歉,它起作用了。谢谢,这两天来对我来说都是个难题。谢天谢地you@DeathKillerNOR没问题!如果这是解决方案,请将答案标记为已接受,以便其他用户将来更容易找到!