diff --git a/src/events/server/guildMemberAdd/logNewJoins.ts b/src/events/server/guildMemberAdd/logNewJoins.ts index 01f5a27..4c75fa8 100644 --- a/src/events/server/guildMemberAdd/logNewJoins.ts +++ b/src/events/server/guildMemberAdd/logNewJoins.ts @@ -4,25 +4,24 @@ import { IEvent } from "~/interfaces" import { dateTimeFormatter } from "~/utils/Functions/intlFormaters.js" import logToChannel from "~/utils/Functions/logtochannel.js" -export default { - event: "guildMemberAdd", - execute(member) { - if (process.env.NODE_ENV === "dev") return - logToChannel("bot", { - embeds: [{ - title: "New Member", - description: userMention(member.id) + " has joined the server.\n" + - "Account created: " + dateTimeFormatter(member.user.createdAt), - color: embedColor, - thumbnail: { - url: member.user.avatarURL() || "" - }, - footer: { - text: "ID: " + member.id, - icon_url: member.user.avatarURL() || undefined - }, - timestamp: new Date().toISOString() - }] - }) - } -} as IEvent<"guildMemberAdd"> +const event: IEvent<"guildMemberAdd"> = (member) => { + if (process.env.NODE_ENV === "dev") return + logToChannel("bot", { + embeds: [{ + title: "New Member", + description: userMention(member.id) + " has joined the server.\n" + + "Account created: " + dateTimeFormatter(member.user.createdAt), + color: embedColor, + thumbnail: { + url: member.user.avatarURL() || "" + }, + footer: { + text: "ID: " + member.id, + icon_url: member.user.avatarURL() || undefined + }, + timestamp: new Date().toISOString() + }] + }) +} + +export default event diff --git a/src/events/server/interactionCreate/logBtnsCmds.ts b/src/events/server/interactionCreate/logBtnsCmds.ts new file mode 100644 index 0000000..8d81788 --- /dev/null +++ b/src/events/server/interactionCreate/logBtnsCmds.ts @@ -0,0 +1,51 @@ +import { IEvent } from "~/interfaces" +import { log } from "~/utils/Logger.js" + +const event: IEvent<"interactionCreate"> = (interaction) => { + if (interaction.isChatInputCommand()) { + let subcommand: string | null + + try { + subcommand = interaction.options.getSubcommand() + // eslint-disable-next-line @typescript-eslint/no-unused-vars + } catch (e) { + subcommand = null + } + + if (subcommand) { + log( + interaction.user.username + " ran " + + interaction.commandName + " " + + subcommand, + "info", + { type: "preset", color: "pink" } + ) + } else { + log( + interaction.user.username + " ran " + + interaction.commandName, + "info", + { type: "preset", color: "pink" } + ) + } + } + + if (interaction.isButton()) { + const customId = interaction.customId + let btnId: string = "" + + if (customId.startsWith("tempbutton-")) { + btnId = customId.split("-")[1] + btnId = btnId.split("-")[0] + } + + log( + interaction.user.username + " clicked " + btnId, + "info", + { type: "preset", color: "pink" } + ) + return + } +} + +export default event diff --git a/src/events/server/interactions/logBtnsCmds.ts b/src/events/server/interactions/logBtnsCmds.ts deleted file mode 100644 index 8fa7d95..0000000 --- a/src/events/server/interactions/logBtnsCmds.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { IEvent } from "~/interfaces" -import { log } from "~/utils/Logger.js" - -export default { - event: "interactionCreate", - execute(interaction) { - if (interaction.isChatInputCommand()) { - let subcommand: string | null - - try { - subcommand = interaction.options.getSubcommand() - // eslint-disable-next-line @typescript-eslint/no-unused-vars - } catch (e) { - subcommand = null - } - - if (subcommand) { - log( - interaction.user.username + " ran " + - interaction.commandName + " " + - subcommand, - "info", - { type: "preset", color: "pink" } - ) - } else { - log( - interaction.user.username + " ran " + - interaction.commandName, - "info", - { type: "preset", color: "pink" } - ) - } - } - - if (interaction.isButton()) { - const customId = interaction.customId - let btnId: string = "" - - if (customId.startsWith("tempbutton-")) { - btnId = customId.split("-")[1] - btnId = btnId.split("-")[0] - } - - log( - interaction.user.username + " clicked " + btnId, - "info", - { type: "preset", color: "pink" } - ) - return - } - } -} as IEvent<"interactionCreate"> diff --git a/src/events/server/messages/eval.ts b/src/events/server/messages/eval.ts deleted file mode 100644 index 382007e..0000000 --- a/src/events/server/messages/eval.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { ChannelType } from "discord.js" -import { IEvent } from "~/interfaces" -import env from "~/utils/Env.js" - -export default { - event: "messageCreate", - async execute(message) { - if (message.author.bot) return - if (message.author.id !== env.prod.dev) return - if (!message.content.startsWith("!eval")) return - - const code = message.content.split(" ").slice(1).join(" ") - const channel = message.channel - - if (channel.type !== ChannelType.GuildText) return - - try { - const output = eval(code) - const outputString = String(output) - await channel.send({ - embeds: [{ - description: `\`\`\`js\n${outputString}\`\`\`` - }] - }) - } catch (error) { - await channel.send({ - embeds: [{ - description: `\`\`\`js\n${error}\`\`\`` - }] - }) - } - } -} as IEvent<"messageCreate"> diff --git a/src/events/server/messages/react.ts b/src/events/server/messages/react.ts deleted file mode 100644 index f3fd3da..0000000 --- a/src/events/server/messages/react.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { IEvent } from "~/interfaces" - -export default { - event: "messageCreate", - async execute(message) { - if (message.content.toLowerCase().includes("ur mom") && message.author.username === "taken.lua") { - message.react("Woot:734345936347725885") - } - } -} as IEvent<"messageCreate"> diff --git a/src/events/server/ready/consolelog.ts b/src/events/server/ready/consolelog.ts index d6d1429..625e5cf 100644 --- a/src/events/server/ready/consolelog.ts +++ b/src/events/server/ready/consolelog.ts @@ -1,9 +1,8 @@ import { IEvent } from "~/interfaces" import { log } from "~/utils/Logger.js" -export default { - event: "ready", - execute(client) { - log("Logged in as " + client.user!.tag + "!", "info", { type: "preset", color: "green" }) - } -} as IEvent<"ready"> +const event: IEvent<"ready"> = (client) => { + log("Logged in as " + client.user!.tag + "!", "info", { type: "preset", color: "green" }) +} + +export default event diff --git a/src/events/server/ready/sendOnlineMessage.ts b/src/events/server/ready/sendOnlineMessage.ts index 9b489b9..effd0cf 100644 --- a/src/events/server/ready/sendOnlineMessage.ts +++ b/src/events/server/ready/sendOnlineMessage.ts @@ -2,16 +2,15 @@ import { embedColor } from "~/config/options.js" import { IEvent } from "~/interfaces" import logToChannel from "~/utils/Functions/logtochannel.js" -export default { - event: "ready", - execute() { - if (process.env.NODE_ENV === "dev") return +const event: IEvent<"ready"> = () => { + if (process.env.NODE_ENV === "dev") return - logToChannel("online", { - embeds: [{ - description: "Bot is online!", - color: embedColor - }] - }) - } -} as IEvent<"ready"> + logToChannel("online", { + embeds: [{ + description: "Bot is online!", + color: embedColor + }] + }) +} + +export default event diff --git a/src/events/server/ready/status.ts b/src/events/server/ready/status.ts index 1cecaf2..0f40dd8 100644 --- a/src/events/server/ready/status.ts +++ b/src/events/server/ready/status.ts @@ -3,28 +3,27 @@ import { guildid } from "~/config/options.js" import statuses from "~/config/statuses.js" import { IEvent } from "~/interfaces" -export default { - event: "ready", - execute(client) { - const user = client.user! - const guild = client.guilds.cache.get(guildid) as Guild +const event: IEvent<"ready"> = (client) => { + const user = client.user! + const guild = client.guilds.cache.get(guildid) as Guild - function getActivity(status: ((guild: Guild) => string) | string): string { - if (typeof status === "function") { - return status(guild) - } else { - return status - } + function getActivity(status: ((guild: Guild) => string) | string): string { + if (typeof status === "function") { + return status(guild) + } else { + return status } - - user.setActivity({ name: getActivity(statuses[0].name), type: statuses[0].type }) - - let i = 1 - setInterval(() => { - const status = i++ % statuses.length - user.setActivity({ name: getActivity(statuses[status].name), type: statuses[status].type }) - }, 1000 * 60) - - user.setStatus("dnd") } -} as IEvent<"ready"> + + user.setActivity({ name: getActivity(statuses[0].name), type: statuses[0].type }) + + let i = 1 + setInterval(() => { + const status = i++ % statuses.length + user.setActivity({ name: getActivity(statuses[status].name), type: statuses[status].type }) + }, 1000 * 60) + + user.setStatus("dnd") +} + +export default event diff --git a/src/events/server/voiceStateUpdate/updatecache.ts b/src/events/server/voiceStateUpdate/updatecache.ts index 84fa740..f14fb34 100644 --- a/src/events/server/voiceStateUpdate/updatecache.ts +++ b/src/events/server/voiceStateUpdate/updatecache.ts @@ -1,14 +1,13 @@ import { IEvent } from "~/interfaces" -export default { - event: "voiceStateUpdate", - async execute(_o, n) { - const guild = n.guild +const event: IEvent<"voiceStateUpdate"> = (_o, n) => { + const guild = n.guild - if (!guild) return + if (!guild) return - if (!n.channel) { - guild.voiceStates.cache.delete(n.id) - } + if (!n.channel) { + guild.voiceStates.cache.delete(n.id) } -} as IEvent<"voiceStateUpdate"> +} + +export default event diff --git a/src/interfaces/IEvent.ts b/src/interfaces/IEvent.ts index a253ae0..d9003d7 100644 --- a/src/interfaces/IEvent.ts +++ b/src/interfaces/IEvent.ts @@ -1,6 +1,5 @@ import { ClientEvents } from "discord.js" -export default interface IEvent { - event: E - execute(...args: ClientEvents[E]): void -} +type IEvent = (...args: ClientEvents[E]) => void + +export default IEvent diff --git a/src/utils/Events/events.ts b/src/utils/Events/events.ts index 474ed7f..4635a14 100644 --- a/src/utils/Events/events.ts +++ b/src/utils/Events/events.ts @@ -8,12 +8,11 @@ export default async function loadEvents(client: Client, ft: FileType) { const eventDirs = fs.readdirSync(serverDir) for (const eventDir of eventDirs) { const eventFiles = fs.readdirSync(path.join(serverDir, eventDir)).filter(file => file.endsWith(ft)) + const eventName = eventDir for (const eventFile of eventFiles) { const eventPath = path.join(serverDir, eventDir, eventFile) const { default: event } = await import("file://" + eventPath) - if (!event.disabled) { - client.on(event.event, event.execute) - } + client.on(eventName, event) } } }