TypeError:无法读取属性'角色'未定义的

时间:2018-03-09 11:04:03

标签: node.js bots discord.js

我希望机器人能够改变角色的颜色而且会出错

client.guilds.get(servers[index]).roles.find('name', config.roleName).setColor(rainbow[place])
                                 ^

TypeError: Cannot read property 'roles' of undefined
    at Timeout.changeColor [as _onTimeout] (C:\Users\1\Desktop\discord1\Role.js:29:38)
    at ontimeout (timers.js:466:11)
    at tryOnTimeout (timers.js:304:5)
    at Timer.listOnTimeout (timers.js:267:5)

这是我的代码:

function changeColor() {
  for (let index = 0; index < servers.length; ++index) {        
    client.guilds.get(servers[index]).roles.find('name', config.roleName).setColor(rainbow[place])
        .catch(console.error);      
    if(config.logging){
      console.log([ColorChanger] Changed color to ${rainbow[place]} in server: ${servers[index]});
    }
    if(place == (size - 1)){
      place = 0;
    }else{
      place++;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您收到此错误是因为client.guilds.get('<id>')要求将{gn}作为String传入确切的公会ID。请参阅.find方法下的红色评论:

  

Discord.js中使用的所有集合都使用其id属性进行映射,如果要按id查找,则应使用get方法。有关详细信息,请参阅MDN

因此,存储在server[index](代码的第3行)中的数据不得是有效的公会ID。