| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | 
							- import config from "config";
 
- import Discord from "discord.js";
 
- import CoreClass from "../core";
 
- // const test = new CoreClass();
 
- // console.log(test.setModuleManager());
 
- class DiscordModule extends CoreClass {
 
- 	constructor() {
 
- 		super("discord");
 
- 		console.log(this.setModuleManager());
 
- 	}
 
- 	initialize() {
 
- 		return new Promise((resolve, reject) => {
 
- 			this.log("INFO", "Discord initialize");
 
- 			this.client = new Discord.Client();
 
- 			this.adminAlertChannelId = config.get("apis.discord").loggingChannel;
 
- 			this.client.on("ready", () => {
 
- 				this.log("INFO", `Logged in as ${this.client.user.tag}!`);
 
- 				if (this.getStatus() === "INITIALIZING") {
 
- 					resolve();
 
- 				} else if (this.getStatus() === "RECONNECTING") {
 
- 					this.log("INFO", `Discord client reconnected.`);
 
- 					this.setStatus("READY");
 
- 				}
 
- 			});
 
- 			this.client.on("disconnect", () => {
 
- 				this.log("INFO", `Discord client disconnected.`);
 
- 				if (this.getStatus() === "INITIALIZING") reject();
 
- 				else {
 
- 					this.setStatus("DISCONNECTED");
 
- 				}
 
- 			});
 
- 			this.client.on("reconnecting", () => {
 
- 				this.log("INFO", `Discord client reconnecting.`);
 
- 				this.setStatus("RECONNECTING");
 
- 			});
 
- 			this.client.on("error", err => {
 
- 				this.log("INFO", `Discord client encountered an error: ${err.message}.`);
 
- 			});
 
- 			this.client.login(config.get("apis.discord").token);
 
- 		});
 
- 	}
 
- 	SEND_ADMIN_ALERT_MESSAGE(payload) {
 
- 		return new Promise((resolve, reject) => {
 
- 			const channel = this.client.channels.find(channel => channel.id === this.adminAlertChannelId);
 
- 			if (channel !== null) {
 
- 				const richEmbed = new Discord.RichEmbed();
 
- 				richEmbed.setAuthor(
 
- 					"Musare Logger",
 
- 					`${config.get("domain")}/favicon-194x194.png`,
 
- 					config.get("domain")
 
- 				);
 
- 				richEmbed.setColor(payload.color);
 
- 				richEmbed.setDescription(payload.message);
 
- 				// richEmbed.setFooter("Footer", "https://musare.com/favicon-194x194.png");
 
- 				// richEmbed.setImage("https://musare.com/favicon-194x194.png");
 
- 				// richEmbed.setThumbnail("https://musare.com/favicon-194x194.png");
 
- 				richEmbed.setTimestamp(new Date());
 
- 				richEmbed.setTitle("MUSARE ALERT");
 
- 				richEmbed.setURL(config.get("domain"));
 
- 				richEmbed.addField("Type:", payload.type, true);
 
- 				richEmbed.addField("Critical:", payload.critical ? "True" : "False", true);
 
- 				payload.extraFields.forEach(extraField => {
 
- 					richEmbed.addField(extraField.name, extraField.value, extraField.inline);
 
- 				});
 
- 				channel
 
- 					.send(payload.message, { embed: richEmbed })
 
- 					.then(message =>
 
- 						resolve({
 
- 							status: "success",
 
- 							message: `Successfully sent admin alert message: ${message}`
 
- 						})
 
- 					)
 
- 					.catch(() => reject(new Error("Couldn't send admin alert message")));
 
- 			} else {
 
- 				reject(new Error("Channel was not found"));
 
- 			}
 
- 			// if (true) {
 
- 			//     resolve({});
 
- 			// } else {
 
- 			//     reject(new Error("Nothing changed."));
 
- 			// }
 
- 		});
 
- 	}
 
- }
 
- export default new DiscordModule();
 
 
  |