如何创建 discord.js 锁定命令

How to create a discord.js lock command

我正在尝试为我的 discord.js 机器人创建锁定和解锁命令。我怎样才能做到这一点?

我想做到这一点,所以当我 >lock 时,它会将已验证的权限从 SEND_MESSAGES 移走。

然后如果我 >unlock,它会解锁频道。

在您的函数中,您只需调用以下几行即可删除权限,

const role = guild.roles.find("name", "Verified ");

role.permissions.remove('SEND_MESSAGES')

要还给他们,只需将以下几行放在命令下:

const role = guild.roles.find("name", "Verified ");

role.permissions.add('SEND_MESSAGES')

如果您想了解为什么这会起作用,这里有一些相关的文档链接:role, permissions, and the permissions flags

编辑: 要更改特定频道的权限,只需执行以下操作:

const role = guild.roles.find("name", "Verified ");

message.channel.overwritePermissions(role,{ 'SEND_MESSAGES': false })

要将它们还给您,您可以执行以下操作

const role = guild.roles.find("name", "Verified ");

message.channel.overwritePermissions(role,{ 'SEND_MESSAGES': true})

我猜你需要这个

const role2 = message.guild.roles.cache.find(role => role.name === 'Member') 
message.channel.updateOverwrite(role2,{ 'SEND_MESSAGES': false}) 
message.channel.send("Successfully locked **${message.channel.name}**")

这是为了解锁

const role = message.guild.roles.cache.find(role => role.name === 'Member') 
message.channel.updateOverwrite(role,{ 'SEND_MESSAGES': true})   
message.channel.send("Successfully unlocked **${message.channel.name}**")