Javascript Discord.js和Discord.js-commando阻止命令在特定通道中运行
因此,我试图阻止用户在特定频道中输入命令,并且在该频道上没有任何反馈 首先,我尝试在run方法开始时简单地返回: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):承诺{
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,这将告诉调度程序阻止该命令