discord.js with discord.js-commando阻止命令在特定通道中运行

时间:2018-05-04 15:27:43

标签: javascript node.js typescript discord discord.js

所以我试图阻止用户在特定频道中输入命令,并且在该频道上没有任何反馈。

首先,我尝试在run方法的开头简单地返回:

public async run(message: CommandMessage): Promise<Message | Message[]> {

    if (message.channel.id === process.env.NUMBER_CHANNEL_ID) return;
    [...]
}

这适用于但不适用于不参与参数的命令。我的问题是我有接受参数的命令,如果我为该命令编写相同的行,命令就不会运行(很棒!)。但是,如果用户没有输入任何参数或放入错误的参数,僵尸程序将提示用户输入正确的值。

消息:

  

回复取消取消命令。该命令将在30秒后自动取消。

我的问题是要弄清楚是否有办法使用命令框架对命令处理程序和/或特定通道中的命令完全没有反应。

1 个答案:

答案 0 :(得分:0)

所以我找到了答案。

在主.js文件中设置机器人时,您可以执行以下操作:

client.dispatcher.addInhibitor((message: CommandMessage) => message.channel.id === process.env.NUMBER_CHANNEL_ID);

如果arrow函数的结果返回true,这将告诉调度程序阻止命令。