Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何生成变量;刷新“;每次我的JavaScript文件从中提取代码时,它都会自动运行吗?_Javascript_Discord.js - Fatal编程技术网

如何生成变量;刷新“;每次我的JavaScript文件从中提取代码时,它都会自动运行吗?

如何生成变量;刷新“;每次我的JavaScript文件从中提取代码时,它都会自动运行吗?,javascript,discord.js,Javascript,Discord.js,因此,我正在开发一个Discord Bot。我正在尝试允许bot发送消息,以响应包含预定义数组中的一个字符串的命令。在我的例子中,机器人从数组中随机选取一个说唱歌词并说出它 问题:确定使用数组中哪个字符串的“随机化器”代码只在我激活机器人后运行。 代码如下: var barnumber = Math.floor(Math.random() * dababy_bar.length); module.exports = { name: 'flamebar', descriptio

因此,我正在开发一个
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之后的代码末尾粘贴
随机化发生器
,但结果没有任何变化。然后,我尝试永远循环“随机发生器”,但这不起作用,因为每当我启动机器人时,控制台都会冻结


那么,如何让我的机器人在每次调用时运行
随机数发生器?

如果将
barnumber
的声明和赋值移动到
execute
函数中,它将在每次调用
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]);
}
module.exports={
名称:'火焰棒',
描述:“吐出火焰条”,
执行(消息,参数){
var barnumber=Math.floor(Math.random()*dababy_bar.length);
message.channel.send(dababy_bar[barnumber]);
}

barnumber
变量放置在
模块外部。exprt
将不起作用,因为只有在启动bot时才会创建,并且在再次启动之前不会更改

要解决您的问题,您只需将声明和赋值移动到
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
的声明和赋值移动到
execute
函数中?然后每次调用
execute
,它都会被重新实例化和赋值?嗨,Chefanthony,欢迎使用Stackoverflow。请编辑您的问题,使其更简短,并删除其他信息不需要。多给别人一些机会来回答你的问题。