【问题标题】:Discord.js with discord.js-commando Prevent command from running in specific channelDiscord.js 和 discord.js-commando 防止命令在特定通道中运行
【发布时间】:2018-10-15 03:28:15
【问题描述】:

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

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

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

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

这有效,但仅适用于不带参数的命令。我的问题是我有接受参数的命令,如果我为该命令编写同一行,则该命令不会按应有的方式运行(太棒了!)。但是,如果用户没有输入任何参数或输入错误的参数,机器人将提示用户输入正确的值。

消息:

以取消响应以取消命令。该命令将在 30 秒后自动取消。

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

【问题讨论】:

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


    【解决方案1】:

    所以我找到了答案。

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

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

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

    【讨论】:

      猜你喜欢
      • 2018-07-14
      • 2020-12-31
      • 2021-08-03
      • 2021-08-10
      • 2021-02-25
      • 2019-08-21
      • 2018-07-11
      • 2021-01-13
      • 2020-04-13
      相关资源
      最近更新 更多