我正在尝试在嵌入中随机生成gif,但它会生成图像,而不嵌入

就像标题中所说的那样,我正在尝试使机器人自动发送gif并发送gif,但不在嵌入中。

I'm getting this error: The resource must be a string, Buffer or a valid file stream.

有什么帮助吗?我尝试自己编写代码,因为任何地方都没有教程,而且我陷入了困境。

if(!message.channel.nsfw){ (message.channel.send) 
            message.channel.send("Please use an NSFW channel for this command."); return;


        } else {    

            if (message.content.startsWith (PREFIX + "stoys")) {
                number = 42;
                imageNumber = Math.floor (Math.random() * (number - 1 + 1)) + 1;
                message.channel.send ( {files: ["./stoys/" + imageNumber + ".gif"]} )

                let files = ["./stoys/" + imageNumber + ".gif"]

                const embed = new Discord.MessageEmbed()
                .attachFiles({attachment: files}).setImage(files)
                .setColor(0x7732a8)
                .setFooter("🔴BOT IS IN EARLY-ALPHA TESTING🔴 (Neon#0999)")
                message.channel.send(embed);


            }
        }
    }
}
评论
  • et_qui
    et_qui 回复

    由于文件是数组,因此setImage不采用数组,而是采用字符串。您将不得不选择数组的元素,或者只是通过删除数组周围的[]将其变成字符串。

    因此,您的最终结果可能是这些2:

    let files = ["./stoys/" + imageNumber + ".gif"]
    
    const embed = new Discord.MessageEmbed()
    .setImage(files[0])
    
    let files = "./stoys/" + imageNumber + ".gif"
    
    const embed = new Discord.MessageEmbed()
    .setImage(files)
    

    希望我能帮上忙!