簡體   English   中英

Discord.js guild.roles.cache.find 返回未定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM