Discord.js 和 discord.js-commando 防止命令在特定通道中运行
Posted
技术标签:
【中文标题】Discord.js 和 discord.js-commando 防止命令在特定通道中运行【英文标题】:Discord.js with discord.js-commando Prevent command from running in specific channel 【发布时间】: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 秒后自动取消。
我的问题是弄清楚是否有办法让命令处理程序和/或使用突击队框架的特定通道中的命令完全没有反应。
【问题讨论】:
【参考方案1】:所以我找到了答案。
在您的主 .js 文件中设置机器人时,您可以执行以下操作:
client.dispatcher.addInhibitor((message: CommandMessage) => message.channel.id === process.env.NUMBER_CHANNEL_ID);
如果箭头函数的结果返回 true,这将告诉调度程序阻止命令。
【讨论】:
以上是关于Discord.js 和 discord.js-commando 防止命令在特定通道中运行的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js 错误:它正在删除整个数组。 Quick.db 和 discord.js
错误:找不到带有 discord-buttons、discord.js、TypeScrpit 和 webpack 的模块“./undefined”