如何生成变量;刷新“;每次我的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。请编辑您的问题,使其更简短,并删除其他信息不需要。多给别人一些机会来回答你的问题。