hde-discord
Version:
HDE is a discord embed generator simplifier for Discord.JS Bots
64 lines (62 loc) • 3.1 kB
JavaScript
const Discord = require('discord.js')
const fs = require('fs')
const user = {
d: "user",
f: "config.json"
}
module.exports = {
setup: ({title, description, color, thumbnail, image, timestamp, author, footer} = {}) => {
checkConfig()
let userSettings = JSON.parse(fs.readFileSync(`${__dirname}\\${user.d}\\${user.f}`, "utf8"));
userSettings = {
title: title ? title : null,
description: description ? description : null,
color: color ? color : null,
thumbnail: thumbnail ? thumbnail : null,
image: image ? image : null,
timestamp: timestamp ? timestamp : null,
author: {
title: author ? author.title ? author.title : null : null,
url: author ? author.url ? author.url : null : null
},
footer: {
title: footer ? footer.title ? footer.title : null : null,
url: footer ? footer.url ? footer.url : null : null
}
}
fs.writeFile(`${__dirname}\\${user.d}\\${user.f}`, JSON.stringify(userSettings, null, 2), (x) => {})
},
embed: () => {
checkConfig()
const userSettings = require(`${__dirname}\\${user.d}\\${user.f}`)
let sendingEmbed = new Discord.MessageEmbed()
if(userSettings.title) sendingEmbed.setTitle(userSettings.title)
if(userSettings.description) sendingEmbed.setDescription(userSettings.description)
if(userSettings.thumbnail) sendingEmbed.setThumbnail(userSettings.thumbnail)
if(userSettings.timestamp === true) sendingEmbed.setTimestamp()
if(userSettings.author.title && userSettings.author.url) {
sendingEmbed.setAuthor(userSettings.author.title, userSettings.author.url)
} else if(userSettings.author.title) {
sendingEmbed.setAuthor(userSettings.author.title)
} else if(userSettings.author.url) {
sendingEmbed.setAuthor(userSettings.author.url)
}
if(userSettings.footer.title && userSettings.footer.url) {
sendingEmbed.setFooter(userSettings.footer.title, userSettings.footer.url)
} else if(userSettings.footer.title) {
sendingEmbed.setFooter(userSettings.footer.title)
} else if(userSettings.footer.url) {
sendingEmbed.setFooter(userSettings.footer.url)
}
return sendingEmbed
},
create: async () => {
if(!fs.existsSync(`${__dirname}\\${user.d}`)) fs.mkdirSync(`${__dirname}\\${user.d}`)
if(!fs.existsSync(`${__dirname}\\${user.d}\\${user.f}`)) fs.writeFileSync(`${__dirname}\\${user.d}\\${user.f}`)
console.log("[HDE] Data file path has been checked")
}
}
function checkConfig() {
if(!fs.existsSync(`${__dirname}\\${user.d}`)) throw "[HDE] 'user' folder does not exist, please use <hde-discord>.create()"
if(!fs.existsSync(`${__dirname}\\${user.d}\\${user.f}`)) throw "[HDE] 'config' file does not exist, please use <hde-discord>.create()"
}