![](/img/trans.png)
[英]replacement for guild.roles.find() in newer versions of discord.js
[英]Discord.js guild.roles.cache.find returning undefined
我試圖為代碼分配一個不和諧的機器人,以便在某人進入服務器時為其分配角色。 這是我現在的代碼:
client.on('guildMemberAdd', (member) => {
let role = guild.roles.cache.find(r => r.name === "Admin");
console.log(role);
if(!role){
console.log("Role doesen't exist.");
}
member.roles.add(role);
});
我嘗試運行它,並執行了這一行: console.log("Role doesen't exist.");
. 然后我繼續打印角色變量,它是未定義的。 有什么問題?
緩存中可能無法獲取所有內容,因此您需要獲取它,唯一的問題是您需要通過 ID 獲取。
let role = guild.roles.cache.find(r => r.name === 'ADMIN') || await guild.roles.fetch('ROLEID');
來源: https : //discord.js.org/#/docs/main/stable/class/RoleManager?scrollTo=fetch
這是一個相當棘手的解決方案,但您可以在就緒事件中獲取所有角色。
client.guilds.cache.forEach(g => {
g.roles.fetch();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.