Discord bot:嵌入消息中的随机图像

Discord bot : random images in an embed message

我开始编写一个 discord 机器人程序,我执行了第一个命令,即拥抱另一个成员。答案是连同动漫拥抱 gif。但是现在,我想做的是,不是只设置一个 gif,而是放一些随机选择的其他 gif。但是,我不知道如何进行随机gif。

const Discord = require("discord.js");
const { UserAgent } = require("discord.js/src/util/Constants");
const ytdl = require("ytdl-core");
const Client = new Discord.Client({
    intents : [
        Discord.Intents.FLAGS.GUILDS,
        Discord.Intents.FLAGS.GUILD_MESSAGES
    ]
});

const prefix ="<";

Client.on("ready", () => {
    console.log("bot opérationnel")

});

Client.on("message", message => {
    if (message.author.bot) return;
    if (message.content.startsWith (prefix + "hug")){
        let mention = message.mentions.members.first();

        if(mention === undefined){
            message.channel.send("u have to hug someone who actually exists");
        }
        else {
            const embed = new Discord.MessageEmbed()
            .setColor("DARK_RED")
            .setTitle(":hugging: " + mention.displayName + " recieved a hug from " + message.author.username + " !")
            .setImage("gif.gif");

        message.channel.send({embeds: [embed]});
        }
    }
});

Client.login("token");

所以这将从 gif 数组中选择一个随机元素,

const hugs = ['gif1.gif', 'gif2.gif'];

const randomHug = hugs[Math.floor(Math.random() * hugs.length)];

您当然会使用变量 randomHug 作为 gif。 .setImage(randomHug);

完美。

此外,如果您有大量的 gif 并且不想全部添加到列表中,您可以将它们另存为 gif{num}.gif 文件夹中,然后 select随机 gif 仅使用:


const fs = require('fs')
 
const randomHug = 'gif' + Math.floor((Math.random() * fs.readdirSync('gifs_directory').length) + 1) + '.gif'