From 4090446dee528f0c934fd7a8a2f1abba4498d5ab Mon Sep 17 00:00:00 2001 From: Taken Date: Tue, 9 Jan 2024 14:44:01 +0100 Subject: [PATCH 01/12] Updated error handling --- src/utils/eventHandlers/button.ts | 24 ++++++++++++++++++------ src/utils/eventHandlers/command.ts | 22 +++++++++++++++++----- src/utils/eventHandlers/contextmenu.ts | 23 ++++++++++++++++++----- src/utils/eventHandlers/modal.ts | 22 +++++++++++++++++----- 4 files changed, 70 insertions(+), 21 deletions(-) diff --git a/src/utils/eventHandlers/button.ts b/src/utils/eventHandlers/button.ts index 427a771..d8e7516 100644 --- a/src/utils/eventHandlers/button.ts +++ b/src/utils/eventHandlers/button.ts @@ -41,12 +41,11 @@ export default function loadButtonEvents(client: Client, ft: FileType) { await button.execute(interaction) } catch (error) { if (process.env.NODE_ENV !== "dev") { - await logToChannel("error", { embeds: [ { title: "Button error occured", - description: String(error), + description: "```" + error + "```", color: embedColor, footer: { icon_url: interaction.guild!.iconURL() || undefined, @@ -59,11 +58,24 @@ export default function loadButtonEvents(client: Client, ft: FileType) { ], }) } + console.error(error) - await interaction.reply({ - content: "There was an error while executing this event!", - ephemeral: true, - }) + if (!interaction.deferred) { + await interaction.reply({ + embeds: [{ + description: "There was an error while executing this button!", + color: embedColor, + }], + ephemeral: true, + }) + } else { + await interaction.editReply({ + embeds: [{ + description: "There was an error while executing this button! 2", + color: embedColor, + }] + }) + } } }) } diff --git a/src/utils/eventHandlers/command.ts b/src/utils/eventHandlers/command.ts index ffe3bca..7fa329b 100644 --- a/src/utils/eventHandlers/command.ts +++ b/src/utils/eventHandlers/command.ts @@ -46,7 +46,7 @@ export default function loadSlashCommandsEvents(client: Client, ft: FileType) { embeds: [ { title: "Command error occured", - description: String(error), + description: "```" + error + "```", color: embedColor, footer: { icon_url: interaction.guild!.iconURL() || undefined, @@ -61,10 +61,22 @@ export default function loadSlashCommandsEvents(client: Client, ft: FileType) { } console.error(error) - await interaction.reply({ - content: "There was an error while executing this command!", - ephemeral: true, - }) + if (!interaction.deferred) { + await interaction.reply({ + embeds: [{ + description: "There was an error while executing this command!", + color: embedColor, + }], + ephemeral: true, + }) + } else { + await interaction.editReply({ + embeds: [{ + description: "There was an error while executing this command!", + color: embedColor, + }] + }) + } } }) } diff --git a/src/utils/eventHandlers/contextmenu.ts b/src/utils/eventHandlers/contextmenu.ts index 29db098..97c1709 100644 --- a/src/utils/eventHandlers/contextmenu.ts +++ b/src/utils/eventHandlers/contextmenu.ts @@ -53,7 +53,7 @@ export default function loadContextMenuEvents(client: Client, ft: FileType) { embeds: [ { title: "Contextmenu error occured", - description: String(error), + description: "```" + error + "```", color: embedColor, footer: { icon_url: interaction.guild!.iconURL() || undefined, @@ -66,11 +66,24 @@ export default function loadContextMenuEvents(client: Client, ft: FileType) { ], }) } + console.error(error) - await interaction.reply({ - content: "There was an error while executing this command!", - ephemeral: true, - }) + if (!interaction.deferred) { + await interaction.reply({ + embeds: [{ + description: "There was an error while executing this contextmenu command!", + color: embedColor, + }], + ephemeral: true, + }) + } else { + await interaction.editReply({ + embeds: [{ + description: "There was an error while executing this contextmenu command!", + color: embedColor, + }] + }) + } } }) } diff --git a/src/utils/eventHandlers/modal.ts b/src/utils/eventHandlers/modal.ts index dbc6dd7..94a0d05 100644 --- a/src/utils/eventHandlers/modal.ts +++ b/src/utils/eventHandlers/modal.ts @@ -47,7 +47,7 @@ export default function loadModalEvents(client: Client, ft: FileType) { embeds: [ { title: "Button error occured", - description: String(error), + description: "```" + error + "```", color: embedColor, footer: { icon_url: interaction.guild!.iconURL() || undefined, @@ -60,11 +60,23 @@ export default function loadModalEvents(client: Client, ft: FileType) { ], }) } + console.error(error) - await interaction.reply({ - content: "There was an error while executing this modal!", - ephemeral: true, - }) + if (!interaction.deferred) { + await interaction.reply({ + embeds: [{ + description: "There was an error while executing this modal!", + color: embedColor + }] + }) + } else { + await interaction.editReply({ + embeds: [{ + description: "There was an error while executing this modal!", + color: embedColor + }] + }) + } } }) } From 52f170c4a81c4438bf94692bc7faf8f03a9b11f7 Mon Sep 17 00:00:00 2001 From: Taken Date: Wed, 10 Jan 2024 18:32:10 +0100 Subject: [PATCH 02/12] Updated exports --- src/utils/Autodeploy.ts | 6 ++---- src/utils/eventHandlers/modal.ts | 4 +--- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/src/utils/Autodeploy.ts b/src/utils/Autodeploy.ts index 3e4848b..80ccc32 100644 --- a/src/utils/Autodeploy.ts +++ b/src/utils/Autodeploy.ts @@ -10,7 +10,7 @@ import { import fs = require("fs") type FileType = "js" | "ts" -async function autoDeployCommands(fileType: FileType) { +export default async function autoDeployCommands(fileType: FileType) { const commands = [] let commandFiles: string[] = [] let contentMenuCommands: string[] = [] @@ -114,6 +114,4 @@ async function autoDeployCommands(fileType: FileType) { } catch (error) { console.error(error) } -} - -export { autoDeployCommands } +} \ No newline at end of file diff --git a/src/utils/eventHandlers/modal.ts b/src/utils/eventHandlers/modal.ts index 94a0d05..4c5b3b9 100644 --- a/src/utils/eventHandlers/modal.ts +++ b/src/utils/eventHandlers/modal.ts @@ -79,6 +79,4 @@ export default function loadModalEvents(client: Client, ft: FileType) { } } }) -} - -export { loadModalEvents } +} \ No newline at end of file From 9bcc42b020f995109f002ca7c8ebaff3adb6c72f Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 17:59:20 +0100 Subject: [PATCH 03/12] Updated import --- src/commands/snipe.ts | 75 ++++++++++++++++++++++++ src/events/server/messages/snipecache.ts | 37 ++++++++++++ src/schemas/snipeCacheSchema.ts | 11 ++++ src/utils/Client.ts | 2 +- src/utils/Types.ts | 8 +++ 5 files changed, 132 insertions(+), 1 deletion(-) create mode 100644 src/commands/snipe.ts create mode 100644 src/events/server/messages/snipecache.ts create mode 100644 src/schemas/snipeCacheSchema.ts create mode 100644 src/utils/Types.ts diff --git a/src/commands/snipe.ts b/src/commands/snipe.ts new file mode 100644 index 0000000..53a3e12 --- /dev/null +++ b/src/commands/snipe.ts @@ -0,0 +1,75 @@ +import { GuildMember, SlashCommandBuilder } from "discord.js" +import snipeCacheSchema from "../schemas/snipeCacheSchema" +import Command from "../interfaces/Command" +import { color } from "../../config/options.json" +import { SnipeCache } from "../utils/Types" + +export = { + name: "snipe", + description: "Snipes the last deleted message of a user", + type: "slash", + public: true, + dev: false, + + data: new SlashCommandBuilder() + .setName("snipe") + .setDescription("Snipes the last deleted message of a user") + .addUserOption(option => + option + .setName("user") + .setDescription("The user to snipe") + .setRequired(true)) + .setDMPermission(false), + + async execute(interaction) { + await interaction.deferReply() + const member = interaction.options.getMember("user") as GuildMember + const snipeCache = await snipeCacheSchema.find({ + userid: member.user.id, + channelid: interaction.channel!.id + }) + const embedColor = Number(color.replace("#", "0x")) + const messages: string[] = [] + + if (!snipeCache.length) { + await interaction.editReply({ + embeds: [{ + description: "No messages to snipe", + color: embedColor + }] + }) + return + } + + let i = 1 + for (const msg of snipeCache) { + const data: SnipeCache = msg.data + if (!data.attachments.length) { + messages.push(`**Message #${i}:** ${data.content}\n`) + } else { + messages.push(`**Message #${i}:** ${data.content}`) + messages.push(`**Attachments:** ${data.attachments.join(", ")}\n`) + } + i++ + } + + await interaction.editReply({ + embeds: [{ + author: { + name: member.user.username, + icon_url: member.user.avatarURL() || undefined + }, + description: messages.join("\n"), + thumbnail: { + url: member.user.avatarURL() || "" + }, + color: embedColor, + footer: { + text: "ID: " + member.user.id, + icon_url: interaction.guild!.iconURL() || undefined + }, + timestamp: new Date().toISOString() + }] + }) + } +} as Command \ No newline at end of file diff --git a/src/events/server/messages/snipecache.ts b/src/events/server/messages/snipecache.ts new file mode 100644 index 0000000..bcd0bc2 --- /dev/null +++ b/src/events/server/messages/snipecache.ts @@ -0,0 +1,37 @@ +import { ChannelType, Message } from "discord.js" +import { Event } from "../../../interfaces" +import snipeCacheSchema from "../../../schemas/snipeCacheSchema" +import mongoose from "mongoose" +import { SnipeCache } from "../../../utils/Types" +import env from "../../../utils/Env" + +export = { + name: "snipecache", + description: "Logs messages for the snipe command", + type: "event", + event: "messageDelete", + + async execute(message: Message) { + if (message.channel.type !== ChannelType.GuildText) return + if (message.author.bot) return + if (message.author.id !== env.prod.dev) return + + const msg: SnipeCache = { + author: message.author.id, + content: message.content, + channel: message.channel.id, + createdAt: message.createdTimestamp, + deletedAt: Date.now(), + attachments: message.attachments.map(a => a.url) || [], + } + + const snipeCache = new snipeCacheSchema({ + _id: new mongoose.Types.ObjectId, + userid: message.author.id, + channelid: message.channel.id, + data: msg, + }) + + await snipeCache.save() + } +} as Event \ No newline at end of file diff --git a/src/schemas/snipeCacheSchema.ts b/src/schemas/snipeCacheSchema.ts new file mode 100644 index 0000000..410e61c --- /dev/null +++ b/src/schemas/snipeCacheSchema.ts @@ -0,0 +1,11 @@ +import { model, Schema } from "mongoose" + +const snipeCacheSchema = new Schema({ + _id: Schema.Types.ObjectId, + userid: { type: String, required: true }, + channelid: { type: String, required: true }, + data: { type: Object, required: true }, + date: { type: Date, default: Date.now(), expires: 600 } +}) + +export default model("snipeCache", snipeCacheSchema, "snipeCache") \ No newline at end of file diff --git a/src/utils/Client.ts b/src/utils/Client.ts index ff81027..20af18d 100644 --- a/src/utils/Client.ts +++ b/src/utils/Client.ts @@ -5,7 +5,7 @@ import { Button } from "../interfaces" import { Modal } from "../interfaces" import { Autocomplete } from "../interfaces" import env from "./Env" -import { autoDeployCommands } from "./Autodeploy" +import autoDeployCommands from "./Autodeploy" import { loadAllEvents } from "./Events" export class ExtendedClient extends Client { diff --git a/src/utils/Types.ts b/src/utils/Types.ts new file mode 100644 index 0000000..2cbf5e8 --- /dev/null +++ b/src/utils/Types.ts @@ -0,0 +1,8 @@ +export type SnipeCache = { + author: string + content: string + channel: string + createdAt: number + deletedAt: number + attachments: string[] +} \ No newline at end of file From 323a6dfea568ac32fac492d02e0347cbcdcefe31 Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 18:31:16 +0100 Subject: [PATCH 04/12] Updated dependencies to latst minor version --- package.json | 16 ++--- yarn.lock | 161 +++++++++++++++++++++++++++------------------------ 2 files changed, 92 insertions(+), 85 deletions(-) diff --git a/package.json b/package.json index c07b786..c2a2653 100644 --- a/package.json +++ b/package.json @@ -19,22 +19,22 @@ "author": "Taken", "license": "GPL-3.0-only", "dependencies": { - "axios": "^1.3.4", + "axios": "^1.6.5", "cron": "^3.1.6", - "discord.js": "^14.8.0", - "dotenv": "^16.0.3", + "discord.js": "^14.14.1", + "dotenv": "^16.3.1", "ioredis": "^5.3.2", - "mongoose": "^7.0.1", + "mongoose": "^7.6.8", "ms": "^2.1.3", "pretty-ms": "^8.0.0" }, "devDependencies": { "@types/ms": "^0.7.34", - "@types/node": "^20.10.5", - "@typescript-eslint/eslint-plugin": "^6.16.0", - "@typescript-eslint/parser": "^6.16.0", + "@types/node": "^20.11.0", + "@typescript-eslint/eslint-plugin": "^6.18.1", + "@typescript-eslint/parser": "^6.18.1", "eslint": "^8.56.0", - "prettier": "^3.1.1", + "prettier": "^3.2.0", "ts-node": "^10.9.2", "typescript": "^5.3.3" } diff --git a/yarn.lock b/yarn.lock index ccd3f95..0b43b7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -239,13 +239,20 @@ resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@*", "@types/node@^20.10.5": +"@types/node@*": version "20.10.5" resolved "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz" integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== dependencies: undici-types "~5.26.4" +"@types/node@^20.11.0": + version "20.11.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.0.tgz#8e0b99e70c0c1ade1a86c4a282f7b7ef87c9552f" + integrity sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ== + dependencies: + undici-types "~5.26.4" + "@types/semver@^7.5.0": version "7.5.6" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" @@ -278,16 +285,16 @@ dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.16.0.tgz#cc29fbd208ea976de3db7feb07755bba0ce8d8bc" - integrity sha512-O5f7Kv5o4dLWQtPX4ywPPa+v9G+1q1x8mz0Kr0pXUtKsevo+gIJHLkGc8RxaZWtP8RrhwhSNIWThnW42K9/0rQ== +"@typescript-eslint/eslint-plugin@^6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.18.1.tgz#0df881a47da1c1a9774f39495f5f7052f86b72e0" + integrity sha512-nISDRYnnIpk7VCFrGcu1rnZfM1Dh9LRHnfgdkjcbi/l7g16VYRri3TjXi9Ir4lOZSw5N/gnV/3H7jIPQ8Q4daA== dependencies: "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "6.16.0" - "@typescript-eslint/type-utils" "6.16.0" - "@typescript-eslint/utils" "6.16.0" - "@typescript-eslint/visitor-keys" "6.16.0" + "@typescript-eslint/scope-manager" "6.18.1" + "@typescript-eslint/type-utils" "6.18.1" + "@typescript-eslint/utils" "6.18.1" + "@typescript-eslint/visitor-keys" "6.18.1" debug "^4.3.4" graphemer "^1.4.0" ignore "^5.2.4" @@ -295,47 +302,47 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/parser@^6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.16.0.tgz#36f39f63b126aa25af2ad2df13d9891e9fd5b40c" - integrity sha512-H2GM3eUo12HpKZU9njig3DF5zJ58ja6ahj1GoHEHOgQvYxzoFJJEvC1MQ7T2l9Ha+69ZSOn7RTxOdpC/y3ikMw== +"@typescript-eslint/parser@^6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.18.1.tgz#3c3987e186b38c77b30b6bfa5edf7c98ae2ec9d3" + integrity sha512-zct/MdJnVaRRNy9e84XnVtRv9Vf91/qqe+hZJtKanjojud4wAVy/7lXxJmMyX6X6J+xc6c//YEWvpeif8cAhWA== dependencies: - "@typescript-eslint/scope-manager" "6.16.0" - "@typescript-eslint/types" "6.16.0" - "@typescript-eslint/typescript-estree" "6.16.0" - "@typescript-eslint/visitor-keys" "6.16.0" + "@typescript-eslint/scope-manager" "6.18.1" + "@typescript-eslint/types" "6.18.1" + "@typescript-eslint/typescript-estree" "6.18.1" + "@typescript-eslint/visitor-keys" "6.18.1" debug "^4.3.4" -"@typescript-eslint/scope-manager@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.16.0.tgz#f3e9a00fbc1d0701356359cd56489c54d9e37168" - integrity sha512-0N7Y9DSPdaBQ3sqSCwlrm9zJwkpOuc6HYm7LpzLAPqBL7dmzAUimr4M29dMkOP/tEwvOCC/Cxo//yOfJD3HUiw== +"@typescript-eslint/scope-manager@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.18.1.tgz#28c31c60f6e5827996aa3560a538693cb4bd3848" + integrity sha512-BgdBwXPFmZzaZUuw6wKiHKIovms97a7eTImjkXCZE04TGHysG+0hDQPmygyvgtkoB/aOQwSM/nWv3LzrOIQOBw== dependencies: - "@typescript-eslint/types" "6.16.0" - "@typescript-eslint/visitor-keys" "6.16.0" + "@typescript-eslint/types" "6.18.1" + "@typescript-eslint/visitor-keys" "6.18.1" -"@typescript-eslint/type-utils@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.16.0.tgz#5f21c3e49e540ad132dc87fc99af463c184d5ed1" - integrity sha512-ThmrEOcARmOnoyQfYkHw/DX2SEYBalVECmoldVuH6qagKROp/jMnfXpAU/pAIWub9c4YTxga+XwgAkoA0pxfmg== +"@typescript-eslint/type-utils@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.18.1.tgz#115cf535f8b39db8301677199ce51151e2daee96" + integrity sha512-wyOSKhuzHeU/5pcRDP2G2Ndci+4g653V43gXTpt4nbyoIOAASkGDA9JIAgbQCdCkcr1MvpSYWzxTz0olCn8+/Q== dependencies: - "@typescript-eslint/typescript-estree" "6.16.0" - "@typescript-eslint/utils" "6.16.0" + "@typescript-eslint/typescript-estree" "6.18.1" + "@typescript-eslint/utils" "6.18.1" debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.16.0.tgz#a3abe0045737d44d8234708d5ed8fef5d59dc91e" - integrity sha512-hvDFpLEvTJoHutVl87+MG/c5C8I6LOgEx05zExTSJDEVU7hhR3jhV8M5zuggbdFCw98+HhZWPHZeKS97kS3JoQ== +"@typescript-eslint/types@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.18.1.tgz#91617d8080bcd99ac355d9157079970d1d49fefc" + integrity sha512-4TuMAe+tc5oA7wwfqMtB0Y5OrREPF1GeJBAjqwgZh1lEMH5PJQgWgHGfYufVB51LtjD+peZylmeyxUXPfENLCw== -"@typescript-eslint/typescript-estree@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.16.0.tgz#d6e0578e4f593045f0df06c4b3a22bd6f13f2d03" - integrity sha512-VTWZuixh/vr7nih6CfrdpmFNLEnoVBF1skfjdyGnNwXOH1SLeHItGdZDHhhAIzd3ACazyY2Fg76zuzOVTaknGA== +"@typescript-eslint/typescript-estree@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.18.1.tgz#a12b6440175b4cbc9d09ab3c4966c6b245215ab4" + integrity sha512-fv9B94UAhywPRhUeeV/v+3SBDvcPiLxRZJw/xZeeGgRLQZ6rLMG+8krrJUyIf6s1ecWTzlsbp0rlw7n9sjufHA== dependencies: - "@typescript-eslint/types" "6.16.0" - "@typescript-eslint/visitor-keys" "6.16.0" + "@typescript-eslint/types" "6.18.1" + "@typescript-eslint/visitor-keys" "6.18.1" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" @@ -343,25 +350,25 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.16.0.tgz#1c291492d34670f9210d2b7fcf6b402bea3134ae" - integrity sha512-T83QPKrBm6n//q9mv7oiSvy/Xq/7Hyw9SzSEhMHJwznEmQayfBM87+oAlkNAMEO7/MjIwKyOHgBJbxB0s7gx2A== +"@typescript-eslint/utils@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.18.1.tgz#3451cfe2e56babb6ac657e10b6703393d4b82955" + integrity sha512-zZmTuVZvD1wpoceHvoQpOiewmWu3uP9FuTWo8vqpy2ffsmfCE8mklRPi+vmnIYAIk9t/4kOThri2QCDgor+OpQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" "@types/json-schema" "^7.0.12" "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.16.0" - "@typescript-eslint/types" "6.16.0" - "@typescript-eslint/typescript-estree" "6.16.0" + "@typescript-eslint/scope-manager" "6.18.1" + "@typescript-eslint/types" "6.18.1" + "@typescript-eslint/typescript-estree" "6.18.1" semver "^7.5.4" -"@typescript-eslint/visitor-keys@6.16.0": - version "6.16.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.16.0.tgz#d50da18a05d91318ed3e7e8889bda0edc35f3a10" - integrity sha512-QSFQLruk7fhs91a/Ep/LqRdbJCZ1Rq03rqBdKT5Ky17Sz8zRLUksqIe9DW0pKtg/Z35/ztbLQ6qpOCN6rOC11A== +"@typescript-eslint/visitor-keys@6.18.1": + version "6.18.1" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.18.1.tgz#704d789bda2565a15475e7d22f145b8fe77443f4" + integrity sha512-/kvt0C5lRqGoCfsbmm7/CwMqoSkY3zzHLIjdhHZQW3VFrnz7ATecOHR7nb7V+xn4286MBxfnQfQhAmCI0u+bJA== dependencies: - "@typescript-eslint/types" "6.16.0" + "@typescript-eslint/types" "6.18.1" eslint-visitor-keys "^3.4.1" "@ungap/structured-clone@^1.2.0": @@ -436,12 +443,12 @@ asynckit@^0.4.0: resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -axios@^1.3.4: - version "1.6.2" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== +axios@^1.6.5: + version "1.6.5" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.5.tgz#2c090da14aeeab3770ad30c3a1461bc970fb0cd8" + integrity sha512-Ii012v05KEVuUoFWmMW/UQv9aRIc3ZwkWDcM+h5Il8izZCtRVpDUfwpoFf7eOtajT3QiGR4yDUx7lPqHJULgbg== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -580,9 +587,9 @@ discord-api-types@0.37.61: resolved "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.61.tgz" integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw== -discord.js@^14.8.0: +discord.js@^14.14.1: version "14.14.1" - resolved "https://registry.npmjs.org/discord.js/-/discord.js-14.14.1.tgz" + resolved "https://registry.yarnpkg.com/discord.js/-/discord.js-14.14.1.tgz#9a2bea23bba13819705ab87612837610abce9ee3" integrity sha512-/hUVzkIerxKHyRKopJy5xejp4MYKDPTszAnpYxzVVv4qJYf+Tkt+jnT2N29PIPschicaEEpXwF2ARrTYHYwQ5w== dependencies: "@discordjs/builders" "^1.7.0" @@ -607,9 +614,9 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -dotenv@^16.0.3: +dotenv@^16.3.1: version "16.3.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e" integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== escape-string-regexp@^4.0.0: @@ -776,10 +783,10 @@ flatted@^3.2.9: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== -follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== form-data@^4.0.0: version "4.0.0" @@ -1076,10 +1083,10 @@ mongodb-connection-string-url@^2.6.0: "@types/whatwg-url" "^8.2.1" whatwg-url "^11.0.0" -mongodb@5.9.0: - version "5.9.0" - resolved "https://registry.npmjs.org/mongodb/-/mongodb-5.9.0.tgz" - integrity sha512-g+GCMHN1CoRUA+wb1Agv0TI4YTSiWr42B5ulkiAfLLHitGK1R+PkSAf3Lr5rPZwi/3F04LiaZEW0Kxro9Fi2TA== +mongodb@5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-5.9.1.tgz#da03ea253b0972bf8097301fa5f65e34acad18fa" + integrity sha512-NBGA8AfJxGPeB12F73xXwozt8ZpeIPmCUeWRwl9xejozTXFes/3zaep9zhzs1B/nKKsw4P3I4iPfXl3K7s6g+Q== dependencies: bson "^5.5.0" mongodb-connection-string-url "^2.6.0" @@ -1087,14 +1094,14 @@ mongodb@5.9.0: optionalDependencies: "@mongodb-js/saslprep" "^1.1.0" -mongoose@^7.0.1: - version "7.6.5" - resolved "https://registry.npmjs.org/mongoose/-/mongoose-7.6.5.tgz" - integrity sha512-ElHgGWVKQUawKBn0DXuHmSd3W5w5Kb8JUbDNQH30odhYCDKq9GCh+E1/SuN8jZGxrHgFyLrvYxLSpC36BpqS+w== +mongoose@^7.6.8: + version "7.6.8" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-7.6.8.tgz#2b088f0d2b8943f0748e99f7010124877830bcf9" + integrity sha512-q9zAySH+UtOK5yonWyNcLfq3PxrY6s4gdta4qNGKNOE2yTVoY9FP4hQtvWYnv4rkdk7T8QmQMC7bbhJjDxIunw== dependencies: bson "^5.5.0" kareem "2.5.1" - mongodb "5.9.0" + mongodb "5.9.1" mpath "0.9.0" mquery "5.0.0" ms "2.1.3" @@ -1202,10 +1209,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== +prettier@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.0.tgz#aedf3dfb42c00ee4eda533c1380f7d9624f768b8" + integrity sha512-/vBUecTGaPlRVwyZVROVC58bYIScqaoEJzZmzQXXrZOzqn0TwWz0EnOozOlFO/YAImRnb7XsKpTCd3m1SjS2Ww== pretty-ms@^8.0.0: version "8.0.0" From ce2bc43cf605f130e2be6b48234d37f6731dd3d5 Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 18:49:55 +0100 Subject: [PATCH 05/12] Updated dependencies and dev script --- package.json | 1 + src/utils/Autodeploy.ts | 24 ++-- src/utils/functions/colors.ts | 6 +- yarn.lock | 212 +++++++++++++++++----------------- 4 files changed, 125 insertions(+), 118 deletions(-) diff --git a/package.json b/package.json index c2a2653..7b66c77 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "license": "GPL-3.0-only", "dependencies": { "axios": "^1.6.5", + "chalk": "^4.1.2", "cron": "^3.1.6", "discord.js": "^14.14.1", "dotenv": "^16.3.1", diff --git a/src/utils/Autodeploy.ts b/src/utils/Autodeploy.ts index 80ccc32..3c2b8a3 100644 --- a/src/utils/Autodeploy.ts +++ b/src/utils/Autodeploy.ts @@ -1,6 +1,7 @@ import { Command } from "../interfaces" +import chalk from "chalk" import env from "./Env" -import color from "./functions/colors" +// import color from "./functions/colors" import { REST, RESTGetAPIApplicationGuildCommandResult, @@ -10,6 +11,9 @@ import { import fs = require("fs") type FileType = "js" | "ts" +const oldColor = chalk.hex("#f38ba8") +const newColor = chalk.hex("#b4befe") + export default async function autoDeployCommands(fileType: FileType) { const commands = [] let commandFiles: string[] = [] @@ -86,17 +90,21 @@ export default async function autoDeployCommands(fileType: FileType) { JSON.stringify(sortedCurrentCommandsInfo) ) { console.log( - color.colorize("Commands are the same, skipping deploy.", "green"), + // color.colorize("Commands are the same, skipping deploy.", "green"), + newColor("Commands are the same, skipping deploy."), ) - console.log(color.colorize(newCmds, "green")) + // console.log(color.colorize(newCmds, "green")) + console.log(newColor(newCmds)) return } try { console.log( - color.colorize("Commands are different, starting deploy.", "red"), + // color.colorize("Commands are different, starting deploy.", "red"), + oldColor("Commands are different, starting deploy."), ) - console.log(color.colorize(currentCmds, "red")) + // console.log(color.colorize(currentCmds, "red")) + console.log(oldColor(currentCmds)) console.log( `Started refreshing ${commands.length} application (/) commands.`, ) @@ -106,8 +114,10 @@ export default async function autoDeployCommands(fileType: FileType) { { body: commands }, )) as RESTPutAPIApplicationGuildCommandsJSONBody[] - console.log(color.colorize("New commands deployed.", "green")) - console.log(color.colorize(newCmds, "green")) + // console.log(color.colorize("New commands deployed.", "green")) + // console.log(color.colorize(newCmds, "green")) + console.log(newColor("New commands deployed.")) + console.log(newColor(newCmds)) console.log( `Successfully reloaded ${data.length} application (/) commands.`, ) diff --git a/src/utils/functions/colors.ts b/src/utils/functions/colors.ts index 8278ba8..ab55a63 100644 --- a/src/utils/functions/colors.ts +++ b/src/utils/functions/colors.ts @@ -26,8 +26,6 @@ const colors = { bgWhite: "\x1b[47m", } -function colorize(text: string, color: keyof typeof colors) { +export default function colorize(text: string, color: keyof typeof colors) { return colors[color] + text + colors.reset -} - -export default { colorize } +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 0b43b7f..946fc65 100644 --- a/yarn.lock +++ b/yarn.lock @@ -16,7 +16,7 @@ "@discordjs/builders@^1.7.0": version "1.7.0" - resolved "https://registry.npmjs.org/@discordjs/builders/-/builders-1.7.0.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/builders/-/builders-1.7.0.tgz#e2478c7e55b0f4c40837edb8f102bce977323a37" integrity sha512-GDtbKMkg433cOZur8Dv6c25EHxduNIBsxeHrsRoIM8+AwmEZ8r0tEpckx/sHwTLwQPOF3e2JWloZh9ofCaMfAw== dependencies: "@discordjs/formatters" "^0.3.3" @@ -29,24 +29,24 @@ "@discordjs/collection@1.5.3": version "1.5.3" - resolved "https://registry.npmjs.org/@discordjs/collection/-/collection-1.5.3.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-1.5.3.tgz#5a1250159ebfff9efa4f963cfa7e97f1b291be18" integrity sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ== "@discordjs/collection@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@discordjs/collection/-/collection-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/collection/-/collection-2.0.0.tgz#409b80c74eb8486cc4ee6a9b83426aaff1380f8c" integrity sha512-YTWIXLrf5FsrLMycpMM9Q6vnZoR/lN2AWX23/Cuo8uOOtS8eHB2dyQaaGnaF8aZPYnttf2bkLMcXn/j6JUOi3w== "@discordjs/formatters@^0.3.3": version "0.3.3" - resolved "https://registry.npmjs.org/@discordjs/formatters/-/formatters-0.3.3.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/formatters/-/formatters-0.3.3.tgz#b16fdd79bb819680ab7e519193004e9dc124a749" integrity sha512-wTcI1Q5cps1eSGhl6+6AzzZkBBlVrBdc9IUhJbijRgVjCNIIIZPgqnUj3ntFODsHrdbGU8BEG9XmDQmgEEYn3w== dependencies: discord-api-types "0.37.61" "@discordjs/rest@^2.1.0": version "2.2.0" - resolved "https://registry.npmjs.org/@discordjs/rest/-/rest-2.2.0.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/rest/-/rest-2.2.0.tgz#f4ec00d3faff965c00a879b7e87bb4b6f4446966" integrity sha512-nXm9wT8oqrYFRMEqTXQx9DUTeEtXUDMmnUKIhZn6O2EeDY9VCdwj23XCPq7fkqMPKdF7ldAfeVKyxxFdbZl59A== dependencies: "@discordjs/collection" "^2.0.0" @@ -61,12 +61,12 @@ "@discordjs/util@^1.0.2": version "1.0.2" - resolved "https://registry.npmjs.org/@discordjs/util/-/util-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/util/-/util-1.0.2.tgz#dc1896d764452b1bd9707eb9aa99ccfbb30bd1c0" integrity sha512-IRNbimrmfb75GMNEjyznqM1tkI7HrZOf14njX7tCAAUetyZM1Pr8hX/EK2lxBCOgWDRmigbp24fD1hdMfQK5lw== "@discordjs/ws@^1.0.2": version "1.0.2" - resolved "https://registry.npmjs.org/@discordjs/ws/-/ws-1.0.2.tgz" + resolved "https://registry.yarnpkg.com/@discordjs/ws/-/ws-1.0.2.tgz#3933b12d4686aabf6a95dfe5fb6e744342a661d1" integrity sha512-+XI82Rm2hKnFwAySXEep4A7Kfoowt6weO6381jgW+wVdTpMS/56qCvoXyFRY0slcv7c/U8My2PwIB2/wEaAh7Q== dependencies: "@discordjs/collection" "^2.0.0" @@ -113,16 +113,16 @@ "@fastify/busboy@^2.0.0": version "2.1.0" - resolved "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== "@humanwhocodes/config-array@^0.11.13": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -130,14 +130,14 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== "@ioredis/commands@^1.1.1": version "1.2.0" - resolved "https://registry.npmjs.org/@ioredis/commands/-/commands-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/@ioredis/commands/-/commands-1.2.0.tgz#6d61b3097470af1fdbbe622795b8921d42018e11" integrity sha512-Sx1pU8EM64o2BrqNpEO1CNLtKQwyhuXuqyfH7oGKCk+1a33d2r5saW8zNwm3j6BTExtjrv2BxTgzzkMwts6vGg== "@jridgewell/resolve-uri@^3.0.3": @@ -159,9 +159,9 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@mongodb-js/saslprep@^1.1.0": - version "1.1.1" - resolved "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz" - integrity sha512-t7c5K033joZZMspnHg/gWPE4kandgc2OxE74aYOtGKfgB9VPuVJPix0H6fhmm2erj5PBJ21mqcx34lpIGtUCsQ== + version "1.1.3" + resolved "https://registry.yarnpkg.com/@mongodb-js/saslprep/-/saslprep-1.1.3.tgz#ef77edae4061cdc856ea2d355d582e9b49fae8fe" + integrity sha512-SyCxhJfmK6MoLNV5SbDpNdUy9SDv5H7y9/9rl3KpnwgTHWuNNMc87zWqbcIZXNWY+aUjxLGLEcvHoLagG4tWCg== dependencies: sparse-bitfield "^3.0.3" @@ -187,23 +187,28 @@ fastq "^1.6.0" "@sapphire/async-queue@^1.5.0": - version "1.5.0" - resolved "https://registry.npmjs.org/@sapphire/async-queue/-/async-queue-1.5.0.tgz" - integrity sha512-JkLdIsP8fPAdh9ZZjrbHWR/+mZj0wvKS5ICibcLrRI1j84UmLMshx5n9QmL8b95d4onJ2xxiyugTgSAX7AalmA== + version "1.5.1" + resolved "https://registry.yarnpkg.com/@sapphire/async-queue/-/async-queue-1.5.1.tgz#f72f8f0dea05e83ba830387567dd6ef8a996537a" + integrity sha512-1RdpsmDQR/aWfp8oJzPtn4dNQrbpqSL5PIA0uAB/XwerPXUf994Ug1au1e7uGcD7ei8/F63UDjr5GWps1g/HxQ== "@sapphire/shapeshift@^3.9.3": - version "3.9.3" - resolved "https://registry.npmjs.org/@sapphire/shapeshift/-/shapeshift-3.9.3.tgz" - integrity sha512-WzKJSwDYloSkHoBbE8rkRW8UNKJiSRJ/P8NqJ5iVq7U2Yr/kriIBx2hW+wj2Z5e5EnXL1hgYomgaFsdK6b+zqQ== + version "3.9.5" + resolved "https://registry.yarnpkg.com/@sapphire/shapeshift/-/shapeshift-3.9.5.tgz#2abe8a6626a6e73a80e249d306e58150c53d4c05" + integrity sha512-AGdHe+51gF7D3W8hBfuSFLBocURDCXVQczScTHXDS3RpNjNgrktIx/amlz5y8nHhm8SAdFt/X8EF8ZSfjJ0tnA== dependencies: fast-deep-equal "^3.1.3" lodash "^4.17.21" -"@sapphire/snowflake@3.5.1", "@sapphire/snowflake@^3.5.1": +"@sapphire/snowflake@3.5.1": version "3.5.1" - resolved "https://registry.npmjs.org/@sapphire/snowflake/-/snowflake-3.5.1.tgz" + resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.1.tgz#254521c188b49e8b2d4cc048b475fb2b38737fec" integrity sha512-BxcYGzgEsdlG0dKAyOm0ehLGm2CafIrfQTZGWgkfKYbj+pNNsorZ7EotuZukc2MT70E0UbppVbtpBrqpzVzjNA== +"@sapphire/snowflake@^3.5.1": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@sapphire/snowflake/-/snowflake-3.5.2.tgz#ca3d11a0011563c90b103f8ef398f2dea3e7beb4" + integrity sha512-FTm9RdyELF21PQN5dS/HLRs90XqWclHa+p0gkonc+BA2X2QKfFySHSjUbO65rmArd/ghR9Ahj2fMfedTZEqzOw== + "@tsconfig/node10@^1.0.7": version "1.0.9" resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" @@ -230,23 +235,16 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/luxon@~3.3.0": - version "3.3.7" - resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.7.tgz#043d413b6492a012de47503907bdf3ec4f827933" - integrity sha512-gKc9P2d4g5uYwmy4s/MO/yOVPmvHyvzka1YH6i5dM03UrFofHSmgc0D0ymbDRStFWHusk6cwwF6nhLm/ckBbbQ== + version "3.3.8" + resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.3.8.tgz#84dbf2d020a9209a272058725e168f21d331a67e" + integrity sha512-jYvz8UMLDgy3a5SkGJne8H7VA7zPV2Lwohjx0V8V31+SqAjNmurWMkk9cQhfvlcnXWudBpK9xPM1n4rljOcHYQ== "@types/ms@^0.7.34": version "0.7.34" - resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.34.tgz" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433" integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g== -"@types/node@*": - version "20.10.5" - resolved "https://registry.npmjs.org/@types/node/-/node-20.10.5.tgz" - integrity sha512-nNPsNE65wjMxEKI93yOP+NPGGBJz/PoN3kZsVLee0XMiJolxSekEVD8wRwBUBqkwc7UWop0edW50yrCQW4CyRw== - dependencies: - undici-types "~5.26.4" - -"@types/node@^20.11.0": +"@types/node@*", "@types/node@^20.11.0": version "20.11.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.11.0.tgz#8e0b99e70c0c1ade1a86c4a282f7b7ef87c9552f" integrity sha512-o9bjXmDNcF7GbM4CNQpmi+TutCgap/K3w1JyKgxAjqx41zp9qlIAVFi0IhCNsJcXolEqLWhbFbEeL0PvYm4pcQ== @@ -260,12 +258,12 @@ "@types/webidl-conversions@*": version "7.0.3" - resolved "https://registry.npmjs.org/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz" + resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859" integrity sha512-CiJJvcRtIgzadHCYXw7dqEnMNRjhGZlYK05Mj9OyktqV8uVT8fD2BFOB7S1uwBE3Kj2Z+4UyPmFw/Ixgw/LAlA== "@types/whatwg-url@^8.2.1": version "8.2.2" - resolved "https://registry.npmjs.org/@types/whatwg-url/-/whatwg-url-8.2.2.tgz" + resolved "https://registry.yarnpkg.com/@types/whatwg-url/-/whatwg-url-8.2.2.tgz#749d5b3873e845897ada99be4448041d4cc39e63" integrity sha512-FtQu10RWgn3D9U4aazdwIE2yzphmTJREDqNdODHrbrZmmMqI0vMheC/6NE/J1Yveaj8H+ela+YwWTjq5PGmuhA== dependencies: "@types/node" "*" @@ -273,14 +271,14 @@ "@types/ws@8.5.9": version "8.5.9" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.9.tgz#384c489f99c83225a53f01ebc3eddf3b8e202a8c" integrity sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg== dependencies: "@types/node" "*" "@types/ws@^8.5.9": version "8.5.10" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.10.tgz#4acfb517970853fa6574a3a6886791d04a396787" integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== dependencies: "@types/node" "*" @@ -377,9 +375,9 @@ integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== "@vladfrangu/async_event_emitter@^2.2.2": - version "2.2.2" - resolved "https://registry.npmjs.org/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.2.tgz" - integrity sha512-HIzRG7sy88UZjBJamssEczH5q7t5+axva19UbZLO6u0ySbYPrwzWiXBcC0WuHyhKKoeCyneH+FvYzKQq/zTtkQ== + version "2.2.4" + resolved "https://registry.yarnpkg.com/@vladfrangu/async_event_emitter/-/async_event_emitter-2.2.4.tgz#d3537432c6db6444680a596271dff8ea407343b3" + integrity sha512-ButUPz9E9cXMLgvAW8aLAKKJJsPu1dY1/l/E8xzLFuysowXygs6GBcyunK9rnGC4zTsnIc2mQo71rGw9U+Ykug== acorn-jsx@^5.3.2: version "5.3.2" @@ -387,16 +385,11 @@ acorn-jsx@^5.3.2: integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: - version "8.3.1" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.1.tgz#2f10f5b69329d90ae18c58bf1fa8fccd8b959a43" - integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== + version "8.3.2" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa" + integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -acorn@^8.4.1: - version "8.11.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== - -acorn@^8.9.0: +acorn@^8.4.1, acorn@^8.9.0: version "8.11.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a" integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== @@ -440,7 +433,7 @@ array-union@^2.1.0: asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== axios@^1.6.5: @@ -481,7 +474,7 @@ braces@^3.0.2: bson@^5.5.0: version "5.5.1" - resolved "https://registry.npmjs.org/bson/-/bson-5.5.1.tgz" + resolved "https://registry.yarnpkg.com/bson/-/bson-5.5.1.tgz#f5849d405711a7f23acdda9a442375df858e6833" integrity sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g== callsites@^3.0.0: @@ -489,7 +482,7 @@ callsites@^3.0.0: resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -chalk@^4.0.0: +chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -499,7 +492,7 @@ chalk@^4.0.0: cluster-key-slot@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz" + resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.2.tgz#88ddaa46906e303b5de30d3153b7d9fe0a0c19ac" integrity sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA== color-convert@^2.0.1: @@ -516,7 +509,7 @@ color-name@~1.1.4: combined-stream@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== dependencies: delayed-stream "~1.0.0" @@ -548,9 +541,9 @@ cross-spawn@^7.0.2: shebang-command "^2.0.0" which "^2.0.1" -debug@4.x, debug@^4.1.1, debug@^4.3.2, debug@^4.3.4: +debug@4.x, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" @@ -562,12 +555,12 @@ deep-is@^0.1.3: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== denque@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/denque/-/denque-2.1.0.tgz#e93e1a6569fb5e66f16a3c2a2964617d349d6ab1" integrity sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw== diff@^4.0.1: @@ -584,7 +577,7 @@ dir-glob@^3.0.1: discord-api-types@0.37.61: version "0.37.61" - resolved "https://registry.npmjs.org/discord-api-types/-/discord-api-types-0.37.61.tgz" + resolved "https://registry.yarnpkg.com/discord-api-types/-/discord-api-types-0.37.61.tgz#9dd8e58c624237e6f1b23be2d29579af268b8c5b" integrity sha512-o/dXNFfhBpYHpQFdT6FWzeO7pKc838QeeZ9d91CfVAtpr5XLK4B/zYxQbYgPdoMiTDvJfzcsLW5naXgmHGDNXw== discord.js@^14.14.1: @@ -716,7 +709,7 @@ esutils@^2.0.2: fast-deep-equal@3.1.3, fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9: @@ -790,7 +783,7 @@ follow-redirects@^1.15.4: form-data@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== dependencies: asynckit "^0.4.0" @@ -890,7 +883,7 @@ inherits@2: ioredis@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/ioredis/-/ioredis-5.3.2.tgz" + resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-5.3.2.tgz#9139f596f62fc9c72d873353ac5395bcf05709f7" integrity sha512-1DKMMzlIHM02eBBVOFQ1+AolGjs6+xEcM4PDL7NqOS6szq7H9jSaEkIUH6/a5Hl241LzW6JLSiAbNvTQjUupUA== dependencies: "@ioredis/commands" "^1.1.1" @@ -905,7 +898,7 @@ ioredis@^5.3.2: ip@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== is-extglob@^2.1.1: @@ -959,7 +952,7 @@ json-stable-stringify-without-jsonify@^1.0.1: kareem@2.5.1: version "2.5.1" - resolved "https://registry.npmjs.org/kareem/-/kareem-2.5.1.tgz" + resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.5.1.tgz#7b8203e11819a8e77a34b3517d3ead206764d15d" integrity sha512-7jFxRVm+jD+rkq3kY0iZDJfsO2/t4BBPeEb2qKn2lR/9KhuksYk5hxzfRYWMPV8P/x2d0kHD306YyWLzjjH+uA== keyv@^4.5.3: @@ -986,12 +979,12 @@ locate-path@^6.0.0: lodash.defaults@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ== lodash.isarguments@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" integrity sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg== lodash.merge@^4.6.2: @@ -1001,12 +994,12 @@ lodash.merge@^4.6.2: lodash.snakecase@4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" + resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== lodash@^4.17.21: version "4.17.21" - resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== lru-cache@^6.0.0: @@ -1022,9 +1015,9 @@ luxon@~3.4.0: integrity sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA== magic-bytes.js@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/magic-bytes.js/-/magic-bytes.js-1.5.0.tgz" - integrity sha512-wJkXvutRbNWcc37tt5j1HyOK1nosspdh3dj6LUYYAvF6JYNqs53IfRvK9oEpcwiDA1NdoIi64yAMfdivPeVAyw== + version "1.8.0" + resolved "https://registry.yarnpkg.com/magic-bytes.js/-/magic-bytes.js-1.8.0.tgz#8362793c60cd77c2dd77db6420be727192df68e2" + integrity sha512-lyWpfvNGVb5lu8YUAbER0+UMBTdR63w2mcSUlhhBTyVbxJvjgqwyAf3AZD6MprgK0uHuBoWXSDAMWLupX83o3Q== make-error@^1.1.1: version "1.3.6" @@ -1033,7 +1026,7 @@ make-error@^1.1.1: memory-pager@^1.0.2: version "1.5.0" - resolved "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz" + resolved "https://registry.yarnpkg.com/memory-pager/-/memory-pager-1.5.0.tgz#d8751655d22d384682741c972f2c3d6dfa3e66b5" integrity sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg== merge2@^1.3.0, merge2@^1.4.1: @@ -1051,12 +1044,12 @@ micromatch@^4.0.4: mime-db@1.52.0: version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== mime-types@^2.1.12: version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== dependencies: mime-db "1.52.0" @@ -1077,7 +1070,7 @@ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: mongodb-connection-string-url@^2.6.0: version "2.6.0" - resolved "https://registry.npmjs.org/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz" + resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-2.6.0.tgz#57901bf352372abdde812c81be47b75c6b2ec5cf" integrity sha512-WvTZlI9ab0QYtTYnuMLgobULWhokRjtC7db9LtcVfJ+Hsnyr5eo6ZtNAt3Ly24XZScGMelOcGtm7lSn0332tPQ== dependencies: "@types/whatwg-url" "^8.2.1" @@ -1109,24 +1102,24 @@ mongoose@^7.6.8: mpath@0.9.0: version "0.9.0" - resolved "https://registry.npmjs.org/mpath/-/mpath-0.9.0.tgz" + resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.9.0.tgz#0c122fe107846e31fc58c75b09c35514b3871904" integrity sha512-ikJRQTk8hw5DEoFVxHG1Gn9T/xcjtdnOKIU1JTmGjZZlg9LST2mBLmcX3/ICIbgJydT2GOc15RnNy5mHmzfSew== mquery@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/mquery/-/mquery-5.0.0.tgz" + resolved "https://registry.yarnpkg.com/mquery/-/mquery-5.0.0.tgz#a95be5dfc610b23862df34a47d3e5d60e110695d" integrity sha512-iQMncpmEK8R8ncT8HJGsGc9Dsp8xcgYMVSbs5jgnm1lFHTZqMJTUWTDx1LBO8+mK3tPNZWFLBghQEIOULSTHZg== dependencies: debug "4.x" ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.1.3, ms@^2.1.3: version "2.1.3" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== natural-compare@^1.4.0: @@ -1176,7 +1169,7 @@ parent-module@^1.0.0: parse-ms@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/parse-ms/-/parse-ms-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/parse-ms/-/parse-ms-3.0.0.tgz#3ea24a934913345fcc3656deda72df921da3a70e" integrity sha512-Tpb8Z7r7XbbtBTrM9UhpkzzaMrqA2VXMT3YChzYltwV3P3pM6t8wl7TvpMnSTosz1aQAdVib7kdoys7vYOPerw== path-exists@^4.0.0: @@ -1216,19 +1209,19 @@ prettier@^3.2.0: pretty-ms@^8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/pretty-ms/-/pretty-ms-8.0.0.tgz" + resolved "https://registry.yarnpkg.com/pretty-ms/-/pretty-ms-8.0.0.tgz#a35563b2a02df01e595538f86d7de54ca23194a3" integrity sha512-ASJqOugUF1bbzI35STMBUpZqdfYKlJugy6JBziGi2EE+AL5JPJGSzvpeVXojxrr0ViUYoToUjb5kjSEGf7Y83Q== dependencies: parse-ms "^3.0.0" proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== punycode@^2.1.0, punycode@^2.1.1: version "2.3.1" - resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== queue-microtask@^1.2.2: @@ -1238,12 +1231,12 @@ queue-microtask@^1.2.2: redis-errors@^1.0.0, redis-errors@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/redis-errors/-/redis-errors-1.2.0.tgz" + resolved "https://registry.yarnpkg.com/redis-errors/-/redis-errors-1.2.0.tgz#eb62d2adb15e4eaf4610c04afe1529384250abad" integrity sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w== redis-parser@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/redis-parser/-/redis-parser-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/redis-parser/-/redis-parser-3.0.0.tgz#b66d828cdcafe6b4b8a428a7def4c6bcac31c8b4" integrity sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A== dependencies: redis-errors "^1.0.0" @@ -1293,7 +1286,7 @@ shebang-regex@^3.0.0: sift@16.0.1: version "16.0.1" - resolved "https://registry.npmjs.org/sift/-/sift-16.0.1.tgz" + resolved "https://registry.yarnpkg.com/sift/-/sift-16.0.1.tgz#e9c2ccc72191585008cf3e36fc447b2d2633a053" integrity sha512-Wv6BjQ5zbhW7VFefWusVP33T/EM0vYikCaQ2qR8yULbsilAT8/wQaXvuQ3ptGLpoKx+lihJE3y2UTgKDyyNHZQ== slash@^3.0.0: @@ -1303,12 +1296,12 @@ slash@^3.0.0: smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== socks@^2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: ip "^2.0.0" @@ -1316,14 +1309,14 @@ socks@^2.7.1: sparse-bitfield@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz" + resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" integrity sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ== dependencies: memory-pager "^1.0.2" standard-as-callback@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/standard-as-callback/-/standard-as-callback-2.1.0.tgz" + resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== strip-ansi@^6.0.1: @@ -1359,7 +1352,7 @@ to-regex-range@^5.0.1: tr46@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-3.0.0.tgz#555c4e297a950617e8eeddef633c87d4d9d6cbf9" integrity sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA== dependencies: punycode "^2.1.1" @@ -1371,7 +1364,7 @@ ts-api-utils@^1.0.1: ts-mixer@^6.0.3: version "6.0.3" - resolved "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.3.tgz" + resolved "https://registry.yarnpkg.com/ts-mixer/-/ts-mixer-6.0.3.tgz#69bd50f406ff39daa369885b16c77a6194c7cae6" integrity sha512-k43M7uCG1AkTyxgnmI5MPwKoUvS/bRvLvUb7+Pgpdlmok8AoqmUaZxUUw8zKM5B1lqZrt41GjYgnvAi0fppqgQ== ts-node@^10.9.2: @@ -1395,7 +1388,7 @@ ts-node@^10.9.2: tslib@2.6.2, tslib@^2.6.2: version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== type-check@^0.4.0, type-check@~0.4.0: @@ -1417,12 +1410,12 @@ typescript@^5.3.3: undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== undici@5.27.2: version "5.27.2" - resolved "https://registry.npmjs.org/undici/-/undici-5.27.2.tgz" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== dependencies: "@fastify/busboy" "^2.0.0" @@ -1441,12 +1434,12 @@ v8-compile-cache-lib@^3.0.1: webidl-conversions@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a" integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== whatwg-url@^11.0.0: version "11.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018" integrity sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ== dependencies: tr46 "^3.0.0" @@ -1464,11 +1457,16 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -ws@8.14.2, ws@^8.14.2: +ws@8.14.2: version "8.14.2" - resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== +ws@^8.14.2: + version "8.16.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.16.0.tgz#d1cd774f36fbc07165066a60e40323eab6446fd4" + integrity sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" From 9c0c326dbc416cb88846d5d637c78a40ea51d6e9 Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 20:09:38 +0100 Subject: [PATCH 06/12] Updated snipecache setter --- src/events/server/messages/snipecache.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/events/server/messages/snipecache.ts b/src/events/server/messages/snipecache.ts index bcd0bc2..e017d8d 100644 --- a/src/events/server/messages/snipecache.ts +++ b/src/events/server/messages/snipecache.ts @@ -3,7 +3,6 @@ import { Event } from "../../../interfaces" import snipeCacheSchema from "../../../schemas/snipeCacheSchema" import mongoose from "mongoose" import { SnipeCache } from "../../../utils/Types" -import env from "../../../utils/Env" export = { name: "snipecache", @@ -14,7 +13,6 @@ export = { async execute(message: Message) { if (message.channel.type !== ChannelType.GuildText) return if (message.author.bot) return - if (message.author.id !== env.prod.dev) return const msg: SnipeCache = { author: message.author.id, From a6254a2493a33e1abbc80c1bfbce99a2333da3d9 Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 20:10:18 +0100 Subject: [PATCH 07/12] Updated dev flag --- src/commands/snipe.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/commands/snipe.ts b/src/commands/snipe.ts index 53a3e12..eabdf1f 100644 --- a/src/commands/snipe.ts +++ b/src/commands/snipe.ts @@ -9,7 +9,7 @@ export = { description: "Snipes the last deleted message of a user", type: "slash", public: true, - dev: false, + dev: true, data: new SlashCommandBuilder() .setName("snipe") From 45762c19d646673a8e8030560702a0490e41a288 Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 20:52:05 +0100 Subject: [PATCH 08/12] Updated to new color script --- src/events/cron/weeklyGexp.ts | 3 ++- src/events/server/interactions/logBtnsCmds.ts | 10 +++++--- src/events/server/ready/consolelog.ts | 3 ++- src/utils/Autodeploy.ts | 24 ++++++------------- src/utils/Client.ts | 7 +++--- src/utils/Illegitimate.ts | 5 ++-- src/utils/functions/colors.ts | 15 +++++++++++- 7 files changed, 39 insertions(+), 28 deletions(-) diff --git a/src/events/cron/weeklyGexp.ts b/src/events/cron/weeklyGexp.ts index b8df0d3..ad25f16 100644 --- a/src/events/cron/weeklyGexp.ts +++ b/src/events/cron/weeklyGexp.ts @@ -4,6 +4,7 @@ import { color, devMessage, } from "../../../config/options.json" +import colorLog from "../../utils/functions/colors" import { getGuild, getIGN } from "../../utils/Hypixel" import { Cron, GuildData } from "../../interfaces" import Illegitimate from "../../utils/Illegitimate" @@ -16,7 +17,7 @@ async function guildWeekly() { ) as TextChannel if (!channel) { - console.log("Guild log channel not found") + console.log(colorLog("Guild log channel not found", "red")) return } diff --git a/src/events/server/interactions/logBtnsCmds.ts b/src/events/server/interactions/logBtnsCmds.ts index 9acc705..7b385e2 100644 --- a/src/events/server/interactions/logBtnsCmds.ts +++ b/src/events/server/interactions/logBtnsCmds.ts @@ -1,4 +1,5 @@ import { ChatInputCommandInteraction, ButtonInteraction } from "discord.js" +import color from "../../../utils/functions/colors" import { Event } from "../../../interfaces" export = { @@ -10,29 +11,32 @@ export = { execute(interaction: ChatInputCommandInteraction | ButtonInteraction) { if (interaction.isCommand()) { try { - console.log( + console.log(color( interaction.user.username + " ran " + interaction.commandName + " " + interaction.options.getSubcommand(), + "pink") ) } catch { - console.log( + console.log(color( interaction.user.username + " ran " + interaction.commandName, + "pink") ) } } if (interaction.isButton()) { - console.log( + console.log(color( interaction.user.username + "#" + interaction.user.discriminator + " clicked " + interaction.customId, + "pink") ) return } diff --git a/src/events/server/ready/consolelog.ts b/src/events/server/ready/consolelog.ts index 6486b78..9759050 100644 --- a/src/events/server/ready/consolelog.ts +++ b/src/events/server/ready/consolelog.ts @@ -1,5 +1,6 @@ import { Event } from "../../../interfaces" import { ExtendedClient as Client } from "../../../utils/Client" +import color from "../../../utils/functions/colors" export = { name: "conolelog", @@ -8,6 +9,6 @@ export = { event: "ready", execute(client: Client) { - console.log("Logged in as " + client.user!.tag + "!") + console.log(color("Logged in as " + client.user!.tag + "!", "green")) }, } as Event diff --git a/src/utils/Autodeploy.ts b/src/utils/Autodeploy.ts index 3c2b8a3..b7eec34 100644 --- a/src/utils/Autodeploy.ts +++ b/src/utils/Autodeploy.ts @@ -1,7 +1,6 @@ import { Command } from "../interfaces" -import chalk from "chalk" +import color from "./functions/colors" import env from "./Env" -// import color from "./functions/colors" import { REST, RESTGetAPIApplicationGuildCommandResult, @@ -11,9 +10,6 @@ import { import fs = require("fs") type FileType = "js" | "ts" -const oldColor = chalk.hex("#f38ba8") -const newColor = chalk.hex("#b4befe") - export default async function autoDeployCommands(fileType: FileType) { const commands = [] let commandFiles: string[] = [] @@ -90,21 +86,17 @@ export default async function autoDeployCommands(fileType: FileType) { JSON.stringify(sortedCurrentCommandsInfo) ) { console.log( - // color.colorize("Commands are the same, skipping deploy.", "green"), - newColor("Commands are the same, skipping deploy."), + color("Commands are the same, skipping deploy.", "lavender"), ) - // console.log(color.colorize(newCmds, "green")) - console.log(newColor(newCmds)) + console.log(color(newCmds, "lavender")) return } try { console.log( - // color.colorize("Commands are different, starting deploy.", "red"), - oldColor("Commands are different, starting deploy."), + color("Commands are different, starting deploy.", "red"), ) - // console.log(color.colorize(currentCmds, "red")) - console.log(oldColor(currentCmds)) + console.log(color(currentCmds, "red")) console.log( `Started refreshing ${commands.length} application (/) commands.`, ) @@ -114,10 +106,8 @@ export default async function autoDeployCommands(fileType: FileType) { { body: commands }, )) as RESTPutAPIApplicationGuildCommandsJSONBody[] - // console.log(color.colorize("New commands deployed.", "green")) - // console.log(color.colorize(newCmds, "green")) - console.log(newColor("New commands deployed.")) - console.log(newColor(newCmds)) + console.log(color("New commands deployed.", "lavender")) + console.log(color(newCmds, "lavender")) console.log( `Successfully reloaded ${data.length} application (/) commands.`, ) diff --git a/src/utils/Client.ts b/src/utils/Client.ts index 20af18d..9a0b1cb 100644 --- a/src/utils/Client.ts +++ b/src/utils/Client.ts @@ -1,4 +1,5 @@ import { Client, Collection, GatewayIntentBits, Partials } from "discord.js" +import color from "./functions/colors" import { Command } from "../interfaces" import { ContextMenu } from "../interfaces" import { Button } from "../interfaces" @@ -37,17 +38,17 @@ export class ExtendedClient extends Client { async start() { let token: string if (process.env.NODE_ENV === "dev" && process.env.TYPESCRIPT) { - console.log("Running in development mode. [ts-node]") + console.log(color("Running in development mode. [ts-node]", "lavender")) loadAllEvents(this, "ts") token = env.dev.devtoken! autoDeployCommands("ts") } else if (process.env.NODE_ENV === "dev" && !process.env.TYPESCRIPT) { - console.log("Running in development mode.") + console.log(color("Running in development mode.", "lavender")) loadAllEvents(this, "js") token = env.dev.devtoken! autoDeployCommands("js") } else { - console.log("Running in production mode.") + console.log(color("Running in production mode.", "green")) loadAllEvents(this, "js") token = env.prod.token! } diff --git a/src/utils/Illegitimate.ts b/src/utils/Illegitimate.ts index de10feb..5a7bd9b 100644 --- a/src/utils/Illegitimate.ts +++ b/src/utils/Illegitimate.ts @@ -1,4 +1,5 @@ import { ExtendedClient as Client } from "./Client" +import color from "./functions/colors" import { Redis } from "ioredis" import env from "./Env" import { connect } from "mongoose" @@ -13,10 +14,10 @@ class Bot { client.start() loadCronEvents() redis.on("ready", () => { - console.log("Connected to Redis") + console.log(color("Connected to Redis", "green")) }) connect(env.prod.mongoURI!, {}).then(() => { - console.log("Connected to MongoDB") + console.log(color("Connected to MongoDB", "green")) }) } } diff --git a/src/utils/functions/colors.ts b/src/utils/functions/colors.ts index ab55a63..8692d94 100644 --- a/src/utils/functions/colors.ts +++ b/src/utils/functions/colors.ts @@ -1,4 +1,17 @@ +import chalk from "chalk" + const colors = { + red: "#f38ba8", + lavender: "#b4befe", + green: "#a6e3a1", + pink: "#f5c2e7" +} + +export default function color(text: string, type: keyof typeof colors) { + return chalk.hex(colors[type])(text) +} + +/* const colors = { reset: "\x1b[0m", bright: "\x1b[1m", dim: "\x1b[2m", @@ -28,4 +41,4 @@ const colors = { export default function colorize(text: string, color: keyof typeof colors) { return colors[color] + text + colors.reset -} \ No newline at end of file +} */ \ No newline at end of file From 56f74e4e1b38cbb0470c26a561405aabe25a6e1a Mon Sep 17 00:00:00 2001 From: Taken Date: Fri, 12 Jan 2024 21:18:58 +0100 Subject: [PATCH 09/12] Usded color log in event handlers --- src/utils/eventHandlers/autocomplete.ts | 6 ++++-- src/utils/eventHandlers/button.ts | 6 ++++-- src/utils/eventHandlers/command.ts | 6 ++++-- src/utils/eventHandlers/contextmenu.ts | 6 ++++-- src/utils/eventHandlers/modal.ts | 8 +++++--- 5 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/utils/eventHandlers/autocomplete.ts b/src/utils/eventHandlers/autocomplete.ts index 3d9dc3e..cc8e7f4 100644 --- a/src/utils/eventHandlers/autocomplete.ts +++ b/src/utils/eventHandlers/autocomplete.ts @@ -2,6 +2,7 @@ import { ExtendedClient as Client } from "../Client" import { color } from "../../../config/options.json" import { Autocomplete } from "../../interfaces" import { Events } from "discord.js" +import colorLog from "../functions/colors" import path = require("path") import fs = require("fs") import logToChannel from "../functions/logtochannel" @@ -31,9 +32,10 @@ export default function loadAutocompleteEvents(client: Client, ft: FileType) { ) { client.autocomplete.set(autocomplete.name, autocomplete) } else { - console.log( + console.log(colorLog( `[WARNING] The autocomplete at ${filePath} is missing a required "name", "execute" or "type" property.`, - ) + "red" + )) } } diff --git a/src/utils/eventHandlers/button.ts b/src/utils/eventHandlers/button.ts index d8e7516..091a862 100644 --- a/src/utils/eventHandlers/button.ts +++ b/src/utils/eventHandlers/button.ts @@ -1,4 +1,5 @@ import { ExtendedClient as Client } from "../Client" +import colorLog from "../functions/colors" import { color } from "../../../config/options.json" import { Button } from "../../interfaces" import { Events } from "discord.js" @@ -19,9 +20,10 @@ export default function loadButtonEvents(client: Client, ft: FileType) { if ("name" in btn && "execute" in btn && btn.type === "button") { client.buttons.set(btn.name, btn) } else { - console.log( + console.log(colorLog( `[WARNING] The button at ${filePath} is missing a required "name", "execute" or "type" property.`, - ) + "red" + )) } } diff --git a/src/utils/eventHandlers/command.ts b/src/utils/eventHandlers/command.ts index 7fa329b..b37c975 100644 --- a/src/utils/eventHandlers/command.ts +++ b/src/utils/eventHandlers/command.ts @@ -1,4 +1,5 @@ import { ExtendedClient as Client } from "../Client" +import colorLog from "../functions/colors" import { color } from "../../../config/options.json" import { Command } from "../../interfaces" import { Events } from "discord.js" @@ -19,9 +20,10 @@ export default function loadSlashCommandsEvents(client: Client, ft: FileType) { if ("data" in cmd && "execute" in cmd && cmd.type === "slash") { client.commands.set(cmd.data.name, cmd) } else { - console.log( + console.log(colorLog( `[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`, - ) + "red" + )) } } diff --git a/src/utils/eventHandlers/contextmenu.ts b/src/utils/eventHandlers/contextmenu.ts index 97c1709..22635d3 100644 --- a/src/utils/eventHandlers/contextmenu.ts +++ b/src/utils/eventHandlers/contextmenu.ts @@ -1,4 +1,5 @@ import { ExtendedClient as Client } from "../Client" +import colorLog from "../functions/colors" import { ContextMenu } from "../../interfaces" import { color } from "../../../config/options.json" import { Events } from "discord.js" @@ -26,9 +27,10 @@ export default function loadContextMenuEvents(client: Client, ft: FileType) { if ("data" in cmd && "execute" in cmd && cmd.type === "contextmenu") { client.contextmenus.set(cmd.data.name, cmd) } else { - console.log( + console.log(colorLog( `[WARNING] The command at ${filePath} is missing a required "data", "execute" or "type" property.`, - ) + "red" + )) } } diff --git a/src/utils/eventHandlers/modal.ts b/src/utils/eventHandlers/modal.ts index 4c5b3b9..b23c89b 100644 --- a/src/utils/eventHandlers/modal.ts +++ b/src/utils/eventHandlers/modal.ts @@ -1,7 +1,8 @@ import { ExtendedClient as Client } from "../Client" +import colorLog from "../functions/colors" import { color } from "../../../config/options.json" import { Modal } from "../../interfaces" -import { Events} from "discord.js" +import { Events } from "discord.js" import path = require("path") import fs = require("fs") import logToChannel from "../functions/logtochannel" @@ -21,9 +22,10 @@ export default function loadModalEvents(client: Client, ft: FileType) { if ("name" in modal && "execute" in modal && modal.type === "modal") { client.modals.set(modal.name, modal) } else { - console.log( + console.log(colorLog( `[WARNING] The modal at ${filePath} is missing a required "name", "execute" or "type" property.`, - ) + "red" + )) } } From 5a1db240308c358b60102bddc3ebda90086afb40 Mon Sep 17 00:00:00 2001 From: Taken Date: Sat, 13 Jan 2024 16:48:19 +0100 Subject: [PATCH 10/12] Updated mongoose --- package.json | 2 +- yarn.lock | 52 ++++++++++++++++------------------------------------ 2 files changed, 17 insertions(+), 37 deletions(-) diff --git a/package.json b/package.json index 7b66c77..345ce0e 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "discord.js": "^14.14.1", "dotenv": "^16.3.1", "ioredis": "^5.3.2", - "mongoose": "^7.6.8", + "mongoose": "^8.0.4", "ms": "^2.1.3", "pretty-ms": "^8.0.0" }, diff --git a/yarn.lock b/yarn.lock index 946fc65..9cd7ceb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -472,10 +472,10 @@ braces@^3.0.2: dependencies: fill-range "^7.0.1" -bson@^5.5.0: - version "5.5.1" - resolved "https://registry.yarnpkg.com/bson/-/bson-5.5.1.tgz#f5849d405711a7f23acdda9a442375df858e6833" - integrity sha512-ix0EwukN2EpC0SRWIj/7B5+A6uQMQy6KMREI9qQqvgpkV2frH63T0UDVd1SYedL6dNCmDBYB3QtXi4ISk9YT+g== +bson@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/bson/-/bson-6.2.0.tgz#4b6acafc266ba18eeee111373c2699304a9ba0a3" + integrity sha512-ID1cI+7bazPDyL9wYy9GaQ8gEEohWvcUl/Yf0dIdutJxnmInEEyCsb4awy/OiBfall7zBA179Pahi3vCdFze3Q== callsites@^3.0.0: version "3.1.0" @@ -896,11 +896,6 @@ ioredis@^5.3.2: redis-parser "^3.0.0" standard-as-callback "^2.1.0" -ip@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" - integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== - is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" @@ -1076,25 +1071,23 @@ mongodb-connection-string-url@^2.6.0: "@types/whatwg-url" "^8.2.1" whatwg-url "^11.0.0" -mongodb@5.9.1: - version "5.9.1" - resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-5.9.1.tgz#da03ea253b0972bf8097301fa5f65e34acad18fa" - integrity sha512-NBGA8AfJxGPeB12F73xXwozt8ZpeIPmCUeWRwl9xejozTXFes/3zaep9zhzs1B/nKKsw4P3I4iPfXl3K7s6g+Q== +mongodb@6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/mongodb/-/mongodb-6.2.0.tgz#2c9dcb3eeaf528ed850e94b3df392de6c6b0d7ab" + integrity sha512-d7OSuGjGWDZ5usZPqfvb36laQ9CPhnWkAGHT61x5P95p/8nMVeH8asloMwW6GcYFeB0Vj4CB/1wOTDG2RA9BFA== dependencies: - bson "^5.5.0" - mongodb-connection-string-url "^2.6.0" - socks "^2.7.1" - optionalDependencies: "@mongodb-js/saslprep" "^1.1.0" + bson "^6.2.0" + mongodb-connection-string-url "^2.6.0" -mongoose@^7.6.8: - version "7.6.8" - resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-7.6.8.tgz#2b088f0d2b8943f0748e99f7010124877830bcf9" - integrity sha512-q9zAySH+UtOK5yonWyNcLfq3PxrY6s4gdta4qNGKNOE2yTVoY9FP4hQtvWYnv4rkdk7T8QmQMC7bbhJjDxIunw== +mongoose@^8.0.4: + version "8.0.4" + resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-8.0.4.tgz#d1177529f4e4eca327506f4fc0a304754081d9cd" + integrity sha512-wN9qvdevX3+922VnLT7CpaZRT3jmVCBOK2QMHMGeScQxDRnFMPpkuI9StEPpZo/3x8t+kbzH7F8RMPsyNwyM4w== dependencies: - bson "^5.5.0" + bson "^6.2.0" kareem "2.5.1" - mongodb "5.9.1" + mongodb "6.2.0" mpath "0.9.0" mquery "5.0.0" ms "2.1.3" @@ -1294,19 +1287,6 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -smart-buffer@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" - integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== - -socks@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" - integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== - dependencies: - ip "^2.0.0" - smart-buffer "^4.2.0" - sparse-bitfield@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz#ff4ae6e68656056ba4b3e792ab3334d38273ca11" From ed1001fc783ff85b8a626964df12e2c0cc144e9d Mon Sep 17 00:00:00 2001 From: Taken Date: Sat, 13 Jan 2024 16:48:39 +0100 Subject: [PATCH 11/12] Updated guild application accept --- .../buttons/guildapplicationaccept.ts | 99 ++++++++++--------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/src/components/buttons/guildapplicationaccept.ts b/src/components/buttons/guildapplicationaccept.ts index 26f92a9..2b06c69 100644 --- a/src/components/buttons/guildapplicationaccept.ts +++ b/src/components/buttons/guildapplicationaccept.ts @@ -10,6 +10,7 @@ import { waitingListMessage, hypixelGuildID, } from "../../../config/options.json" +import colorLog from "../../utils/functions/colors" import mongoose from "mongoose" import guildapp from "../../schemas/guildAppSchema" import waitingList from "../../schemas/waitinglistSchema" @@ -88,53 +89,6 @@ export = { await applicant.roles.add(waitingListRole) await guildapp.findOneAndDelete({ userID: applicantId }) - // update waiting list - const channel = guild.channels.cache.get( - waitingListChannel, - ) as TextChannel - const wlmessage = await channel!.messages.fetch(waitingListMessage) - - const wlembed = wlmessage.embeds[0] - const accepted = await waitingList.find() - - for (let i = 0; i < accepted.length; i++) { - const uuid = accepted[i].uuid - const guild = await getGuild(uuid) - - if (guild && guild._id === hypixelGuildID) { - await waitingList.findOneAndDelete({ uuid: uuid }) - continue - } - } - - const fields: { name: string; value: string }[] = [] - - for (let i = 0; i < accepted.length; i++) { - const timestamp = Math.floor(accepted[i].timestamp / 1000) - - fields.push({ - name: `${i + 1}. ${accepted[i].IGN}`, - value: `TS: `, - }) - } - - await wlmessage.edit({ - embeds: [ - { - title: wlembed.title!, - description: wlembed.description!, - color: wlembed.color!, - footer: { - text: "Last updated by " + user.username, - icon_url: user.avatarURL() || undefined, - }, - thumbnail: wlembed.thumbnail!, - fields: fields, - timestamp: new Date().toISOString(), - }, - ], - }) - await interaction.editReply({ embeds: [ { @@ -152,5 +106,56 @@ export = { }, ], }) + + if (process.env.NODE_ENV === "dev") return + try { + const channel = guild.channels.cache.get( + waitingListChannel, + ) as TextChannel + const wlmessage = await channel!.messages.fetch(waitingListMessage) + + const wlembed = wlmessage.embeds[0] + const accepted = await waitingList.find() + + for (let i = 0; i < accepted.length; i++) { + const uuid = accepted[i].uuid + const guild = await getGuild(uuid) + + if (guild && guild._id === hypixelGuildID) { + await waitingList.findOneAndDelete({ uuid: uuid }) + continue + } + } + + const fields: { name: string; value: string }[] = [] + + for (let i = 0; i < accepted.length; i++) { + const timestamp = Math.floor(accepted[i].timestamp / 1000) + + fields.push({ + name: `${i + 1}. ${accepted[i].IGN}`, + value: `TS: `, + }) + } + + await wlmessage.edit({ + embeds: [ + { + title: wlembed.title!, + description: wlembed.description!, + color: wlembed.color!, + footer: { + text: "Last updated by " + user.username, + icon_url: user.avatarURL() || undefined, + }, + thumbnail: wlembed.thumbnail!, + fields: fields, + timestamp: new Date().toISOString(), + }, + ], + }) + } catch (err) { + console.log(colorLog("Error while trying to update waiting list.", "red")) + } }, } as Button From 6a1c6c17fd40f72eb1a839bbedc36444c4ef8895 Mon Sep 17 00:00:00 2001 From: Taken Date: Sat, 13 Jan 2024 16:52:48 +0100 Subject: [PATCH 12/12] Updated prettier --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 345ce0e..980d4d8 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@typescript-eslint/eslint-plugin": "^6.18.1", "@typescript-eslint/parser": "^6.18.1", "eslint": "^8.56.0", - "prettier": "^3.2.0", + "prettier": "^3.2.1", "ts-node": "^10.9.2", "typescript": "^5.3.3" }