如何让命令不断运行?

Posted

技术标签:

【中文标题】如何让命令不断运行?【英文标题】:How can I have a command constantly run? 【发布时间】:2021-06-20 13:27:00 【问题描述】:

我正在使用 Discord.js,我希望我的机器人保持激活命令直到被告知停止

client2.on('message', message => 
    if (message.content === 'grimm!record') 
        message.channel.send('Recording has Started in the Command Prompt')
        console.log(message.content)
        console.log('Grimm 2 - Recording has Started')
    )

一旦在聊天中发送“grimm!record”,我希望服务器中发送的每条消息都记录到命令提示符中,但它似乎不起作用,我也想知道是否有是一种方式,如果我发送“grimm!record-stop”,那么所有消息都将停止发送到命令提示符

【问题讨论】:

为什么它不起作用?你试过调试吗? 我没有尝试调试它,但我看看答案中的代码是否有效 你可以登录 message.content 看看你首先得到了什么 【参考方案1】:

您可以使用 discord.js 收集器中调用的方法来做到这一点

这里是full guide,如果你想查看的话

但无论如何,你想做的就是像这样开始收集器

// `m` is a message object that will be passed through the filter function
const filter = m => true; //A filter that accepts any type of message just returns true
const collector = message.channel.createMessageCollector(filter); //starts the collector
collector.on('collect', collectedMessage=>
  console.log(collectedMessage.content); //console logging collected message as you wanted every message getting sent to be sent to console else use end event with map() function
  if(collecteddMessage.content === "grimm!record-stop") //checking message content
    collector.stop(); //ends collector
  
);

【讨论】:

非常感谢!它帮了我很多忙!

以上是关于如何让命令不断运行?的主要内容,如果未能解决你的问题,请参考以下文章

shell脚本中调用JAVA 程序,如何让JAVA运行结束后,再执行下面命令(只有java运行完,下面对数据的处理才有用)

如何避免Docker容器启动脚本运行后自动退出

C#应用程序如何不弹出cmd命令行窗口执行

如何让批处理命令后运行后自动关闭

如何利用批处理命令让两个WINDOWS程序按照顺序运行?

作为命令行工具运行时,如何让 NSURLSession 处理 completionHandler