Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Discord.js和Discord.js-commando阻止命令在特定通道中运行_Javascript_Node.js_Typescript_Discord_Discord.js - Fatal编程技术网

Javascript Discord.js和Discord.js-commando阻止命令在特定通道中运行

Javascript Discord.js和Discord.js-commando阻止命令在特定通道中运行,javascript,node.js,typescript,discord,discord.js,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; [...] } 公共异步运行(消息:CommandMessage):承诺{

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

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

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

    if (message.channel.id === process.env.NUMBER_CHANNEL_ID) return;
    [...]
}
公共异步运行(消息:CommandMessage):承诺{ if(message.channel.id==process.env.NUMBER\u channel\u id)返回; [...] } 这是可行的,但仅适用于不接受参数的命令。我的问题是,我有一些接受参数的命令,如果我为该命令写同一行,该命令就不会正常运行(太好了!)。但是,如果用户没有输入任何参数或输入错误的参数,bot将提示用户输入正确的值

信息:

使用“取消”进行响应以取消命令。该命令将在30秒内自动取消


我的问题是,是否有一种方法可以让命令处理程序和/或使用突击队框架的特定通道中的命令完全没有反应。

因此我找到了答案

在主.js文件中设置bot时,可以执行以下操作:

client.dispatcher.addInhibitor((message: CommandMessage) => message.channel.id === process.env.NUMBER_CHANNEL_ID);
如果arrow函数的结果返回true,这将告诉调度程序阻止该命令