首页 > 解决方案 > 锁定命令 discord.js v12

问题描述

我正在尝试发出锁定命令,这是我的代码:

module.exports = {
  name: "lock",
  description: "Lock",
  async run(client, message, args) {
    if (!message.member.hasPermission("KICK_MEMBERS")) return message.channel.send('You can\'t use that!')
    function lock(message) {
      let channel = message.channel;
      let roles = message.guild.roles;
      let testRole = roles.find('Verified');
      channel.overwritePermissions(
        testRole, {
          'SEND_MESSAGES': false
        },
        'Competitive has Ended'
      )
      lock(message).catch(error => console.log(error));
    }
    message.channel.send('Channel Locked')
  }
}

但是,在运行此代码时,我没有得到机器人的响应,它也没有执行该功能。我也没有收到任何错误。玩具能帮帮我吗?提前致谢!

标签: javascriptnode.jsdiscorddiscord.js

解决方案


你定义了一个函数lock,但是你在错误的地方调用它。您尝试在函数本身内调用 lock 函数,但这是行不通的。如果您将代码更改为以下内容,它应该可以工作:

if (!message.member.hasPermission("KICK_MEMBERS")) return message.channel.send('You can\'t use that!')
function lock(message) {
  let channel = message.channel;
  let roles = message.guild.roles;
  let testRole = roles.find('Verified');
  channel.overwritePermissions(
    testRole, {
      'SEND_MESSAGES': false
    },
    'Competitive has Ended'
  )
}
lock(message).catch(error => console.log(error));
message.channel.send('Channel Locked')

推荐阅读