繁体   English   中英

每次我的 JavaScript 文件从其中提取代码时,如何使变量“刷新”自身?

[英]How can I make a variable “refresh” itself every time my JavaScript file has code pulled from it?

所以我正在研究Discord 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 function 中移动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]);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM