javascript - 如何找到用户发送的自定义表情符号的 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.");
}
},
};
解决方案
自定义表情符号的形式为<: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)
推荐阅读
- arrays - 在 bash 中删除列表或数组的一些条目
- wordpress - 禁止您没有权限访问此服务器上的 /wp-login.php
- c# - Nunit 3 GUI 运行器
- azure-devops - 在 Azure DevOps 中是否可以编写一个 WIQL 来返回与多个工作项关联的提交?
- css - 如何在我的移动版本上将我的单个 insta-feed 行分成 2 列?
- python - 我定义了一个函数来从 Quora 获取任何特定问题的评论,但它只获取一些评论。我的代码有什么问题?
- java - 为什么我的代码会跳过if语句中的return语句,然后执行else语句体?
- linux-kernel - 在 ACPI 转储中,_Y06 上的基地址 0x0 的 Memory32Fixed() 代表什么?
- python - Google 图片 API 的 execute_transforms() 返回“出现错误”
- c# - c#线程到线程异常,在第二个表单上使用进度条时将数据加载到datagridview