【问题标题】:How do I stop an infinite loop command on a Discord Bot?如何停止 Discord Bot 上的无限循环命令?
【发布时间】:2020-11-02 03:19:03
【问题描述】:

假设我为我的机器人发出了一个无限命令,是否有任何方法可以随时停止循环?我希望能够从服务器停止它,而不是在实际代码中。

例子:

    if(msg.content ===  "Just Monika"){
    msg.channel.send('Just Monika')
    }
})

有什么方法可以让我在聊天中输入内容,然后停止命令?谢谢。

【问题讨论】:

  • 你能告诉我们循环“无限命令”的代码吗?可爱的 DDLC 参考。
  • 我输入的代码就是我使用的代码。除非你的意思是别的,否则我很难过。

标签: discord discord.js


【解决方案1】:

让你的机器人无限地响应自己可能不是一个好主意。但只是为了学习,完全可以随心所欲。

您可以使用不同的短语(我们称之为停止命令)将代码中的布尔变量设置为 true。然后,每当循环命令被用户消息或它自己的消息触发时,它应该检查这个告诉它停止的布尔值是否为真。如果是,它应该将其设置为 false 并且不发送该消息,否则它应该照常发送该消息。

// The following should be defined in the outmost scope
let loopPhrase = "Just Monika";
let stopPhrase = "Stop Spamming The API";

let triggerStop = false;

// The following should be a part of the message event
if (msg.content === loopPhrase) {
    if (!triggerStop) msg.channel.send(loopPhrase);
    else triggerStop = false;
} else if (msg.content === stopPhrase) triggerStop = true;

【讨论】:

  • 我会把这个放在哪里?我是编码新手,所以很容易卡住。
  • 在你的 js 文件的最外层范围内定义变量(例如在文件的顶部,可能在导入的下面,而不是在任何事件回调,如消息事件)。然后对于消息处理代码,将其放在消息事件的回调函数中。
猜你喜欢
  • 2019-03-05
  • 2017-11-16
  • 2012-01-10
  • 1970-01-01
  • 2019-02-10
  • 1970-01-01
  • 1970-01-01
  • 2021-11-14
  • 1970-01-01
相关资源
最近更新 更多