首页 > 解决方案 > 如何找到用户发送的自定义表情符号的 ID 并将其添加到服务器?

问题描述

我正在制作一个addemoji命令(用于自定义表情符号),但我无法尝试定义/查找用户发送的表情符号的 ID,然后将其添加到服务器。我自己写了一些代码,到目前为止我还没有运气。

module.exports = {
    name: "addemoji",
    description: "ping pong",
    execute(message, args) {
        const Discord = require("discord.js");
        const bot = new Discord.Client();
        const nothing = "<:nothing:823792064658407424>";
        const PREFIX = "ly?";

        if (message.content.startsWith(PREFIX + "addemoji")) {
            if (message.guild.me.permissions.has("MANAGE_EMOJIS")) {
                let emojiid = message.content.has.emojis(fetch.id);

                Guild.emojis.create(emojiid);
            }

            message.channel.send(`Emoji Added!`);
        } else {
            message.channel.send("This emoji already exists.");
        }
    },
};

标签: javascriptnode.jsdiscorddiscord.js

解决方案


自定义表情符号的形式为<:NAME:ID>(非动画)或<a:NAME:ID>(动画)。

要获取消息中第一个表情符号的详细信息,您可以使用以下命令:

const match = /<(a?):(.+):(\d+)>/u.exec(message.content);
if (!match) return message.reply('Please include a custom emoji in your message!')
// animated will be 'a' if it is animated or '' if it isn't
const [, animated, name, id] = match

然后,要获取表情符号图像的 URL,请使用以下格式https://cdn.discordapp.com/emojis/<emoji id>.<png or gif>

const url = `https://cdn.discordapp.com/emojis/${id}.${animated ? 'gif' : 'png'}`

有关这方面的更多信息,请参阅Discord 开发者文档

最后,您可以添加表情符号:

message.guild.emojis.create(url, name)

推荐阅读