【问题标题】:Random Message Reply Discord.js 2020随机消息回复 Discord.js 2020
【发布时间】:2021-01-13 18:44:44
【问题描述】:

我一直在尝试随机回复,但我发现的其他答案和教程并不完全有效。 大多数教程都有

const messages = [
    "seriously?! You thought I would reply", 
    "hm, yeh thats a pretty random question - Don't ya think?", 
    "Ok I'm actually running out of options now", 
    "Please stop asking me", 
    "Ok, im done!",
    "⛔"
];

const randomMessage = messages[Math.floor(Math.random() * messages.length)];

完成并发送消息

module.exports = {
    name: 'random',
    description: 'random?',

    execute(message, args){
        message.channel.send(randomMessage);
    }
}

但是,答案并不是真正随机的。当我从命令提示符/终端运行机器人时,机器人会得到一个随机答案,但当用户实际运行它时,它只会给出一个答案。

例如,答案可以是 1、2 或 3。当我运行机器人时,会随机选择一个答案;假设2。那么无论所有用户说什么,它都只会给出2的答案作为回复。如果我再次运行机器人并得到,比如说 3,那么回复将只有 3。

【问题讨论】:

  • 请提供更多上下文 - 错误消息是什么,或者什么也没发生?是否甚至调用了执行?在哪里调用执行?
  • 你试过了吗?你的代码在哪里?你得到什么错误?
  • 抱歉:/这是我的第一篇文章。正在发生的事情是答案并不是真正随机的。发生的情况是,当我从命令提示符/终端运行机器人时,机器人会得到一个随机答案,但是当用户实际运行它时,它只会给出一个答案。假设答案可以是 1、2 或 3。您运行机器人,然后随机选择一个答案;假设2。那么无论所有用户说什么,它只会给出2的答案作为回复。如果我再次运行机器人并得到,假设是 3。那么回复将只有 3。
  • randomMessage 常量应该在执行函数内部,否则在机器人启动时只会执行一次。
  • 嗨,欢迎来到 Stack Overflow!下次如果您需要添加有关您的问题的更多信息而不是评论,请edit您的帖子。

标签: javascript node.js discord.js


【解决方案1】:

正如 Gabriel Andrade 所说,您需要将 randomMessage 常量放在执行函数中。如果你不这样做,随机消息只会在你启动机器人时被评估一次。

module.exports = {
    name: 'random',
    description: 'random?',
    execute(message, args){
        // Now the randomMessage will be recalculated every time the command is run
        const randomMessage = messages[Math.floor(Math.random() * messages.length)];
        message.channel.send(randomMessage);
    }
}

【讨论】:

    猜你喜欢
    • 2020-08-17
    • 1970-01-01
    • 2021-06-26
    • 2018-06-17
    • 2022-01-24
    • 2021-01-22
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多