所以我试图阻止用户在特定频道中输入命令,并且在该频道上没有任何反馈。
首先,我尝试在run方法的开头简单地返回:
public async run(message: CommandMessage): Promise<Message | Message[]> {
if (message.channel.id === process.env.NUMBER_CHANNEL_ID) return;
[...]
}
这适用于但不适用于不参与参数的命令。我的问题是我有接受参数的命令,如果我为该命令编写相同的行,命令就不会运行(很棒!)。但是,如果用户没有输入任何参数或放入错误的参数,僵尸程序将提示用户输入正确的值。
消息:
回复取消取消命令。该命令将在30秒后自动取消。
我的问题是要弄清楚是否有办法使用命令框架对命令处理程序和/或特定通道中的命令完全没有反应。
答案 0 :(得分:0)
所以我找到了答案。
在主.js文件中设置机器人时,您可以执行以下操作:
client.dispatcher.addInhibitor((message: CommandMessage) => message.channel.id === process.env.NUMBER_CHANNEL_ID);
如果arrow函数的结果返回true,这将告诉调度程序阻止命令。