Discord.js-commando:如果不在特定通道中,则停止所有命令

时间:2018-02-05 06:49:34

标签: node.js discord.js

为了测试我试图停止所有命令,除非在某个频道中。我知道如何为每个命令专门执行此操作,但我试图在主机器人文件中捕获它,并返回一条消息。到目前为止,我尝试了两种方法:

bot.on('command', async m => { (Also tried 'commandmessage')
  console.log('COMMAND');
  if (m.channel != 'bot-testing') {
    return m.channel.send('You can\'t use commands here!');
  }
});

根本不起作用。然后我尝试了这个:

bot.on('message', async m => {
    m.isDM = (m.guild ? false : true);
    if (m.content[0] != bot.commandPrefix) {
      return;
    } else {
      if (m.channel != 'bot-testing') {
        m.channel.send('You can\'t use commands here!');
      }
    }
});

哪种作品,但不会停止命令。

1 个答案:

答案 0 :(得分:1)

看起来你非常接近 - 你只需要在第二个m.channel.name中查看if-statement(使用方法#2):

bot.on('message', async m => {
    // ...
    if (m.content[0] != bot.commandPrefix) {
        return;
    } else {
        // [NEW: add .name prop here]
        if (m.channel.name != 'bot-testing') {
            m.channel.send('You can\'t use commands here!');
        }
    }
});