我创建了一个temporary mute
命令,并且我的机器人检查公会是否具有名为Muted
的角色。因此,如果用户在不存在Muted
角色的行会中执行了该命令,它将为其创建一个命令。但是,我遇到了一个问题,即该漫游器创建了一个名为new role
而不是Muted
image1的角色。并且,如果用户在行会中第二次执行该命令,则会创建一个new role
角色的副本;因为找不到image2的Muted
角色。
let muteRole = message.guild.roles.cache.find(m => m.name === "Muted");
if (!muteRole) {
try {
muteRole = await message.guild.roles.create({
name: "Muted",
color: "#000000",
permissions:[]
});
message.guild.channels.cache.forEach(async (channel, id) => {
await channel.createOverwrite(muteRole, {
SEND_MESSAGES: false,
MANAGE_MESSAGES: false,
READ_MESSAGES: false,
ADD_REACTIONS: false
});
});
} catch(e) {
console.log(e.stack);
}
}
答案 0 :(得分:1)
根据the discord.js docs,您必须将name
,color
和permission
放在data
属性内。这是该方法的示例:
// Create a new role with data and a reason
guild.roles.create({
data: {
name: 'Super Cool People',
color: 'BLUE',
},
reason: 'we needed a role for Super Cool People',
})