0

我已经为我的机器人编写代码一年多了,但我仍在努力在一个事件中处理多个机器人功能。例子:

// message event

//advert protection
const checkAdve = db.prepare('.......').get();
if (!checkAdve') {
   return;
}

// economy
const checkEco = db.prepare('.......').get();
if (!checkEco') {
   return;
}

这只是一个粗略的例子(我现在手头没有我的代码),但这里的问题本质上是如果checkAdve返回,那么经济功能永远不会像返回的广告一样运行。我知道我能做到

if (checkAdve) {
// do stuff
}

但对于我的一些功能来说,这并不总是可行的。

我仍在学习“discord.js”,如果有人能教我如何处理这样的事情,我将不胜感激。

4

2 回答 2

1

您可以编写多个包含您的功能的函数,然后在事件中调用它们。

例子:

const checkEco = (Pass, Parameters, Here, GuildID) => {
    const checkingEco = db.prepare('.......').get();
    if (!checkingEco ') {
        return;
    }
}

client.on('message', message => {
    checkEco(Passing, Parameters, Here, message.guild.id)
})
于 2020-05-05T16:07:23.080 回答
1

如果您在侦听器内部工作,它有自己的范围。在使用return时,您将忽略范围并停止进一步执行。您需要创建额外的范围来处理您的逻辑,例如使用函数。

function checkAdve(db) {
  const adveResult = db.prepare('.......').get();
  if(!adveResult) return false;
  return adveResult;
}

然后在您的消息事件侦听器中,您可以使用您的函数:

client.on('message', (message) => { 
  checkAdve(db);
}
于 2020-05-05T16:08:26.723 回答