随机消息怎么做?

How to do random message?

我试过这个代码

const botId = "96310595965*****48";

client.on("message", async message => {
    if (message.author.bot) return false;
    if (message.mentions.has(botId)) { 
        message.reply(randomMessage);
    };
});

setInterval(async function(){
const messages = [ "Yes" , "No" , "Idk" ]; 
const randomMessage = messages [Math.floor(Math.random() * messages.length)];
console.log(randomMessage)
}, 700)

但是当我 ping 机器人时它崩溃了。 这个在控制台中显示:

message.reply(randomMessage);
              ^

有人可以帮助我吗?抱歉英语不好。

试试这个,但错误的原因是你在定义之前调用了 const randomMessage(randomMessage 应该在需要它的地方,但不需要它的函数。)

const botId = "96310595965*****48";

client.on("message", async message => {
    const messages = [ "Yes" , "No" , "Idk" ]; 
    const randomMessage = messages[Math.floor(Math.random() * messages.length)];
    
    if (message.author.bot) return;
    if (message.mentions.has(botId)) { 
        message.reply(randomMessage);
    };
});

// Code below not needed
// setInterval(async function(){
// const messages = [ "Yes" , "No" , "Idk" ]; 
// const randomMessage = messages [Math.floor(Math.random() * messages.length)];
// console.log(randomMessage)
// }, 700)

旁注,如果使用 Discord v13 而不是 v12,请使用下面的代码而不是上面的代码

const botId = "96310595965*****48";

client.on("messageCreate", async message => {
    const messages = [ "Yes" , "No" , "Idk" ]; 
    const randomMessage = messages[Math.floor(Math.random() * messages.length)];
    
    if (message.author.bot) return;
    if (message.mentions.has(botId)) { 
        message.reply(randomMessage);
    };
});

// Code below not needed
// setInterval(async function(){
// const messages = [ "Yes" , "No" , "Idk" ]; 
// const randomMessage = messages [Math.floor(Math.random() * messages.length)];
// console.log(randomMessage)
// }, 700)