我已经为我的机器人编写代码已有一年多了,但我仍在努力在一个事件中处理多个机器人功能。示例:
// 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”,如果有人可以教我如何处理此类问题,我将不胜感激。
答案 0 :(得分:1)
您可以编写包含功能的多个功能,然后在事件中调用它们。
示例:
09:04:49.591 -> Sent: <1>
09:04:50.564 -> Sent: <2>
09:04:51.368 -> Recd: <0>
09:04:51.477 -> Recd: <1>
09:04:51.583 -> Recd: <2>
09:04:51.687 -> Sent: <3>
09:04:52.080 -> Recd: <3>
09:04:52.777 -> Sent: <4>
09:04:52.997 -> Recd: <4>
09:04:53.804 -> Sent: <5>
09:04:54.096 -> Recd: <5>
09:04:54.896 -> Sent: <6>
09:04:55.083 -> Recd: <6>
09:04:55.995 -> Sent: <7>
09:04:56.104 -> Recd: <7>
09:04:56.970 -> Sent: <8>
09:04:57.073 -> Recd: <8>
09:04:58.084 -> Recd: <9>
09:04:58.084 -> Sent: <9>
09:04:59.106 -> Recd: <10>
09:04:59.174 -> Sent: <10>
09:05:00.087 -> Recd: <11>
09:05:00.197 -> Sent: <11>
09:05:01.111 -> Recd: <12>
09:05:01.291 -> Sent: <12>
09:05:02.091 -> Recd: <13>
09:05:02.380 -> Sent: <13>
09:05:03.103 -> Recd: <14>
09:05:03.390 -> Sent: <14>
09:05:04.087 -> Recd: <15>
09:05:04.518 -> Sent: <15>
09:05:05.091 -> Recd: <16>
09:05:05.607 -> Sent: <16>
答案 1 :(得分:1)
如果您在侦听器内部工作,则它具有自己的作用域。使用from typing import List
class Knapsack:
def __init__(self, capacity: int, objects: int):
self.capacity = capacity
self.objects = objects
def newHillclimber(self) -> List[int]:
return [randint(0,1) for x in range(1,11)]
k = Knapsack(20, 10)
print(k.newHillclimber())
时,您将忽略范围并停止进一步执行。您需要创建其他作用域来处理逻辑,例如使用函数。
return
然后在您的消息事件侦听器中,您可以使用函数:
function checkAdve(db) {
const adveResult = db.prepare('.......').get();
if(!adveResult) return false;
return adveResult;
}