#javascript #node.js #discord #discord.js
Вопрос:
Я создаю addemoji
команду (для пользовательских смайликов), и у меня возникли проблемы с определением/поиском идентификатора смайлика, который отправляет пользователь, а затем добавляю его на сервер. Я сам написал кое-какой код, и до сих пор мне не везло.
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.");
}
},
};
Ответ №1:
Пользовательские смайлики имеют форму <: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)
Комментарии:
1. Это работает и не работает одновременно, я запустил его, и теперь там написано «изображение: Недопустимые данные изображения» и «имя: Это поле обязательно». Я пытался закодировать его по-разному, чтобы мне не пришлось просить о помощи, но сейчас я просто застрял. Я считаю, что это потому, что матч тянет имя, идентификатор, и если это анимированный, я добавил
message.reply(
<${id}> добавлено!)
и бот говорит «<:weSmart:,,weSmart,421097576738193409>» и, очевидно, это неверный URL, но, зная это, я все еще не знаю, как это исправить.2. @neon Извини за это. Я исправил свой код.