discord.js 某些频道嵌入

时间:2021-04-20 19:22:22

标签: discord.js

我想知道如何将图像放置在某个通道中,它会变成嵌入。

我当前的代码是这样的:

const Discord = require("discord.js");
const { MessageEmbed } = require("discord.js");
const { Client, RichEmbed } = require("discord.js");

module.exports = {
    name: 'icon',
    run: async(client, message, args) => {
        if(message.channel.id === '708914703338045491'){
        message.delete();
        let usermsg = args.slice(0).join(" ");

        const embed = new MessageEmbed()
        .setColor("#2f3136")
        .setImage(usermsg);

        message.delete().catch();
        message.channel.send(embed)
    }
  }
}

1 个答案:

答案 0 :(得分:1)

如果您将图片上传到消息中,它将保存到 message.attachments 中,因此您可以使用此集合进行检查。 Discord 附件可以是文件或视频,因此您需要检查文件格式,简单的方法是检查指向其中内容的链接的末尾是否为有效格式,因此我创建了 2 个函数。

  • 第一:查找附件
  • 第二:用于验证 url 以内容 url 中的图像格式
const { MessageEmbed } = require("discord.js");
const avalibleFormats = ['png', 'gif', 'jpeg', 'jpg']
module.exports = {
    name: 'icon',
    run: async(client, message, args) => {
        if (message.channel.id !== '708914703338045491') {
            return;
        }

        let image = getImage(message)
        if (!image) {
            return;
        }

        let embed = new MessageEmbed();
        embed.setImage(image.url)
        message.channel.send(embed)
    }
}

const getImage = (message) => message.attachments.find(attachment => checkFormat(attachment.url))
const checkFormat = (url) => avalibleFormats.some(format => url.endsWith(format))