我正在尝试创建一个 discord.js 命令来创建一个名为 "MUTED" 的角色并覆盖所有通道权限以将 "Send message" 设置为 false
I am trying to make a discord.js command that creates a role named "MUTED" and overwrites all the channel permission to set "Send message" to false
我想让它创建角色,然后覆盖服务器中存在的每个通道中的权限。
module.exports = {
name: "createmuterole",
description: "creates a muted role for mute command to work",
guildOnly: true,
execute(message, args) {
if (!message.member.permissions.has("MANAGE_SERVER")) return message.channel.send(`You donot have the required permission to perform this command, ${message.author.username}`);
const Muted = message.guild.roles.cache.find((role) => role.name === "Muted");
message.guild.roles.create({
data: {
name: "Muted",
color: "#000000",
permissions: [],
},
});
message.guild.updateOverwrite(guild.channels.roles.Muted, { SEND_MESSAGES: false }); //this part doesn't seem to be working
message.channel.send("Role sucessfully Created");
},
};
此示例应提供使人静音的基本结构。请记住,以下示例通过 id 使人静音,因此您必须修改它以使其适用于角色。
guild.channels.cache.forEach(async (channel, id) => {
await channel.overwritePermissions([
{
id: member.id,
deny: ["SEND_MESSAGES"],
},
]);
});
这样做是覆盖每个频道的权限,并拒绝为该 id 发送消息的权限。
我想让它创建角色,然后覆盖服务器中存在的每个通道中的权限。
module.exports = {
name: "createmuterole",
description: "creates a muted role for mute command to work",
guildOnly: true,
execute(message, args) {
if (!message.member.permissions.has("MANAGE_SERVER")) return message.channel.send(`You donot have the required permission to perform this command, ${message.author.username}`);
const Muted = message.guild.roles.cache.find((role) => role.name === "Muted");
message.guild.roles.create({
data: {
name: "Muted",
color: "#000000",
permissions: [],
},
});
message.guild.updateOverwrite(guild.channels.roles.Muted, { SEND_MESSAGES: false }); //this part doesn't seem to be working
message.channel.send("Role sucessfully Created");
},
};
此示例应提供使人静音的基本结构。请记住,以下示例通过 id 使人静音,因此您必须修改它以使其适用于角色。
guild.channels.cache.forEach(async (channel, id) => {
await channel.overwritePermissions([
{
id: member.id,
deny: ["SEND_MESSAGES"],
},
]);
});
这样做是覆盖每个频道的权限,并拒绝为该 id 发送消息的权限。