Javascript 如何让机器人在嵌入中发布随机gif?

Javascript 如何让机器人在嵌入中发布随机gif?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我看过了,但没有找到一个有效的答案。我正在从仅仅发布附件(没有链接)转向尝试将其嵌入到一个插件中。我使用discord.js.org来帮助我写出下面的代码,但是当我使用这个命令时,它只是一个完全空白的嵌入,只是一个小正方形。甚至不够大,gif无法加载。这个正方形很小。我不知道它为什么这样做 const Discord = require('discord.js'); const prefix = require('../config.json'); const angryGif = requir

我看过了,但没有找到一个有效的答案。我正在从仅仅发布附件(没有链接)转向尝试将其嵌入到一个插件中。我使用discord.js.org来帮助我写出下面的代码,但是当我使用这个命令时,它只是一个完全空白的嵌入,只是一个小正方形。甚至不够大,gif无法加载。这个正方形很小。我不知道它为什么这样做

const Discord = require('discord.js');
const prefix = require('../config.json');
const angryGif = require('../AngryWolves.json');
const colors = require('../colors.json');

module.exports = {
    name: "angry",
    description: "Posts a random GIF of an angry wolf.",
    usage: `${prefix}angry`,
    execute(message, args) {
        const gif = new Discord.MessageAttachment(angryGif[Math.floor(Math.random() * angryGif.length)]);
        
        const embed = new Discord.MessageEmbed()
        .setColor(colors.blue)
        .setImage(String[angryGif[gif]])

        message.channel.send(embed);
    },
};

取决于angryGifs是什么,它是一个字符串URL数组吗?物品清单

假设
angryGifs
是gifs的字符串URL列表:

第一:

const gif=new Discord.MessageAttachment(angryGif[Math.floor(Math.random()*angryGif.length)])
这将生成一个gif的消息附件,而gif不会在嵌入文件中

因此,我们应该:

const gif=angryGif[Math.floor(Math.random()*angryGif.length)];
第二个:
.setImage(字符串[angryGif[gif]])

这里,您将从字符串中获取一个属性,该属性的名称将为
angryGif[gif]
angryGif[gif]
将导致未定义,因此本质上:

String[未定义]
您的gif应该已经是字符串,因此您只需要:

embed.setImage(gif);
此外,如果您的链接指向某个imgur链接或giphy链接,则它们可能没有链接到实际的gif源

例如:

当您访问此页面时,它会显示gif以及一些其他文本,如“查看更多狗gif”,这表明它不是直接来源,要获取直接来源,您可以右键单击gif并按复制url

这将导致这种联系:


这是一个直接来源。

这是一个惊人的信息量。谢谢你澄清了一切。我已经尝试了很多次,以达到一个点,我没有收到错误,这肯定是解决办法。现在效果很好!