diff --git a/src/events/_handleEvents.ts b/src/events/_handleEvents.ts index 59c29b8..c83a2ec 100644 --- a/src/events/_handleEvents.ts +++ b/src/events/_handleEvents.ts @@ -26,7 +26,7 @@ import { onVoiceUpdate } from "./voice/onVoiceUpdate"; export const handleEvents = (bot: ExtendedClient) => { /* Client Events */ bot.on("ready", async () => await onReady(bot)); - bot.on("disconnect", () => onDisconnect(bot)); + bot.on("disconnect", () => onDisconnect()); /* Message Events */ bot.on("messageCreate", async (message) => { diff --git a/src/events/client/onDisconnect.ts b/src/events/client/onDisconnect.ts index b174a8a..6e067af 100644 --- a/src/events/client/onDisconnect.ts +++ b/src/events/client/onDisconnect.ts @@ -1,16 +1,8 @@ -import { EmbedBuilder } from "discord.js"; - -import { ExtendedClient } from "../../interfaces/ExtendedClient"; +import { logHandler } from "../../utils/logHandler"; /** * Sends a message to the debug hook when the bot disconnects. - * - * @param {ExtendedClient} bot The bot's Discord instance. */ -export const onDisconnect = async (bot: ExtendedClient) => { - const disconnectEmbed = new EmbedBuilder(); - disconnectEmbed.setTitle("Disconnected"); - disconnectEmbed.setDescription("I have been disconnected from Discord."); - disconnectEmbed.setTimestamp(); - await bot.env.debugHook.send({ embeds: [disconnectEmbed] }); +export const onDisconnect = async () => { + await logHandler.log("warn", "Bot has disconnected from Discord."); }; diff --git a/src/events/guild/onGuildCreate.ts b/src/events/guild/onGuildCreate.ts index 6db0724..25f3813 100644 --- a/src/events/guild/onGuildCreate.ts +++ b/src/events/guild/onGuildCreate.ts @@ -1,18 +1,20 @@ import { Guild } from "discord.js"; import { ExtendedClient } from "../../interfaces/ExtendedClient"; +import { logHandler } from "../../utils/logHandler"; /** * - * @param {ExtendedClient} bot The bot's Discord instance. + * @param {ExtendedClient} _bot The bot's Discord instance. * @param {Guild} guild The newly joined Discord guild. */ export const onGuildCreate = async function ( - bot: ExtendedClient, + _bot: ExtendedClient, guild: Guild ) { const owner = await guild.fetchOwner(); - await bot.env.debugHook.send({ - content: `JOINED GUILD: ${guild.name} (${guild.id}) - owned by ${owner?.displayName} (${owner.id})` - }); + await logHandler.log( + "info", + `Joined guild: ${guild.name} (${guild.id}) - owned by ${owner?.displayName} (${owner.id})` + ); }; diff --git a/src/events/guild/onGuildDelete.ts b/src/events/guild/onGuildDelete.ts index 1aff679..cb14876 100644 --- a/src/events/guild/onGuildDelete.ts +++ b/src/events/guild/onGuildDelete.ts @@ -2,6 +2,7 @@ import { Guild } from "discord.js"; import { ExtendedClient } from "../../interfaces/ExtendedClient"; import { errorHandler } from "../../utils/errorHandler"; +import { logHandler } from "../../utils/logHandler"; /** * * @param {ExtendedClient} bot The bot's Discord instance. @@ -12,9 +13,10 @@ export const onGuildDelete = async function ( guild: Guild ) { try { - await bot.env.debugHook.send({ - content: `LEFT GUILD: ${guild.name} (${guild.id}) ` - }); + await logHandler.log( + "info", + `Left guild: ${guild.name} (${guild.id}) - owned by ${guild.ownerId}` + ); await bot.db.cases .deleteMany({ where: { serverId: guild.id } }) .catch(() => null); diff --git a/src/index.ts b/src/index.ts index 8d0f765..48ad984 100644 --- a/src/index.ts +++ b/src/index.ts @@ -18,7 +18,7 @@ import { loadContexts } from "./utils/loadContexts"; await connectDatabase(bot); handleEvents(bot); - serve(bot); + serve(); await bot.login(bot.env.token); })(); diff --git a/src/interfaces/ExtendedClient.ts b/src/interfaces/ExtendedClient.ts index d232b12..226b194 100644 --- a/src/interfaces/ExtendedClient.ts +++ b/src/interfaces/ExtendedClient.ts @@ -1,5 +1,5 @@ import { PrismaClient, configs } from "@prisma/client"; -import { Client, WebhookClient } from "discord.js"; +import { Client } from "discord.js"; import { Command } from "./Command"; import { Context } from "./Context"; @@ -7,7 +7,6 @@ import { Context } from "./Context"; export interface ExtendedClient extends Client { env: { token: string; - debugHook: WebhookClient; mongoUri: string; devMode: boolean; }; diff --git a/src/modules/validateEnv.ts b/src/modules/validateEnv.ts index c4b7d87..ab051ba 100644 --- a/src/modules/validateEnv.ts +++ b/src/modules/validateEnv.ts @@ -1,5 +1,3 @@ -import { WebhookClient } from "discord.js"; - import { ExtendedClient } from "../interfaces/ExtendedClient"; import { logHandler } from "../utils/logHandler"; @@ -9,18 +7,13 @@ import { logHandler } from "../utils/logHandler"; * @returns {ExtendedClient["env"]} The environment variable object to attach to the bot. */ export const validateEnv = (): ExtendedClient["env"] => { - if ( - !process.env.BOT_TOKEN || - !process.env.DEBUG_HOOK || - !process.env.MONGO_URI - ) { + if (!process.env.BOT_TOKEN || !process.env.MONGO_URI) { logHandler.log("warn", "Missing environment variables!"); process.exit(1); } return { token: process.env.BOT_TOKEN, - debugHook: new WebhookClient({ url: process.env.DEBUG_HOOK }), mongoUri: process.env.MONGO_URI, devMode: process.env.NODE_ENV !== "production" }; diff --git a/src/server/serve.ts b/src/server/serve.ts index d602f1c..85eb79f 100644 --- a/src/server/serve.ts +++ b/src/server/serve.ts @@ -3,14 +3,13 @@ import http from "http"; import express from "express"; import { register } from "prom-client"; -import { ExtendedClient } from "../interfaces/ExtendedClient"; +import { logHandler } from "../utils/logHandler"; /** * Instantiates the web server for GitHub webhooks. * - * @param {ExtendedClient} bot The bot's Discord instance. */ -export const serve = async (bot: ExtendedClient) => { +export const serve = () => { const app = express(); app.get("/", (_req, res) => { @@ -70,12 +69,6 @@ export const serve = async (bot: ExtendedClient) => { const httpServer = http.createServer(app); httpServer.listen(9080, async () => { - await bot.env.debugHook.send({ - content: "http server listening on port 9080", - username: bot.user?.username ?? "bot", - avatarURL: - bot.user?.displayAvatarURL() ?? - "https://cdn.nhcarrigan.com/avatars/nhcarrigan.png" - }); + await logHandler.log("info", "HTTP server listening on port 9080"); }); }; diff --git a/src/utils/errorHandler.ts b/src/utils/errorHandler.ts index 7d04534..b4995d3 100644 --- a/src/utils/errorHandler.ts +++ b/src/utils/errorHandler.ts @@ -7,7 +7,7 @@ import { logHandler } from "./logHandler"; /** * Handles logging the error to the terminal and sending it to the debug webhook. * - * @param {ExtendedClient} bot The bot's Discord instance. + * @param {ExtendedClient} _bot The bot's Discord instance. * @param {string} context A brief description of where the error occurred. * @param {Error} err The error object. * @returns {string} A unique ID to use in logs. @@ -19,9 +19,6 @@ export const errorHandler = async ( ) => { const id = SnowflakeUtil.generate(); const error = err as Error; - void logHandler.error( - context, - error - ) + await logHandler.error(context, error); return id; }; diff --git a/src/utils/logHandler.ts b/src/utils/logHandler.ts index 9df2456..d87d206 100644 --- a/src/utils/logHandler.ts +++ b/src/utils/logHandler.ts @@ -7,7 +7,4 @@ import { Logger } from "@nhcarrigan/logger"; * @param {string} level - The log level to use. * @param {string} message - The message to log. */ -export const logHandler = new Logger( - "Celestine", - process.env.LOG_TOKEN ?? "" -) +export const logHandler = new Logger("Celestine", process.env.LOG_TOKEN ?? ""); diff --git a/src/utils/sendDebugMessage.ts b/src/utils/sendDebugMessage.ts index d4bd8f7..6a7852d 100644 --- a/src/utils/sendDebugMessage.ts +++ b/src/utils/sendDebugMessage.ts @@ -1,22 +1,16 @@ import { ExtendedClient } from "../interfaces/ExtendedClient"; +import { logHandler } from "./logHandler"; + /** * Sends a log message to the worker log hook. * - * @param {ExtendedClient} bot The bot's Discord instance. + * @param {ExtendedClient} _bot The bot's Discord instance. * @param {string} message The message to send. */ export const sendDebugMessage = async ( - bot: ExtendedClient, + _bot: ExtendedClient, message: string ) => { - if (bot.env.debugHook) { - await bot.env.debugHook.send({ - content: message, - avatarURL: - bot.user?.displayAvatarURL() ?? - "https://cdn.nhcarrigan.com/avatars/nhcarrigan.png", - username: bot.user?.username ?? "Mod bot" - }); - } + await logHandler.log("debug", message); };