discord-memoji
Version:
Memoji is a discord npm package that allows you to manage every emotes/emojis on your server in an easy and efficient way.
66 lines (61 loc) • 3.17 kB
JavaScript
require('colors');
module.exports = function extendDiscordGuild(Guild) {
class DiscordUtilsGuild extends Guild {
constructor(client, data) {
super(client, data);
/**
* Show emoji's URL
* @param {String} emoji - Emoji's Informations like "<:nyrok:862504620122570792>"
* @returns {String} - Returns Emoji's URL
*/
this.emojiShow = (emoji) => {
let emote;
if (typeof emoji !== "string" && typeof emoji !== "object" || !emoji) {
return console.log("[discord-memoji] The provided emoji isn't a valid emoji.".red);
}
if (typeof emoji === "object") {
emote = emoji[0]
} else if (typeof emoji === "string") {
emote = emoji
}
let emoji_ID = emote.split(":")[2].replace(">", "");
if (typeof emoji_ID !== "string" || emoji_ID.length !== 18 || !emoji_ID || Number.isNaN(Number(emoji_ID)) === false) return console.log("[discord-memoji] Invalid ID provided.".red);
else {
return "https://cdn.discordapp.com/emojis/" + emoji_ID + ".png";
}
}
/**
* Add an emoji to a Guild
* @param {String} name - The Name of the Emoji
* @param {String} image - The Emoji's Image
* @returns {Boolean} - Response True or False
*/
this.emojiAdd = (name, image) => {
return new Promise(async (resolve, reject) => {
if (typeof name !== "string" || !name) {
return reject(new Error("[discord-memoji] The provided name isn't a valid name.").red);
}
if (typeof image !== "string" || !image) {
return reject(new Error("[discord-memoji] The provided image isn't a valid image.").red);
}
resolve(this.emojis.create(image, name))
})
}
/**
* Remove an emoji to a Guild
* @param {String} emoji_ID - ID of the emoji to delete
* @returns {Boolean} - Response True or False
*/
this.emojiRemove = (emoji_ID) => {
return new Promise(async (resolve, reject) => {
this.members.fetch(client.user.id).then(member => {
if (!member.hasPermission("MANAGE_EMOJIS")) return reject(new Error("[discord-memoji] This guild member doesn't have the 'MANAGE_EMOJIS' permission.".red));
})
if (typeof emoji_ID !== "string" || emoji_ID.length !== 18 || !emoji_ID || Number.isNaN(Number(emoji_ID)) === false) return reject(new Error("[discord-memoji] The provided emoji's ID isn't a valid ID.").red);
resolve(client.emojis.cache.get(emoji_ID).delete());
})
}
}
}
return DiscordUtilsGuild;
}