From 99734d315c425b45219a80f077b96e70a35ecbca Mon Sep 17 00:00:00 2001 From: Dani Date: Wed, 15 May 2024 21:29:46 -0700 Subject: [PATCH] Initial commit (v2) --- bun.lockb | Bin 56659 -> 258524 bytes index.js | 353 ------------------------- package.json | 69 ++--- src/commands/correctperms.js | 41 +++ src/commands/index.js | 18 +- src/commands/ping.js | 2 +- src/events/index.js | 20 +- src/events/messageCreate.js | 41 +++ src/events/ready.js | 14 + src/index.js | 10 +- src/util/deploy.js | 24 +- src/util/helpers.js | 30 +++ src/util/loaders.js | 4 +- .eslintrc.json => unused.eslintrc.json | 0 14 files changed, 192 insertions(+), 434 deletions(-) delete mode 100644 index.js create mode 100644 src/commands/correctperms.js create mode 100644 src/events/messageCreate.js create mode 100644 src/util/helpers.js rename .eslintrc.json => unused.eslintrc.json (100%) diff --git a/bun.lockb b/bun.lockb index c2cfc73b3c29646741109aca9147b6ad168aaf6c..317c88921e090d2fdcb91177a816caca17e54961 100644 GIT binary patch literal 258524 zcmeF4cU+GB8~3j$R4Q5$X-HHeNk*cgiG~&;8dqFtX$c`CTgWPVk0M){Wm7UU%N|h* z*(=X+be_l0dEXCpo_YRz?(fUh=lYKKaU9=yj=F!p*18>IqoXI67DoDmDp@hzj$MF^Mykt0xkPl$3oRJX^bd`&m8lsY4d+iVw?cUhbjru9I{} zWyN*btH1VtTOV49L^0SHQX@wGr-^J{Ka6cqotG1d5~IXHl4!`ChmSJkH-IXDj`I%< zl|;vgMoWoAjUn#~+643nTW_t35>wug4wppPK00-6bV1&m<-*FqlKt%p3$=MqrN z15=&1fk8umVi@P}7?Efg1cmlISp5!)c0jBP0EzqQ&3UnRb$BlaZkj0ivle z&=}WSD98RwMuta3iAACpkVpU6$Uih%ME${G z#6(NNgF_`FN5w3Ic4%+3cw8K|v(#hquqI++#6co)bZm?S;uS}ai4{kU6B)E-{E4Gs zWr5{wFfX{C)EE2&KC-#Lrj=MQ)_ey)l&S_BW_aqZW$AIEGZrp(xhZfKtmRjNu7$3A7 zEe?wl!;Ug#*Z0DXB9R7^w=oroVCWLhfTF#oofv=rUavUc0Wh!8q1DHLC`=qRQfwv? zwT2JQ$3;+#Q@Jyf4~X&)6vKGUhCG&E2E}!*YtGcudJK|8RWInfY`F&5!F93);=%Jw z0Tkmbhj?{B%~Y6vDT8AEsf9?S1xo8(o9$m^S7tvKf#SU6cVqkqMn{XI14W{1P>yj2 zL_~xJ_(zN7fP;UDn|d(g@CFp)P6NewLKsYx%;u-DO8YBH>>p$jIeH}J%X+fB6?2{> zfMT5DsHli26LEZUFLpn$^~SxK_ANl0K)ZdQ7$2Q;)-X9Zesqq~I{(x8rvvf97E8PV zalleYoDCNwTu)8=F#VhfihkljaUIHl;{4M(i4sRggvN@f?(mBVug0 zNYu@qS$82|AMIp=KkO%+Gk-c?B28jomy1N>Ax`Wkjjsgqc>Y#8GWLc-9@n)CDEhtR z#Kh_4%=8N;(?8TdNbCrCY-bLN`?4J<_Qw`D)If;|97PeL7f^}g^146M?kOnFZw_c1 zP}&!CuFyF|`y_@vr|3HTr*&%Q!o+g}{J~O9-0se-LmJnRkXY!wNR$TUI1jnd4%c6F zoH#TF4x|h=zX((l%3FCd{ZIv!gZvgyjC&khAfmyJ*o&zj*Qp!Kib&)Mc^pSOP@I>* zP)V!=$~Sp4$91|1@~D$peFJlacEoT^)BwE?d1cU%5s^TM zMD9=yt`a{%dz_ClxENvn5#(`S&SJ~U;bMe-3L%fDGe0MHA5Lb4iwAb{?|n8 zA2_NcgsC?LMSDxbnDrvhwi^noK@G~wK{0Oq(Tv`MJdWc

kyoTkj5v{=Psv?1u@c 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 literal 56659 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 diff --git a/index.js b/index.js deleted file mode 100644 index 210f18b..0000000 --- a/index.js +++ /dev/null @@ -1,353 +0,0 @@ -import { Client, GatewayIntentBits } from "discord.js"; -import { - joinVoiceChannel, - createAudioPlayer, - createAudioResource, -} from "@discordjs/voice"; - -import fs from "fs"; -import path from "path"; -import { DateTime } from "luxon"; -import fetch from "node-fetch"; - -import { MsEdgeTTS } from "msedge-tts"; - -import * as dotenv from "dotenv"; -import { createStore } from "zustand/vanilla"; - -dotenv.config(); - -const channels = process.env.CHANNELIDS.split(","); - -const client = new Client({ - intents: [ - GatewayIntentBits.Guilds, - GatewayIntentBits.GuildMessages, - GatewayIntentBits.MessageContent, - GatewayIntentBits.GuildMembers, - GatewayIntentBits.GuildVoiceStates, - ], - allowedMentions: { parse: [], repliedUser: false }, -}); - -if (!fs.existsSync("./temp")) fs.mkdirSync("./temp"); - -// Map to store the last message timestamp per person -const cooldowns = new Map(); - -client.on("ready", async () => { - console.log(`Ready! Logged in as ${client.user.tag}`); - client.user.setActivity(`uwu`); -}); - -function shouldIReply(message) { - if (!message.content && !message.attachments) return false; - if ( - Math.random() < process.env.REPLY_CHANCE && - !channels.includes(message.channel.id) && - !message.mentions.has(client.user.id) - ) - return false; - if (message.content.startsWith("!!")) return false; - - // Check cooldown for the person who sent the message - const lastMessageTime = cooldowns.get(message.author.id); - if (lastMessageTime && Date.now() - lastMessageTime < 1000) return false; // Ignore the message if the cooldown hasn't expired - - // Update the last message timestamp for the person - cooldowns.set(message.author.id, Date.now()); - - return true; -} - -async function getPronouns(userid) { - // this is spagetti i'm sorry - try { - let response = await fetch( - `https://pronoundb.org/api/v2/lookup?platform=discord&ids=${userid}` - ); - - response = await response.json(); - - for (let userId in response) { - if (response[userId].sets.hasOwnProperty("en")) { - response[userId] = response[userId].sets["en"].join("/"); - } else { - response[userId] = "they/them"; - } - } - if (!response.hasOwnProperty(userid)) { - response[userid] = "they/them"; - } - - return response[userid]; - } catch (error) { - console.error(error); - } -} - -const character = fs.readFileSync("./character.txt", "utf8").replace("\n", " "); - -const initialHistory = [ - { role: "system", content: character }, - { - role: "user", - content: "lily (she/her) on May 14, 2024 at 12:55 AM UTC: hi sponge", - }, - { role: "assistant", content: "hi lily! how are you today :3" }, - { - role: "user", - content: - "zynsterr (they/them) on May 14, 2024 at 3:02 PM UTC: generate me an image of cheese puffs", - }, - { - role: "assistant", - content: "sure thing!\n!gen picture of a bowl of cheese puffs on a table", - }, -]; - -global.initialHistory = initialHistory; -let lastMessage = ""; -// let history = initialHistory; - -const historyStore = createStore((set) => ({ - history: [...initialHistory], - addMessage: ({ role, content }) => - set((s) => ({ - history: [ - ...s?.history, - { - role, - content, - }, - ], - })), - reset: () => - set((s) => ({ - history: [...initialHistory], - })), -})); - -client.on("messageCreate", async (message) => { - if (message.author.bot) return; - if (!shouldIReply(message)) return; - - const store = () => historyStore.getState(); - - try { - // Conversation reset - if (message.content.startsWith("%reset")) { - const totalAmountToReset = - store()?.history?.length - initialHistory?.length; - const initialResetReply = await message.reply( - `♻️ Conversation history reset (clearing ${totalAmountToReset} entries).` - ); - store()?.reset(); - initialResetReply.edit({ - content: `♻️ Conversation history reset (cleared ${totalAmountToReset} entries).`, - }); - return; - } - - if (message.content.startsWith("%messages")) { - message.reply( - `ℹ️ ${store()?.history?.length - initialHistory?.length} entries exist.` - ); - return; - } - - if (message.content.startsWith("%readback")) { - message.reply(`\`${lastMessage}\``); - return; - } - - message.channel.sendTyping(); - const imageDetails = await imageRecognition(message); - - // Send message to CharacterAI - let formattedUserMessage = `${message.author.username} (${await getPronouns( - message.author.id - )}) on ${DateTime.now() - .setZone("utc") - .toLocaleString(DateTime.DATETIME_FULL)}: ${ - message.content - }\n${imageDetails}`; - if (message.reference) { - await message.fetchReference().then(async (reply) => { - if (reply.author.id == client.user.id) { - formattedUserMessage = `> ${reply}\n${formattedUserMessage}`; - } else { - formattedUserMessage = `> ${reply.author.username}: ${reply}\n${formattedUserMessage}`; - } - }); - } - lastMessage = formattedUserMessage; - - message.channel.sendTyping(); - - store().addMessage({ role: "user", content: formattedUserMessage }); - const input = { - messages: store().history, - max_tokens: 512, - }; - let response = await fetch( - `https://api.cloudflare.com/client/v4/accounts/${process.env.CF_ACCOUNT}/ai/run/@cf/meta/llama-3-8b-instruct`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.CF_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify(input), - } - ); - response = await response.json(); - response = response.result.response; - store().addMessage({ role: "assistant", content: response }); - if (store().history.length % 20 == 0) { - store().addMessage({ role: "system", content: `reminder: ${character}` }); - } - - if (response == "") - return message.reply( - `❌ AI returned an empty response! Yell at someone idk.` - ); - - let parts = response.split("!gen"); - - let trimmedResponse = parts[0].trim(); - - // Handle long responses - if (trimmedResponse.length >= 2000) { - fs.writeFileSync(path.resolve("./temp/how.txt"), trimmedResponse); - message.reply({ - content: "", - files: ["./temp/how.txt"], - failIfNotExists: false, - }); - return; - } - - // Send AI response - let sentMessage; - try { - sentMessage = await message.reply({ - content: `${trimmedResponse}`, - failIfNotExists: true, - }); - } catch (e) { - console.log(e); - sentMessage = await message.channel.send({ - content: `\`\`\`\n${message.author.username}: ${message.content}\n\`\`\`\n\n${trimmedResponse}`, - }); - } - if (response.includes("!gen")) { - selfImageGen(message, response, sentMessage); - } - - // tts! - if (message.member.voice.channel) { - tts(message, trimmedResponse); - } - } catch (error) { - console.error(error); - return message.reply(`❌ Error! Yell at arti.`); - } -}); - -async function imageRecognition(message) { - if (message.attachments.size > 0) { - let imageDetails = ""; - - const res = await fetch(message.attachments.first().url); - const blob = await res.arrayBuffer(); - const input = { - image: [...new Uint8Array(blob)], - prompt: "Generate a caption for this image", - max_tokens: 256, - }; - - try { - let response = await fetch( - `https://api.cloudflare.com/client/v4/accounts/${process.env.CF_ACCOUNT}/ai/run/@cf/llava-hf/llava-1.5-7b-hf`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.CF_TOKEN}`, - "Content-Type": "application/json", - }, - body: JSON.stringify(input), - } - ); - response = await response.json(); - - imageDetails += `Attached: image of${String( - response.result.description - ).toLowerCase()}\n`; - } catch (error) { - console.error(error); - return message.reply(`❌ Error in image recognition! Try again later.`); - } - - return imageDetails; - } else { - return ""; - } -} - -async function selfImageGen(message, response, sentMessage) { - let parts = response.split("!gen"); - - let partBeforeGen = parts[0].trim(); - let partAfterGen = parts[1].trim().replace("[", "").replace("]", ""); - - try { - let response = await fetch( - `https://api.cloudflare.com/client/v4/accounts/${process.env.CF_ACCOUNT}/ai/run/@cf/lykon/dreamshaper-8-lcm`, - { - method: "POST", - headers: { - Authorization: `Bearer ${process.env.CF_TOKEN}`, - }, - body: JSON.stringify({ - prompt: partAfterGen, - }), - } - ); - response = await response.arrayBuffer(); - const imageBuffer = Buffer.from(response); - sentMessage.edit({ content: partBeforeGen, files: [imageBuffer] }); - } catch (error) { - console.error(error); - return message.reply(`❌ Error in image generation! Try again later.`); - } -} - -async function tts(message, text) { - const tts = new MsEdgeTTS(); - await tts.setMetadata( - "en-US-AnaNeural", - MsEdgeTTS.OUTPUT_FORMAT.AUDIO_24KHZ_96KBITRATE_MONO_MP3 - ); - const filePath = await tts.toFile("./temp/audio.mp3", text); - - const channel = message.member.voice.channel; - - const connection = joinVoiceChannel({ - channelId: channel.id, - guildId: channel.guild.id, - adapterCreator: channel.guild.voiceAdapterCreator, - }); - - const player = createAudioPlayer(); - const resource = createAudioResource(fs.createReadStream(filePath)); - - connection.subscribe(player); - player.play(resource); - - player.on("error", (error) => { - console.error(`Audio Error: ${error.message}`); - }); -} - -client.login(process.env.DISCORD); diff --git a/package.json b/package.json index 8b89842..2cc5687 100644 --- a/package.json +++ b/package.json @@ -1,54 +1,33 @@ { -<<<<<<< HEAD - "$schema": "https://json.schemastore.org/package.json", - "name": "SpongeChat", - "version": "0.1.0", - "private": true, - "type": "module", - "scripts": { - "lint": "prettier --check . && eslint --ext .js,.mjs,.cjs --format=pretty src", - "format": "prettier --write . && eslint --ext .js,.mjs,.cjs --fix --format=pretty src", - "start": "node --require dotenv/config src/index.js", - "deploy": "node --require dotenv/config src/util/deploy.js" - }, - "dependencies": { - "@discordjs/core": "^1.2.0", - "discord.js": "^14.15.0", - "dotenv": "^16.3.1" - }, - "devDependencies": { - "eslint": "^8.53.0", - "eslint-config-neon": "^0.1.57", - "eslint-formatter-pretty": "^5.0.0", - "prettier": "^3.1.0", - "zod": "^3.22.4" - } -} -======= - "name": "spongegpt", - "version": "1.32.1", - "description": "custom AI chatbot for discord", - "main": "index.js", + "$schema": "https://json.schemastore.org/package.json", + "name": "spongechat", + "version": "2.0.0", + "private": true, "type": "module", "scripts": { - "start": "node index.js", - "dev": "nodemon index.js" + "lint": "prettier --check . && eslint --ext .js,.mjs,.cjs --format=pretty src", + "format": "prettier --write . && eslint --ext .js,.mjs,.cjs --fix --format=pretty src", + "start": "node --require dotenv/config src/index.js", + "deploy": "node --require dotenv/config src/util/deploy.js" + }, + "_moduleAliases": { + "@": "./src", + "@util": "./src/util", + "@events": "./src/events", + "@commands": "./src/commands" }, - "author": "artifish", - "license": "AGPL-3.0", "dependencies": { - "@discordjs/voice": "^0.17.0", - "discord.js": "^14.15.2", - "dotenv": "^16.4.5", - "ffmpeg-static": "^5.2.0", - "libsodium-wrappers": "^0.7.13", - "luxon": "^3.4.4", - "msedge-tts": "^1.3.4", - "node-fetch": "^3.3.2", - "zustand": "^4.5.2" + "@discordjs/core": "^1.1.0", + "@redis/json": "^1.0.6", + "discord.js": "^14.14.0", + "dotenv": "^16.3.1", + "module-alias": "^2.2.3", + "redis": "^4.6.13" }, "devDependencies": { - "nodemon": "^3.1.0" + "eslint": "^8.53.0", + "eslint-config-neon": "^0.1.57", + "eslint-formatter-pretty": "^5.0.0", + "prettier": "^3.0.3" } } ->>>>>>> efa92c0aa9ea26aceb1434c9101bfd9a0666be65 diff --git a/src/commands/correctperms.js b/src/commands/correctperms.js new file mode 100644 index 0000000..457f0e0 --- /dev/null +++ b/src/commands/correctperms.js @@ -0,0 +1,41 @@ +import { PermissionFlagsBits } from 'discord.js'; +import { whitelisted } from '../util/helpers.js'; + +/** @type {import('./index.js').Command} */ +export default { + data: { + name: 'correctperms', + description: 'Correct permissions required for this application (threads).', + }, + async execute(interaction) { + // if (!whitelisted.includes(interaction.user.id)) { + if (true) { + void interaction.reply({ + content: "You aren't allowed to use this command - only those on the whitelist are eligible to.", + ephemeral: true, + }); + return; + } + + await interaction.deferReply({ ephemeral: true }); + + const guild = interaction.guild; + + if (guild.roles.everyone.permissions.has('SendMessagesInThreads')) { + void interaction.editReply({ content: 'All required permissions have already been applied to @everyone.' }); + return; + } + + await guild.roles.everyone + .setPermissions([...guild.roles.everyone.permissions, PermissionFlagsBits.SendMessagesInThreads]) + .catch(async (error) => { + console.log('Error: ' + error); + await interaction.editReply({ content: "The permissions of the role couldn't be set." }); + }) + .then(async () => { + await interaction.editReply({ content: 'Yes!' }); + }); + + // + }, +}; diff --git a/src/commands/index.js b/src/commands/index.js index a0ba2e0..ea7dbf2 100644 --- a/src/commands/index.js +++ b/src/commands/index.js @@ -1,5 +1,3 @@ -import { z } from 'zod'; - /** * Defines the structure of a command. * @@ -8,18 +6,16 @@ import { z } from 'zod'; * @property {(interaction: import('discord.js').CommandInteraction) => Promise | void} execute The function to execute when the command is called */ -/** - * Defines the schema for a command - */ -export const schema = z.object({ - data: z.record(z.any()), - execute: z.function(), -}); - /** * Defines the predicate to check if an object is a valid Command type. * * @type {import('../util/loaders.js').StructurePredicate} * @returns {structure is Command} */ -export const predicate = (structure) => schema.safeParse(structure).success; +export const predicate = (structure) => + Boolean(structure) && + typeof structure === 'object' && + 'data' in structure && + 'execute' in structure && + typeof structure.data === 'object' && + typeof structure.execute === 'function'; diff --git a/src/commands/ping.js b/src/commands/ping.js index 8a30f80..cb5e2e9 100644 --- a/src/commands/ping.js +++ b/src/commands/ping.js @@ -5,6 +5,6 @@ export default { description: 'Ping!', }, async execute(interaction) { - await interaction.reply('Pong!'); + await interaction.reply("It's working!"); }, }; diff --git a/src/events/index.js b/src/events/index.js index 52365ee..57b2c6e 100644 --- a/src/events/index.js +++ b/src/events/index.js @@ -1,5 +1,3 @@ -import { z } from 'zod'; - /** * Defines the structure of an event. * @@ -10,20 +8,16 @@ import { z } from 'zod'; * @property {boolean} [once] Whether or not the event should only be listened to once */ -/** - * Defines the schema for an event. - * - */ -export const schema = z.object({ - name: z.string(), - once: z.boolean().optional().default(false), - execute: z.function(), -}); - /** * Defines the predicate to check if an object is a valid Event type. * * @type {import('../util/loaders').StructurePredicate} * @returns {structure is Event} */ -export const predicate = (structure) => schema.safeParse(structure).success; +export const predicate = (structure) => + Boolean(structure) && + typeof structure === 'object' && + 'name' in structure && + 'execute' in structure && + typeof structure.name === 'string' && + typeof structure.execute === 'function'; diff --git a/src/events/messageCreate.js b/src/events/messageCreate.js new file mode 100644 index 0000000..146666a --- /dev/null +++ b/src/events/messageCreate.js @@ -0,0 +1,41 @@ +import { ChannelType, Events, ThreadAutoArchiveDuration } from 'discord.js'; +// import { Environment } from '../util/helpers.js'; + +// const env = new Environment(); + +const callTextChannel = async ({ client, message }) => { + if (!message?.mentions.has(client.user?.id)) return; + + /*const thread = await message.startThread({ + name: `${new Date().toISOString()}`, + autoArchiveDuration: ThreadAutoArchiveDuration.OneHour, + reason: `Requested by ${message.author.id}`, + }); + + await thread.members.add(message.author.id); + + thread.send('It works?'); + */ +}; + +const callThreadChannel = async ({ client, message }) => { + const channel = message.channel; + message.reply('herro').catch(() => null); +}; + +/** @type {import('./index.js').Event} */ +export default { + name: Events.MessageCreate, + // once: false, + async execute(message) { + const client = message.client; + if (message.member.id === client.user.id) return; + if (message.channel.type === ChannelType.GuildText) { + void callTextChannel({ client, message }); + } + + if (message.channel.type === ChannelType.PublicThread) { + // void callThreadChannel({ client, message }); + } + }, +}; diff --git a/src/events/ready.js b/src/events/ready.js index 8b93cfd..0a8fad0 100644 --- a/src/events/ready.js +++ b/src/events/ready.js @@ -1,10 +1,24 @@ import { Events } from 'discord.js'; +import { Environment } from '../util/helpers.js'; +import { createClient } from 'redis'; + +const env = new Environment(); /** @type {import('./index.js').Event} */ export default { name: Events.ClientReady, once: true, async execute(client) { + if (env.getRuntimeScenario() === 'development') console.log('! Running in development'); + + const kv = await createClient({ + url: process.env.KV_URI, + }) + .on('error', (e) => console.log(`KV Client Error: `, e)) + .on('ready', () => console.log(`KV Client: connected`)) + .connect(); + client.kv = kv; + console.log(`Ready! Logged in as ${client.user.tag}`); }, }; diff --git a/src/index.js b/src/index.js index 71d61e6..b4c7f59 100644 --- a/src/index.js +++ b/src/index.js @@ -1,11 +1,17 @@ import process from 'node:process'; import { URL } from 'node:url'; import { Client, GatewayIntentBits } from 'discord.js'; +import { cmdRollout } from './util/deploy.js'; import { loadCommands, loadEvents } from './util/loaders.js'; import { registerEvents } from './util/registerEvents.js'; // Initialize the client -const client = new Client({ intents: [GatewayIntentBits.Guilds] }); +const client = new Client({ + intents: [GatewayIntentBits.Guilds, GatewayIntentBits.MessageContent, GatewayIntentBits.GuildMessages], +}); + +// Deploy commands +await cmdRollout(); // Load the events and commands const events = await loadEvents(new URL('events/', import.meta.url)); @@ -15,4 +21,4 @@ const commands = await loadCommands(new URL('commands/', import.meta.url)); registerEvents(commands, events, client); // Login to the client -void client.login(process.env.DISCORD); +void client.login(process.env.DISCORD_TOKEN); diff --git a/src/util/deploy.js b/src/util/deploy.js index 7120c4a..a672695 100644 --- a/src/util/deploy.js +++ b/src/util/deploy.js @@ -2,14 +2,26 @@ import process from 'node:process'; import { URL } from 'node:url'; import { API } from '@discordjs/core/http-only'; import { REST } from 'discord.js'; +import { Environment } from './helpers.js'; import { loadCommands } from './loaders.js'; -const commands = await loadCommands(new URL('../commands/', import.meta.url)); -const commandData = [...commands.values()].map((command) => command.data); +export const cmdRollout = async () => { + const env = new Environment(); -const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN); -const api = new API(rest); + const commands = await loadCommands(new URL('../commands/', import.meta.url)); + const commandData = [...commands.values()].map((command) => command.data); -const result = await api.applicationCommands.bulkOverwriteGlobalCommands(process.env.APPLICATION_ID, commandData); + const rest = new REST({ version: '10' }).setToken(process.env.DISCORD_TOKEN); + const api = new API(rest); -console.log(`Successfully registered ${result.length} commands.`); + const result = + env.getRuntimeScenario() === 'development' + ? await api.applicationCommands.bulkOverwriteGuildCommands( + process.env.APPLICATION_ID, + process.env.DEV_GUILD, + commandData, + ) + : await api.applicationCommands.bulkOverwriteGlobalCommands(process.env.APPLICATION_ID, commandData); + + console.log(`Successfully registered ${result.length} commands.`); +}; diff --git a/src/util/helpers.js b/src/util/helpers.js new file mode 100644 index 0000000..237edfb --- /dev/null +++ b/src/util/helpers.js @@ -0,0 +1,30 @@ +import process from 'node:process'; + +export const whitelisted = ['181944866987704320', '532053122017787924']; + +export class Environment { + constructor({ register } = {}) { + this.register = register || process.env; + } + + getRuntimeScenario() { + const useCase = (this.register.NODE_ENV || 'PRODUCTION').toLowerCase(); + + switch (useCase) { + case 'development': + return 'development'; + + case 'dev': + return 'development'; + + case 'staging': + return 'staging'; + + case 'stage': + return 'staging'; + + default: + return 'production'; + } + } +} diff --git a/src/util/loaders.js b/src/util/loaders.js index c3c4375..621134f 100644 --- a/src/util/loaders.js +++ b/src/util/loaders.js @@ -55,9 +55,7 @@ export async function loadStructures(dir, predicate, recursive = true) { const structure = (await import(`${dir}/${file}`)).default; // If the structure is a valid structure, add it - if (predicate(structure)) { - structures.push(structure); - } + if (predicate(structure)) structures.push(structure); } return structures; diff --git a/.eslintrc.json b/unused.eslintrc.json similarity index 100% rename from .eslintrc.json rename to unused.eslintrc.json