javascript - 我正在尝试创建一个 discord.js 命令,该命令创建一个名为“MUTED”的角色并覆盖所有频道权限以将“发送消息”设置为 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 发送消息的权限。
推荐阅读
- github - 我通过我的 SSH 密钥在 Github 上成功进行了身份验证,但是如何克隆/推送/拉取(私有)存储库?
- java - 如何在单个 Java 应用程序中使用两个 PostgreSQL DB 版本?
- android - 如何在改造(POST)中使用 JSONObject 作为@Body?
- reactjs - 在 Reactjs 引导程序中选择导航栏时无法在导航栏上应用样式?
- regex - 按名称引用外部组时如何捕获嵌套命名组?
- javascript - Nuxt 在无限加载时显示数据
- python - 如何查看用户在 ctypes 消息框中单击的内容
- perl - Perl printf 换行符
- angular - 在通知中发送数据时未收到通知 Firebase Cloud Messaging
- content-management-system - 可以使用表格的 CMS 看起来如何?