【发布时间】:2020-05-26 19:07:22
【问题描述】:
我正在尝试为我的 discord.js 机器人创建锁定和解锁命令。我怎么能做到这一点?
我想这样做,所以当我这样做时 >lock 会将权限从 Verified 转移到 SEND_MESSAGES。
然后,如果我 >unlock,它会解锁频道。
【问题讨论】:
标签: javascript locking discord discord.js unlock
我正在尝试为我的 discord.js 机器人创建锁定和解锁命令。我怎么能做到这一点?
我想这样做,所以当我这样做时 >lock 会将权限从 Verified 转移到 SEND_MESSAGES。
然后,如果我 >unlock,它会解锁频道。
【问题讨论】:
标签: javascript locking discord discord.js 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 和 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})
【讨论】:
role.permissions.remove('SEND_MESSAGES')改成message.channel.overwritePermissions(role,{ 'SEND_MESSAGES': false }),我现在给你更新我之前的答案。
我猜你需要这个
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}**")
【讨论】: