我怎样才能使一个变量";刷新";每次我的JavaScript文件从中提取代码时,它本身



所以我正在开发Discord Bot。我试图允许机器人发送一条消息,以响应包含预定义数组中某个字符串的命令。在我的例子中,机器人从数组中随机选择一首说唱歌词并说出

问题:;随机化器";决定使用数组中哪个字符串的代码,只有在我激活bot后才会运行。这是代码:

var barnumber = Math.floor(Math.random() * dababy_bar.length);
module.exports = {
name: 'flamebar', 
description: "spits out a flame bar",
execute(message, args){
message.channel.send(dababy_bar[barnumber]);
}

我已经尝试过在module.exports之后将randomizer粘贴在代码末尾,但结果没有任何变化。然后我试着循环";随机化器";永远,但这并没有起作用,因为每当我启动机器人时,控制台都会冻结。

那么,我如何让我的机器人在每次通话中运行randomizer呢?

如果在execute函数中移动barnumber的声明和赋值,则每次调用execute:时都会设置它

module.exports = {
name: 'flamebar', 
description: "spits out a flame bar",
execute(message, args){
var barnumber = Math.floor(Math.random() * dababy_bar.length);
message.channel.send(dababy_bar[barnumber]);
}

barnumber变量放置在module.exprts之外将不起作用,因为只有当启动机器人程序时,才会创建该变量,并且在再次启动之前不会发生更改。

为了解决你的问题,你只需要移动声明&分配给execute:

module.exports = {
name: 'flamebar', 
description: "spits out a flame bar",
execute(message, args){
var barnumber = Math.floor(Math.random() * dababy_bar.length);
message.channel.send(dababy_bar[barnumber]);
}

相关内容

最新更新