为 Discord.js bot 设置角色颜色

时间:2021-01-12 11:32:39

标签: discord discord.js

我正在尝试使用 Client.on("ready") 使我的机器人的角色为当前服务器的粉红色,但是每当我使用当前的控制台返回运行机器人时:

(node:6504) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'cache' of undefined

这是我目前使用的代码。我知道我需要在每个公会上使用 for 循环,但我不确定我会怎么做,我可以使用 for 或仅使用 .forEach 但是我找不到正确的方法来做到这一点。

const role = client.guild.roles.cache.get('Aiz Basic+');  
role.edit({ name: 'Aiz Basic+', color: '#FFC0CB' });

在此先感谢任何回复并帮助我传达信息的人。

2 个答案:

答案 0 :(得分:2)

Client#Guild 不存在。只有1个}}。您可以使用以下命令遍历所有公会的缓存来解决此问题:

Client#Guilds

在循环内部,您可以在修复 .get 函数后使用您的代码,因为 get 函数需要角色 ID 而不是角色名称。您可以通过以下方式通过名称找到角色:

client.guilds.cache.forEach((g) => {  })

确保将 const role = <Guild>.roles.cache.find((r) => r.name === /* The role name */); 替换为公会变量。

答案 1 :(得分:1)

如果 client.guild 未定义,请尝试此代码,也可能是因为您使用的是 bot 而不是 client

let role = message.guild.roles.cache.find(role => role.name === "Aiz Basic+");