xernerx 0.1.120-beta.2 → 0.1.120-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/dist/main.cjs +18 -0
- package/dist/main.cjs.map +1 -1
- package/dist/main.d.cts +23 -0
- package/dist/main.d.ts +23 -0
- package/dist/main.js +13 -0
- package/dist/main.js.map +1 -1
- package/package.json +11 -4
- package/src/{base → builders}/XernerxContextCommand.ts +29 -24
- package/src/{base → builders}/XernerxEvent.ts +21 -21
- package/src/{base → builders}/XernerxInhibitor.ts +21 -21
- package/src/{base → builders}/XernerxMessageCommand.ts +24 -24
- package/src/{base → builders}/XernerxSlashCommand.ts +26 -26
- package/src/client/XernerxClient.ts +151 -151
- package/src/handlers/CommandHandler.ts +49 -31
- package/src/handlers/Handler.ts +57 -57
- package/src/main.ts +7 -7
- package/src/tools/XernerxLog.ts +58 -58
- package/src/types/interfaces.ts +25 -25
- package/src/types/types.ts +29 -29
- package/src/util/ClientUtil.ts +29 -29
- package/src/util/Util.ts +11 -11
- package/src/util/prompts.ts +120 -120
- package/dist/main.global.js +0 -88544
- package/dist/main.global.js.map +0 -1
package/README.md
ADDED
package/dist/main.cjs
CHANGED
|
@@ -196,6 +196,18 @@ var CommandHandler = class extends Handler {
|
|
|
196
196
|
}
|
|
197
197
|
}
|
|
198
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Loads message commands from the specified directory.
|
|
201
|
+
*
|
|
202
|
+
* This method iterates through the files in the given directory,
|
|
203
|
+
* attempts to load each file as a message command, and updates the
|
|
204
|
+
* command statistics accordingly.
|
|
205
|
+
*
|
|
206
|
+
* @param options - The options for loading message commands.
|
|
207
|
+
* @param options.directory - The directory from which to load message commands.
|
|
208
|
+
*
|
|
209
|
+
* @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.
|
|
210
|
+
*/
|
|
199
211
|
async loadMessageCommands(options) {
|
|
200
212
|
}
|
|
201
213
|
async loadContextCommands(options) {
|
|
@@ -349,5 +361,11 @@ var XernerxSlashCommand = class extends Discord__namespace.SlashCommandBuilder {
|
|
|
349
361
|
|
|
350
362
|
exports.XernerxClient = XernerxClient;
|
|
351
363
|
exports.XernerxSlashCommand = XernerxSlashCommand;
|
|
364
|
+
Object.keys(Discord).forEach(function (k) {
|
|
365
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
366
|
+
enumerable: true,
|
|
367
|
+
get: function () { return Discord[k]; }
|
|
368
|
+
});
|
|
369
|
+
});
|
|
352
370
|
//# sourceMappingURL=main.cjs.map
|
|
353
371
|
//# sourceMappingURL=main.cjs.map
|
package/dist/main.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tools/XernerxLog.ts","../src/util/prompts.ts","../src/handlers/Handler.ts","../src/handlers/CommandHandler.ts","../src/util/Util.ts","../src/util/ClientUtil.ts","../src/client/XernerxClient.ts","../src/base/XernerxSlashCommand.ts"],"names":["sharpyy","str","link","path","fs","Discord","z","id","Discord2"],"mappings":"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","file":"main.cjs","sourcesContent":["/** @format */\r\n\r\nimport sharpyy, { link } from 'sharpyy';\r\n\r\nexport default new (class XernerxLog {\r\n\tpublic declare readonly baseText;\r\n\r\n\tconstructor() {\r\n\t\tthis.baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${new Date()\r\n\t\t\t.toLocaleTimeString()\r\n\t\t\t.split(/ /gim)\r\n\t\t\t.map((str) =>\r\n\t\t\t\tstr\r\n\t\t\t\t\t.split(':')\r\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\r\n\t\t\t\t\t.join(':')\r\n\t\t\t)\r\n\t\t\t.join(' ')} | ${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb |`;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\treturn console.info(`✔️ |`, this.baseText, message);\r\n\t}\r\n\r\n\tasync error(message: string, error?: Error) {\r\n\t\tconst { default: boxen } = await import('boxen');\r\n\r\n\t\tconst errorMessage = boxen(error?.stack as string, { padding: 1, margin: 1, borderStyle: 'round', borderColor: 'red' });\r\n\r\n\t\tif (error) return console.error(`❗ |`, this.baseText, message, errorMessage);\r\n\t\telse return console.error(`❗ |`, this.baseText, message);\r\n\t}\r\n\r\n\twarn(message: string, url?: URL) {\r\n\t\tconsole.warn(`⚠️ |`, this.baseText, message, url ? `Read more here ${link('here', url)}` : '');\r\n\t}\r\n\r\n\tdebug(message: string) {\r\n\t\treturn console.debug(`🐛 |`, this.baseText, message);\r\n\t}\r\n\r\n\tasync box(message: string, color?: string, title?: string) {\r\n\t\tconst { default: boxen } = await import('boxen');\r\n\r\n\t\tconst time = new Date()\r\n\t\t\t.toLocaleTimeString()\r\n\t\t\t.split(/ /gim)\r\n\t\t\t.map((str) =>\r\n\t\t\t\tstr\r\n\t\t\t\t\t.split(':')\r\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\r\n\t\t\t\t\t.join(':')\r\n\t\t\t)\r\n\t\t\t.join(' ');\r\n\r\n\t\treturn console.info(boxen(message, { padding: 1, margin: 1, borderStyle: 'round', borderColor: color, title: `${time} - ${sharpyy('XERNERX', 'txRainbow', 'bold')} - ${title || ''}` }));\r\n\t}\r\n})();\r\n","/** @format */\r\n\r\nimport sharpyy from 'sharpyy';\r\nimport { Color } from 'ora';\r\n\r\nimport { XernerxClient } from '../client/XernerxClient.js';\r\nimport XernerxLog from '../tools/XernerxLog.js';\r\n\r\nlet init = false;\r\n\r\nexport async function start(client: XernerxClient) {\r\n\tif (init) return;\r\n\r\n\tif (client.settings.debug) XernerxLog.info('Debug mode enabled, preventing console clear and logging all handlings...');\r\n\telse console.clear();\r\n\r\n\tconst { default: ora, spinners } = await import('ora');\r\n\tconst { default: boxen } = await import('boxen');\r\n\r\n\tconsole.info(\r\n\t\tboxen(sharpyy('XERNERX', 'txRainbow', 'bold', 'underlines'), {\r\n\t\t\tpadding: 1,\r\n\t\t\tmargin: 1,\r\n\t\t\tborderStyle: 'round',\r\n\t\t\theight: 3,\r\n\t\t\talign: 'center',\r\n\t\t\tborderColor: 'magenta',\r\n\t\t\tfullscreen: (width, height) => [width - 5, height],\r\n\t\t})\r\n\t);\r\n\r\n\tif (!client.options.intents.has('Guilds'))\r\n\t\tXernerxLog.warn('Your bot is signed in without the Guilds intent, this may cause issues with the bot.', new URL('https://discord.com/developers/docs/topics/gateway#gateway-intents'));\r\n\r\n\tconst spinner = ora();\r\n\r\n\tspinner.spinner = spinners.dots12;\r\n\r\n\tspinner.start();\r\n\r\n\tlet index = 0;\r\n\r\n\tsetInterval(async () => {\r\n\t\t// Update Discord stats\r\n\t\tcalculateStats(client);\r\n\r\n\t\t// Update commandline\r\n\r\n\t\tconst time = new Date()\r\n\t\t\t\t.toLocaleTimeString()\r\n\t\t\t\t.split(/ /gim)\r\n\t\t\t\t.map((str) =>\r\n\t\t\t\t\tstr\r\n\t\t\t\t\t\t.split(':')\r\n\t\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\r\n\t\t\t\t\t\t.join(':')\r\n\t\t\t\t)\r\n\t\t\t\t.join(' '),\r\n\t\t\tram = `${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb`;\r\n\r\n\t\tconst colors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan'];\r\n\r\n\t\tconst baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${time} | ${ram} | `;\r\n\r\n\t\tif (client.user) {\r\n\t\t\tspinner.color = colors[index] as Color;\r\n\r\n\t\t\tconst counts = {\r\n\t\t\t\tlocal: client.commands.stats.slash.local + client.commands.stats.message.local + client.commands.stats.context.local,\r\n\t\t\t\tglobal: client.commands.stats.slash.global + client.commands.stats.message.global + client.commands.stats.context.global,\r\n\t\t\t};\r\n\r\n\t\t\tspinner.text = boxen(\r\n\t\t\t\tObject.entries({\r\n\t\t\t\t\t'Name': sharpyy(client.user.tag, 'txBlue'),\r\n\t\t\t\t\t'Status': `${sharpyy('Online', 'txGreen')} | ${client.settings.global ? sharpyy('Global', 'txGreen') : sharpyy('Local', 'txRed')}`,\r\n\t\t\t\t\t'Uptime': client.util\r\n\t\t\t\t\t\t.uptime(client.uptime)\r\n\t\t\t\t\t\t.split('')\r\n\t\t\t\t\t\t.map((c) => (isNaN(Number(c)) ? c : sharpyy(c, 'txCyan')))\r\n\t\t\t\t\t\t.join(''),\r\n\t\t\t\t\t'Commands': client.settings.global ? `${counts.local ? `local: ${counts.local}` : ''}|${counts.global ? `global: ${counts.global}` : ''}` : counts.local + counts.global,\r\n\t\t\t\t\t'RAM Usage': ram,\r\n\t\t\t\t\t'Guilds': (await Promise.all(client.settings.guilds.map(async (id) => sharpyy((await client.guilds.fetch(id))?.name || id, 'txBlue')))).join(', '),\r\n\t\t\t\t\t'Owners': (await Promise.all(client.settings.owners.map(async (id) => sharpyy((await client.users.fetch(id))?.username || id, 'txBlue')))).join(', '),\r\n\t\t\t\t\t'GuildCount': sharpyy(String(client.stats.guilds), 'txCyan'),\r\n\t\t\t\t\t'UserCount': sharpyy(String(client.stats.users), 'txCyan'),\r\n\t\t\t\t\t'ShardCount': sharpyy(String(client.stats.shardCount), 'txCyan'),\r\n\t\t\t\t})\r\n\t\t\t\t\t.map(([key, value]) => `${key}: ${value}`)\r\n\t\t\t\t\t.join('\\n'),\r\n\t\t\t\t{\r\n\t\t\t\t\tpadding: 1,\r\n\t\t\t\t\tmargin: 1,\r\n\t\t\t\t\tborderStyle: 'round',\r\n\t\t\t\t\tborderColor: 'magenta',\r\n\t\t\t\t\ttitle: time + ' - ' + sharpyy('XERNERX', 'txRainbow', 'bold') + '\\x1B[35m',\r\n\t\t\t\t\theight: 15,\r\n\t\t\t\t\tfullscreen: (width, height) => [width - 5, height],\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tspinner.color = 'green';\r\n\r\n\t\t\tspinner.text = baseText + `Connecting to Discord${index == 0 ? '.' : index == 1 ? '..' : index == 2 ? '...' : ''}`;\r\n\t\t}\r\n\r\n\t\tindex++;\r\n\r\n\t\tif (index == colors.length - 1) index = 0;\r\n\t}, 250);\r\n\r\n\tinit = true;\r\n}\r\n\r\nfunction calculateStats(client: XernerxClient) {\r\n\tclient.stats.guilds = client.guilds.cache.size;\r\n\tclient.stats.users = client.users.cache.size;\r\n\tclient.stats.shardCount = client.options.shardCount || null;\r\n}\r\n","/** @format */\r\n// import * as inquirer from '@inquirer/prompts';\r\n// import { link } from 'sharpyy';\r\n\r\nimport { XernerxClient } from '../client/XernerxClient.js';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nimport { XernerxFile } from '../types/types.js';\r\nimport XernerxLog from '../tools/XernerxLog.js';\r\nimport { link } from 'sharpyy';\r\n\r\nexport class Handler {\r\n\tpublic declare readonly client: XernerxClient;\r\n\r\n\tconstructor(client: XernerxClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tprotected async readdir(directory: string) {\r\n\t\tconst dirpath = path.resolve(directory);\r\n\r\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to read directory ${link(directory, new URL(dirpath))}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst files = fs.readdirSync(dirpath);\r\n\r\n\t\t\treturn files.filter((file) => file.endsWith('.js') || file.endsWith('.mjs') || file.endsWith('.cjs'));\r\n\t\t} catch (error) {\r\n\t\t\tXernerxLog.error(`Error reading directory ${link(directory, new URL(dirpath))}:`, error as Error);\r\n\t\t\treturn [];\r\n\t\t}\r\n\t}\r\n\r\n\tprotected async load(filepath: string) {\r\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to load ${link(filepath, new URL(filepath))}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst file = ((await import(`file://${filepath}`))?.default || (await import(`file://${filepath}`))) as XernerxFile;\r\n\r\n\t\t\tconst openFile = new (file as any)() as XernerxFile;\r\n\r\n\t\t\tconst [collection, group] = openFile.collection.split('.');\r\n\r\n\t\t\tgroup\r\n\t\t\t\t? this.client[group as 'commands'][collection as 'message' | 'slash' | 'context'].set(openFile._id, openFile as never)\r\n\t\t\t\t: this.client[collection as 'events' | 'inhibitors'].set(openFile._id, openFile as never);\r\n\r\n\t\t\tif (this.client.settings.debug) XernerxLog.debug(`Loaded ${link(openFile._id, new URL(filepath))}`);\r\n\r\n\t\t\treturn openFile as XernerxFile;\r\n\t\t} catch (error) {\r\n\t\t\tXernerxLog.error(`Error loading ${link(filepath, new URL(filepath))}:`, error as Error);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport { XernerxClient } from '../client/XernerxClient.js';\r\nimport { XernerxContextCommandHandlerOptions, XernerxMessageCommandHandlerOptions, XernerxSlashCommandHandlerOptions } from '../types/interfaces.js';\r\nimport { Handler } from './Handler.js';\r\nimport path from 'path';\r\n\r\nexport class CommandHandler extends Handler {\r\n\tconstructor(client: XernerxClient) {\r\n\t\tsuper(client);\r\n\t}\r\n\r\n\tprotected async loadSlashCommands(options: XernerxSlashCommandHandlerOptions) {\r\n\t\tif (!this.client.modules.options.slash) this.client.modules.options.slash = {};\r\n\t\tthis.client.modules.options.slash.global = options.global ?? this.client.settings.global;\r\n\r\n\t\tfor (const file of await this.readdir(options.directory)) {\r\n\t\t\tconst command = await this.load(path.resolve(`${options.directory}/${file}`));\r\n\r\n\t\t\tif (!command) continue;\r\n\r\n\t\t\tif (command.filetype == 'XernerxMessageCommand' || command.filetype == 'XernerxSlashCommand' || command.filetype == 'XernerxContextCommand') {\r\n\t\t\t\tif (!this.client.modules.options.slash.global) this.client.commands.stats.slash.local++;\r\n\t\t\t\telse if (!command.global) this.client.commands.stats.slash.local++;\r\n\t\t\t\telse this.client.commands.stats.slash.global++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tprotected async loadMessageCommands(options: XernerxMessageCommandHandlerOptions) {}\r\n\tprotected async loadContextCommands(options: XernerxContextCommandHandlerOptions) {}\r\n}\r\n","/** @format */\r\n\r\nimport { XernerxClient } from '../main.js';\r\n\r\nexport class Util {\r\n\tpublic declare readonly client: XernerxClient;\r\n\r\n\tconstructor(client: XernerxClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport { XernerxClient } from '../main.js';\r\nimport { Util } from './Util.js';\r\n\r\nexport class ClientUtil extends Util {\r\n\tconstructor(client: XernerxClient) {\r\n\t\tsuper(client);\r\n\t}\r\n\r\n\tpublic uptime(timestamp?: number | null) {\r\n\t\tif (!timestamp) timestamp = this.client.uptime || 0;\r\n\t\tlet totalSeconds = timestamp / 1000;\r\n\t\tlet years = Math.floor(totalSeconds / 31536000);\r\n\t\ttotalSeconds %= 31536000;\r\n\t\tlet days = Math.floor(totalSeconds / 86400);\r\n\t\ttotalSeconds %= 86400;\r\n\t\tlet hours = Math.floor(totalSeconds / 3600);\r\n\t\ttotalSeconds %= 3600;\r\n\t\tlet minutes = Math.floor(totalSeconds / 60);\r\n\t\tlet seconds = Math.floor(totalSeconds % 60);\r\n\r\n\t\tif (years >= 1) return `${years}y ${days}d ${hours}h ${minutes}m`;\r\n\t\telse if (days >= 1) return `${days}d ${hours}h ${minutes}m`;\r\n\t\telse if (hours >= 1) return `${hours}h ${minutes}m`;\r\n\t\telse if (minutes >= 1) return `${minutes}m ${seconds}s`;\r\n\t\telse return `${seconds}s`;\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport * as Discord from 'discord.js';\r\nimport { z } from 'zod';\r\n\r\nimport { start } from '../util/prompts.js';\r\nimport { XernerxStats } from '../types/interfaces.js';\r\nimport { CommandHandler } from '../handlers/CommandHandler.js';\r\nimport { XernerxMessageCommand } from '../base/XernerxMessageCommand.js';\r\nimport { XernerxSlashCommand } from '../main.js';\r\nimport { XernerxContextCommand } from '../base/XernerxContextCommand.js';\r\nimport { XernerxEvent } from '../base/XernerxEvent.js';\r\nimport { XernerxInhibitor } from '../base/XernerxInhibitor.js';\r\nimport XernerxLog from '../tools/XernerxLog.js';\r\nimport sharpyy from 'sharpyy';\r\nimport { ClientUtil } from '../util/ClientUtil.js';\r\n\r\nexport class XernerxClient<T = {}> extends Discord.Client {\r\n\tpublic declare readonly settings;\r\n\tpublic declare readonly stats: XernerxStats;\r\n\tpublic declare readonly modules: {\r\n\t\tcommandHandler: CommandHandler;\r\n\t\toptions: {\r\n\t\t\tmessage?: { global?: boolean };\r\n\t\t\tslash?: { global?: boolean };\r\n\t\t\tcontext?: { global?: boolean };\r\n\t\t};\r\n\t};\r\n\tpublic declare readonly util: ClientUtil;\r\n\tpublic declare readonly commands;\r\n\tpublic declare readonly events;\r\n\tpublic declare readonly inhibitors;\r\n\r\n\tconstructor(DiscordOptions: any, XernerxOptions: any, config: T) {\r\n\t\tsuper(DiscordOptions);\r\n\r\n\t\tthis.settings = z\r\n\t\t\t.object({\r\n\t\t\t\t// required settings\r\n\t\t\t\ttoken: z.string(),\r\n\r\n\t\t\t\t// optional settings\r\n\t\t\t\tglobal: z.boolean().default(false),\r\n\t\t\t\towners: z.array(z.string()).default([]),\r\n\t\t\t\tguilds: z.array(z.string()).default([]),\r\n\r\n\t\t\t\t// dev settings\r\n\t\t\t\tdebug: z.boolean().default(false),\r\n\t\t\t})\r\n\t\t\t.parse({ ...XernerxOptions, ...config });\r\n\r\n\t\tthis.stats = {\r\n\t\t\tguilds: null,\r\n\t\t\tusers: null,\r\n\t\t\tshardId: null,\r\n\t\t\tshardCount: null,\r\n\t\t\tshards: null,\r\n\t\t\tvoteCount: null,\r\n\t\t\tvotes: null,\r\n\t\t};\r\n\r\n\t\tthis.util = new ClientUtil(this);\r\n\r\n\t\tstart(this);\r\n\r\n\t\tthis.modules = {\r\n\t\t\tcommandHandler: new CommandHandler(this),\r\n\r\n\t\t\toptions: {},\r\n\t\t};\r\n\r\n\t\tthis.commands = {\r\n\t\t\tmessage: new Discord.Collection() as Discord.Collection<string, XernerxMessageCommand>,\r\n\t\t\tslash: new Discord.Collection() as Discord.Collection<string, XernerxSlashCommand>,\r\n\t\t\tcontext: new Discord.Collection() as Discord.Collection<string, XernerxContextCommand>,\r\n\t\t\tstats: {\r\n\t\t\t\tslash: {\r\n\t\t\t\t\tlocal: 0,\r\n\t\t\t\t\tglobal: 0,\r\n\t\t\t\t},\r\n\t\t\t\tmessage: {\r\n\t\t\t\t\tlocal: 0,\r\n\t\t\t\t\tglobal: 0,\r\n\t\t\t\t},\r\n\t\t\t\tcontext: {\r\n\t\t\t\t\tlocal: 0,\r\n\t\t\t\t\tglobal: 0,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tthis.events = new Discord.Collection() as Discord.Collection<string, XernerxEvent>;\r\n\t\tthis.inhibitors = new Discord.Collection() as Discord.Collection<string, XernerxInhibitor>;\r\n\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate async connect() {\r\n\t\t// slash cmds\r\n\t\tthis.deploy();\r\n\r\n\t\t// login\r\n\t\tthis.login(this.settings.token);\r\n\t}\r\n\r\n\tprivate async deploy() {\r\n\t\tthis.once('ready', async (client) => {\r\n\t\t\tconst commands: { local: Array<XernerxSlashCommand | XernerxContextCommand>; global: Array<XernerxSlashCommand | XernerxContextCommand> } = { local: [], global: [] };\r\n\r\n\t\t\tif (this.settings.global) {\r\n\t\t\t\tif (!this.modules.options.slash?.global) commands.global.push(...(this.commands.slash as any));\r\n\t\t\t\telse {\r\n\t\t\t\t\tcommands.global.push(...(this.commands.slash.filter((c) => c.global) as any));\r\n\r\n\t\t\t\t\tcommands.local.push(...(this.commands.slash.filter((c) => !c.global) as any));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this.modules.options.context?.global) commands.global.push(...(this.commands.context as any));\r\n\t\t\t\telse {\r\n\t\t\t\t\tcommands.global.push(...(this.commands.context.filter((c) => c.global) as any));\r\n\r\n\t\t\t\t\tcommands.local.push(...(this.commands.context.filter((c) => !c.global) as any));\r\n\t\t\t\t}\r\n\t\t\t} else commands.local.push(...(this.commands.context as any), ...(this.commands.slash as any));\r\n\r\n\t\t\tfor (const id of this.settings.guilds) {\r\n\t\t\t\tconst guild = await this.guilds.fetch(id);\r\n\r\n\t\t\t\tif (!commands.local.length) break;\r\n\r\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands to guild: ${sharpyy(guild.name, 'txBlue')}`);\r\n\r\n\t\t\t\tthis.rest.put(Discord.Routes.applicationGuildCommands(client.user.id, id), { body: (commands.local as any).map(([id, command]: any) => command.toJSON()) });\r\n\r\n\t\t\t\tawait XernerxLog.box(\r\n\t\t\t\t\t(commands.local as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '),\r\n\t\t\t\t\t'red',\r\n\t\t\t\t\t`Deployed ${sharpyy('local', 'txRed', 'bold')} commands in ${sharpyy(guild.name, 'txBlue')}`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.settings.global) {\r\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands globally`);\r\n\r\n\t\t\t\tthis.rest.put(Discord.Routes.applicationCommands(client.user.id), { body: [] });\r\n\r\n\t\t\t\tawait XernerxLog.box((commands.global as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '), 'green', `Deployed ${sharpyy('global', 'txGreen', 'bold')} commands`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport * as Discord from 'discord.js';\r\n\r\nexport class XernerxSlashCommand extends Discord.SlashCommandBuilder {\r\n\tpublic declare readonly _id: string;\r\n\tpublic declare readonly global: boolean;\r\n\tpublic declare readonly filetype: 'XernerxSlashCommand';\r\n\tpublic declare readonly collection: 'slash.commands';\r\n\r\n\tconstructor(options: any) {\r\n\t\tsuper();\r\n\r\n\t\tthis._id = options.id;\r\n\r\n\t\tthis.setName(options.name);\r\n\r\n\t\tthis.setDescription(options.description);\r\n\r\n\t\tthis.global = options.global ?? true;\r\n\r\n\t\tthis.filetype = 'XernerxSlashCommand';\r\n\r\n\t\tthis.collection = 'slash.commands';\r\n\t}\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tools/XernerxLog.ts","../src/util/prompts.ts","../src/handlers/Handler.ts","../src/handlers/CommandHandler.ts","../src/util/Util.ts","../src/util/ClientUtil.ts","../src/client/XernerxClient.ts","../src/builders/XernerxSlashCommand.ts"],"names":["sharpyy","str","link","path","fs","Discord","z","id","Discord2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAO,kBAAA,GAAQ,IAAK,MAAM,UAAW,CAAA;AAAA,EAJrC;AAIqC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGpC,WAAc,GAAA;AACb,IAAA,IAAA,CAAK,QAAW,GAAA,CAAA,EAAGA,yBAAQ,CAAA,SAAA,EAAW,aAAa,MAAM,CAAC,CAAM,GAAA,EAAA,iBAAA,IAAI,MAClE,EAAA,kBAAA,EACA,CAAA,KAAA,CAAM,MAAM,CACZ,CAAA,GAAA;AAAA,MAAI,CAAC,QACL,GACE,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAACC,IAAS,KAAA,KAAA,CAAM,OAAOA,IAAG,CAAC,IAAIA,IAAM,GAAAD,yBAAA,CAAQC,MAAK,QAAQ,CAAE,CAChE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,MAEV,IAAK,CAAA,GAAG,CAAC,CAAM,GAAA,EAAAD,yBAAA,CAAQ,OAAO,IAAK,CAAA,KAAA,CAAM,OAAQ,CAAA,WAAA,GAAc,GAAM,GAAA,GAAK,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAA,IAAA,CAAA,CAAA;AAAA,GAChG;AAAA,EAEA,KAAK,OAAiB,EAAA;AACrB,IAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAS,eAAA,CAAA,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,GACpD;AAAA,EAEA,MAAM,KAAM,CAAA,OAAA,EAAiB,KAAe,EAAA;AAC3C,IAAA,MAAM,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,MAAM,OAAO,OAAO,CAAA,CAAA;AAE/C,IAAA,MAAM,YAAe,GAAA,KAAA,CAAM,KAAO,EAAA,KAAA,EAAiB,EAAE,OAAA,EAAS,CAAG,EAAA,MAAA,EAAQ,CAAG,EAAA,WAAA,EAAa,OAAS,EAAA,WAAA,EAAa,OAAO,CAAA,CAAA;AAEtH,IAAI,IAAA,KAAA,SAAc,OAAQ,CAAA,KAAA,CAAM,YAAO,IAAK,CAAA,QAAA,EAAU,SAAS,YAAY,CAAA,CAAA;AAAA,gBAC/D,OAAQ,CAAA,KAAA,CAAM,CAAO,QAAA,CAAA,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,GACxD;AAAA,EAEA,IAAA,CAAK,SAAiB,GAAW,EAAA;AAChC,IAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,eAAA,CAAA,EAAS,IAAK,CAAA,QAAA,EAAU,OAAS,EAAA,GAAA,GAAM,CAAkB,eAAA,EAAAE,aAAA,CAAK,MAAQ,EAAA,GAAG,CAAC,CAAA,CAAA,GAAK,EAAE,CAAA,CAAA;AAAA,GAC/F;AAAA,EAEA,MAAM,OAAiB,EAAA;AACtB,IAAA,OAAO,OAAQ,CAAA,KAAA,CAAM,CAAQ,WAAA,CAAA,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,GACpD;AAAA,EAEA,MAAM,GAAA,CAAI,OAAiB,EAAA,KAAA,EAAgB,KAAgB,EAAA;AAC1D,IAAA,MAAM,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,MAAM,OAAO,OAAO,CAAA,CAAA;AAE/C,IAAM,MAAA,IAAA,GAAA,qBAAW,IAAK,EAAA,EACpB,oBACA,CAAA,KAAA,CAAM,MAAM,CACZ,CAAA,GAAA;AAAA,MAAI,CAAC,QACL,GACE,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAACD,IAAS,KAAA,KAAA,CAAM,OAAOA,IAAG,CAAC,IAAIA,IAAM,GAAAD,yBAAA,CAAQC,MAAK,QAAQ,CAAE,CAChE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,KACX,CACC,KAAK,GAAG,CAAA,CAAA;AAEV,IAAO,OAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,OAAS,EAAA,EAAE,OAAS,EAAA,CAAA,EAAG,MAAQ,EAAA,CAAA,EAAG,WAAa,EAAA,OAAA,EAAS,WAAa,EAAA,KAAA,EAAO,KAAO,EAAA,CAAA,EAAG,IAAI,CAAA,GAAA,EAAMD,yBAAQ,CAAA,SAAA,EAAW,WAAa,EAAA,MAAM,CAAC,CAAA,GAAA,EAAM,KAAS,IAAA,EAAE,CAAG,CAAA,EAAC,CAAC,CAAA,CAAA;AAAA,GACxL;AACD,CAAG,EAAA,CAAA;;;ACjDH,IAAI,IAAO,GAAA,KAAA,CAAA;AAEX,eAAsB,MAAM,MAAuB,EAAA;AAClD,EAAA,IAAI,IAAM,EAAA,OAAA;AAEV,EAAA,IAAI,MAAO,CAAA,QAAA,CAAS,KAAO,EAAA,kBAAA,CAAW,KAAK,2EAA2E,CAAA,CAAA;AAAA,eACzG,KAAM,EAAA,CAAA;AAEnB,EAAA,MAAM,EAAE,OAAS,EAAA,GAAA,EAAK,UAAa,GAAA,MAAM,OAAO,KAAK,CAAA,CAAA;AACrD,EAAA,MAAM,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,MAAM,OAAO,OAAO,CAAA,CAAA;AAE/C,EAAQ,OAAA,CAAA,IAAA;AAAA,IACP,MAAMA,yBAAQ,CAAA,SAAA,EAAW,WAAa,EAAA,MAAA,EAAQ,YAAY,CAAG,EAAA;AAAA,MAC5D,OAAS,EAAA,CAAA;AAAA,MACT,MAAQ,EAAA,CAAA;AAAA,MACR,WAAa,EAAA,OAAA;AAAA,MACb,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,QAAA;AAAA,MACP,WAAa,EAAA,SAAA;AAAA,MACb,UAAA,0BAAa,KAAO,EAAA,MAAA,KAAW,CAAC,KAAQ,GAAA,CAAA,EAAG,MAAM,CAArC,EAAA,YAAA,CAAA;AAAA,KACZ,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,CAAC,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,IAAI,QAAQ,CAAA;AACvC,IAAA,kBAAA,CAAW,IAAK,CAAA,sFAAA,EAAwF,IAAI,GAAA,CAAI,oEAAoE,CAAC,CAAA,CAAA;AAEtL,EAAA,MAAM,UAAU,GAAI,EAAA,CAAA;AAEpB,EAAA,OAAA,CAAQ,UAAU,QAAS,CAAA,MAAA,CAAA;AAE3B,EAAA,OAAA,CAAQ,KAAM,EAAA,CAAA;AAEd,EAAA,IAAI,KAAQ,GAAA,CAAA,CAAA;AAEZ,EAAA,WAAA,CAAY,YAAY;AAEvB,IAAA,cAAA,CAAe,MAAM,CAAA,CAAA;AAIrB,IAAM,MAAA,IAAA,GAAA,qBAAW,IAAK,EAAA,EACnB,oBACA,CAAA,KAAA,CAAM,MAAM,CACZ,CAAA,GAAA;AAAA,MAAI,CAAC,QACL,GACE,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAACC,IAAS,KAAA,KAAA,CAAM,OAAOA,IAAG,CAAC,IAAIA,IAAMD,GAAAA,yBAAAA,CAAQC,MAAK,QAAQ,CAAE,CAChE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,MAEV,IAAK,CAAA,GAAG,GACV,GAAM,GAAA,CAAA,EAAGD,0BAAQ,MAAO,CAAA,IAAA,CAAK,MAAM,OAAQ,CAAA,WAAA,GAAc,GAAM,GAAA,GAAK,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAA,EAAA,CAAA,CAAA;AAExF,IAAA,MAAM,SAAS,CAAC,KAAA,EAAO,SAAS,QAAU,EAAA,MAAA,EAAQ,WAAW,MAAM,CAAA,CAAA;AAEnE,IAAM,MAAA,QAAA,GAAW,CAAGA,EAAAA,yBAAAA,CAAQ,SAAW,EAAA,WAAA,EAAa,MAAM,CAAC,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,GAAG,CAAA,GAAA,CAAA,CAAA;AAE9E,IAAA,IAAI,OAAO,IAAM,EAAA;AAChB,MAAQ,OAAA,CAAA,KAAA,GAAQ,OAAO,KAAK,CAAA,CAAA;AAE5B,MAAA,MAAM,MAAS,GAAA;AAAA,QACd,KAAO,EAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,MAAM,KAAQ,GAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,GAAQ,MAAO,CAAA,QAAA,CAAS,MAAM,OAAQ,CAAA,KAAA;AAAA,QAC/G,MAAQ,EAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,MAAM,MAAS,GAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,GAAS,MAAO,CAAA,QAAA,CAAS,MAAM,OAAQ,CAAA,MAAA;AAAA,OACnH,CAAA;AAEA,MAAA,OAAA,CAAQ,IAAO,GAAA,KAAA;AAAA,QACd,OAAO,OAAQ,CAAA;AAAA,UACd,MAAQA,EAAAA,yBAAAA,CAAQ,MAAO,CAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA,UACzC,UAAU,CAAGA,EAAAA,yBAAAA,CAAQ,QAAU,EAAA,SAAS,CAAC,CAAM,GAAA,EAAA,MAAA,CAAO,QAAS,CAAA,MAAA,GAASA,0BAAQ,QAAU,EAAA,SAAS,IAAIA,yBAAQ,CAAA,OAAA,EAAS,OAAO,CAAC,CAAA,CAAA;AAAA,UAChI,QAAA,EAAU,MAAO,CAAA,IAAA,CACf,MAAO,CAAA,MAAA,CAAO,MAAM,CACpB,CAAA,KAAA,CAAM,EAAE,CAAA,CACR,GAAI,CAAA,CAAC,MAAO,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAI,GAAA,CAAA,GAAIA,yBAAQ,CAAA,CAAA,EAAG,QAAQ,CAAE,CACxD,CAAA,IAAA,CAAK,EAAE,CAAA;AAAA,UACT,UAAA,EAAY,OAAO,QAAS,CAAA,MAAA,GAAS,GAAG,MAAO,CAAA,KAAA,GAAQ,CAAU,OAAA,EAAA,MAAA,CAAO,KAAK,CAAA,CAAA,GAAK,EAAE,CAAI,CAAA,EAAA,MAAA,CAAO,MAAS,GAAA,CAAA,QAAA,EAAW,MAAO,CAAA,MAAM,KAAK,EAAE,CAAA,CAAA,GAAK,MAAO,CAAA,KAAA,GAAQ,MAAO,CAAA,MAAA;AAAA,UAClK,WAAa,EAAA,GAAA;AAAA,UACb,QAAA,EAAA,CAAW,MAAM,OAAA,CAAQ,GAAI,CAAA,MAAA,CAAO,SAAS,MAAO,CAAA,GAAA,CAAI,OAAO,EAAA,KAAOA,yBAAS,CAAA,CAAA,MAAM,OAAO,MAAO,CAAA,KAAA,CAAM,EAAE,CAAA,GAAI,IAAQ,IAAA,EAAA,EAAI,QAAQ,CAAC,CAAC,CAAG,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACjJ,QAAA,EAAA,CAAW,MAAM,OAAA,CAAQ,GAAI,CAAA,MAAA,CAAO,SAAS,MAAO,CAAA,GAAA,CAAI,OAAO,EAAA,KAAOA,yBAAS,CAAA,CAAA,MAAM,OAAO,KAAM,CAAA,KAAA,CAAM,EAAE,CAAA,GAAI,QAAY,IAAA,EAAA,EAAI,QAAQ,CAAC,CAAC,CAAG,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACpJ,cAAcA,yBAAQ,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,MAAM,GAAG,QAAQ,CAAA;AAAA,UAC3D,aAAaA,yBAAQ,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,KAAK,GAAG,QAAQ,CAAA;AAAA,UACzD,cAAcA,yBAAQ,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,UAAU,GAAG,QAAQ,CAAA;AAAA,SAC/D,CAAA,CACC,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA,CAAA,EAAG,GAAG,CAAK,EAAA,EAAA,KAAK,CAAE,CAAA,CAAA,CACxC,KAAK,IAAI,CAAA;AAAA,QACX;AAAA,UACC,OAAS,EAAA,CAAA;AAAA,UACT,MAAQ,EAAA,CAAA;AAAA,UACR,WAAa,EAAA,OAAA;AAAA,UACb,WAAa,EAAA,SAAA;AAAA,UACb,OAAO,IAAO,GAAA,KAAA,GAAQA,0BAAQ,SAAW,EAAA,WAAA,EAAa,MAAM,CAAI,GAAA,UAAA;AAAA,UAChE,MAAQ,EAAA,EAAA;AAAA,UACR,UAAA,0BAAa,KAAO,EAAA,MAAA,KAAW,CAAC,KAAQ,GAAA,CAAA,EAAG,MAAM,CAArC,EAAA,YAAA,CAAA;AAAA,SACb;AAAA,OACD,CAAA;AAAA,KACM,MAAA;AACN,MAAA,OAAA,CAAQ,KAAQ,GAAA,OAAA,CAAA;AAEhB,MAAA,OAAA,CAAQ,IAAO,GAAA,QAAA,GAAW,CAAwB,qBAAA,EAAA,KAAA,IAAS,CAAI,GAAA,GAAA,GAAM,KAAS,IAAA,CAAA,GAAI,IAAO,GAAA,KAAA,IAAS,CAAI,GAAA,KAAA,GAAQ,EAAE,CAAA,CAAA,CAAA;AAAA,KACjH;AAEA,IAAA,KAAA,EAAA,CAAA;AAEA,IAAA,IAAI,KAAS,IAAA,MAAA,CAAO,MAAS,GAAA,CAAA,EAAW,KAAA,GAAA,CAAA,CAAA;AAAA,KACtC,GAAG,CAAA,CAAA;AAEN,EAAO,IAAA,GAAA,IAAA,CAAA;AACR,CAAA;AAvGsB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA,CAAA;AAyGtB,SAAS,eAAe,MAAuB,EAAA;AAC9C,EAAA,MAAA,CAAO,KAAM,CAAA,MAAA,GAAS,MAAO,CAAA,MAAA,CAAO,KAAM,CAAA,IAAA,CAAA;AAC1C,EAAA,MAAA,CAAO,KAAM,CAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,CAAM,KAAM,CAAA,IAAA,CAAA;AACxC,EAAA,MAAA,CAAO,KAAM,CAAA,UAAA,GAAa,MAAO,CAAA,OAAA,CAAQ,UAAc,IAAA,IAAA,CAAA;AACxD,CAAA;AAJS,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA,CAAA;ACvGF,IAAM,UAAN,MAAc;AAAA,EAZrB;AAYqB,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGpB,YAAY,MAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GACf;AAAA,EAEA,MAAgB,QAAQ,SAAmB,EAAA;AAC1C,IAAM,MAAA,OAAA,GAAeG,wBAAQ,SAAS,CAAA,CAAA;AAEtC,IAAA,IAAI,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,qBAAkB,KAAM,CAAA,CAAA,6BAAA,EAAgCD,aAAK,CAAA,SAAA,EAAW,IAAI,GAAA,CAAI,OAAO,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAEpH,IAAI,IAAA;AACH,MAAM,MAAA,KAAA,GAAWE,0BAAY,OAAO,CAAA,CAAA;AAEpC,MAAA,OAAO,KAAM,CAAA,MAAA,CAAO,CAAC,IAAA,KAAS,KAAK,QAAS,CAAA,KAAK,CAAK,IAAA,IAAA,CAAK,SAAS,MAAM,CAAA,IAAK,IAAK,CAAA,QAAA,CAAS,MAAM,CAAC,CAAA,CAAA;AAAA,aAC5F,KAAO,EAAA;AACf,MAAW,kBAAA,CAAA,KAAA,CAAM,CAA2BF,wBAAAA,EAAAA,aAAAA,CAAK,SAAW,EAAA,IAAI,IAAI,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,EAAK,KAAc,CAAA,CAAA;AAChG,MAAA,OAAO,EAAC,CAAA;AAAA,KACT;AAAA,GACD;AAAA,EAEA,MAAgB,KAAK,QAAkB,EAAA;AACtC,IAAA,IAAI,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,qBAAkB,KAAM,CAAA,CAAA,mBAAA,EAAsBA,aAAK,CAAA,QAAA,EAAU,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAE1G,IAAI,IAAA;AACH,MAAM,MAAA,IAAA,GAAA,CAAS,MAAM,OAAO,CAAU,OAAA,EAAA,QAAQ,MAAM,OAAY,IAAA,MAAM,OAAO,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,CAAA,CAAA;AAE/F,MAAM,MAAA,QAAA,GAAW,IAAK,IAAa,EAAA,CAAA;AAEnC,MAAA,MAAM,CAAC,UAAY,EAAA,KAAK,IAAI,QAAS,CAAA,UAAA,CAAW,MAAM,GAAG,CAAA,CAAA;AAEzD,MAAA,KAAA,GACG,KAAK,MAAO,CAAA,KAAmB,EAAE,UAA6C,CAAA,CAAE,IAAI,QAAS,CAAA,GAAA,EAAK,QAAiB,CAAA,GACnH,KAAK,MAAO,CAAA,UAAqC,EAAE,GAAI,CAAA,QAAA,CAAS,KAAK,QAAiB,CAAA,CAAA;AAEzF,MAAA,IAAI,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,qBAAkB,KAAM,CAAA,CAAA,OAAA,EAAUA,aAAK,CAAA,QAAA,CAAS,KAAK,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAElG,MAAO,OAAA,QAAA,CAAA;AAAA,aACC,KAAO,EAAA;AACf,MAAW,kBAAA,CAAA,KAAA,CAAM,CAAiBA,cAAAA,EAAAA,aAAAA,CAAK,QAAU,EAAA,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,EAAK,KAAc,CAAA,CAAA;AACtF,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AAAA,GACD;AACD,CAAA,CAAA;AC3CO,IAAM,cAAA,GAAN,cAA6B,OAAQ,CAAA;AAAA,EAb5C;AAa4C,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAC3C,YAAY,MAAuB,EAAA;AAClC,IAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAAA,GACb;AAAA,EAEA,MAAgB,kBAAkB,OAA4C,EAAA;AAC7E,IAAI,IAAA,CAAC,IAAK,CAAA,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,KAAO,EAAA,IAAA,CAAK,MAAO,CAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,GAAQ,EAAC,CAAA;AAC7E,IAAK,IAAA,CAAA,MAAA,CAAO,QAAQ,OAAQ,CAAA,KAAA,CAAM,SAAS,OAAQ,CAAA,MAAA,IAAU,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAA;AAElF,IAAA,KAAA,MAAW,QAAQ,MAAM,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACzD,MAAA,MAAM,OAAU,GAAA,MAAM,IAAK,CAAA,IAAA,CAAKC,uBAAK,CAAA,OAAA,CAAQ,CAAG,EAAA,OAAA,CAAQ,SAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC,CAAA,CAAA;AAE5E,MAAA,IAAI,CAAC,OAAS,EAAA,SAAA;AAEd,MAAI,IAAA,OAAA,CAAQ,YAAY,uBAA2B,IAAA,OAAA,CAAQ,YAAY,qBAAyB,IAAA,OAAA,CAAQ,YAAY,uBAAyB,EAAA;AAC5I,QAAI,IAAA,CAAC,IAAK,CAAA,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,KAAM,CAAA,MAAA,EAAa,IAAA,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,KAAM,CAAA,KAAA,EAAA,CAAA;AAAA,aAAA,IACvE,CAAC,OAAQ,CAAA,MAAA,OAAa,MAAO,CAAA,QAAA,CAAS,MAAM,KAAM,CAAA,KAAA,EAAA,CAAA;AAAA,aACjD,IAAA,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,KAAM,CAAA,MAAA,EAAA,CAAA;AAAA,OACvC;AAAA,KACD;AAAA,GACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,MAAgB,oBAAoB,OAA8C,EAAA;AAAA,GAAC;AAAA,EACnF,MAAgB,oBAAoB,OAA8C,EAAA;AAAA,GAAC;AACpF,CAAA,CAAA;;;AC5CO,IAAM,OAAN,MAAW;AAAA,EAJlB;AAIkB,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGjB,YAAY,MAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GACf;AACD,CAAA,CAAA;;;ACLO,IAAM,UAAA,GAAN,cAAyB,IAAK,CAAA;AAAA,EALrC;AAKqC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EACpC,YAAY,MAAuB,EAAA;AAClC,IAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAAA,GACb;AAAA,EAEO,OAAO,SAA2B,EAAA;AACxC,IAAA,IAAI,CAAC,SAAA,EAAuB,SAAA,GAAA,IAAA,CAAK,OAAO,MAAU,IAAA,CAAA,CAAA;AAClD,IAAA,IAAI,eAAe,SAAY,GAAA,GAAA,CAAA;AAC/B,IAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,OAAQ,CAAA,CAAA;AAC9C,IAAgB,YAAA,IAAA,OAAA,CAAA;AAChB,IAAA,IAAI,IAAO,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,KAAK,CAAA,CAAA;AAC1C,IAAgB,YAAA,IAAA,KAAA,CAAA;AAChB,IAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,IAAI,CAAA,CAAA;AAC1C,IAAgB,YAAA,IAAA,IAAA,CAAA;AAChB,IAAA,IAAI,OAAU,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,EAAE,CAAA,CAAA;AAC1C,IAAA,IAAI,OAAU,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,EAAE,CAAA,CAAA;AAE1C,IAAI,IAAA,KAAA,IAAS,CAAG,EAAA,OAAO,CAAG,EAAA,KAAK,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SACrD,IAAA,IAAA,IAAQ,GAAU,OAAA,CAAA,EAAG,IAAI,CAAK,EAAA,EAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SAAA,IAC/C,SAAS,CAAG,EAAA,OAAO,CAAG,EAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SAAA,IACvC,WAAW,CAAG,EAAA,OAAO,CAAG,EAAA,OAAO,KAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SAC/C,OAAO,GAAG,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AACD,CAAA,CAAA;;;ACXa,IAAA,aAAA,GAAN,cAA4CE,kBAAO,CAAA,MAAA,CAAA;AAAA,EAjB1D;AAiB0D,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAgBzD,WAAA,CAAY,cAAqB,EAAA,cAAA,EAAqB,MAAW,EAAA;AAChE,IAAA,KAAA,CAAM,cAAc,CAAA,CAAA;AAEpB,IAAK,IAAA,CAAA,QAAA,GAAWC,MACd,MAAO,CAAA;AAAA;AAAA,MAEP,KAAA,EAAOA,MAAE,MAAO,EAAA;AAAA;AAAA,MAGhB,MAAQ,EAAAA,KAAA,CAAE,OAAQ,EAAA,CAAE,QAAQ,KAAK,CAAA;AAAA,MACjC,MAAA,EAAQA,MAAE,KAAM,CAAAA,KAAA,CAAE,QAAQ,CAAA,CAAE,OAAQ,CAAA,EAAE,CAAA;AAAA,MACtC,MAAA,EAAQA,MAAE,KAAM,CAAAA,KAAA,CAAE,QAAQ,CAAA,CAAE,OAAQ,CAAA,EAAE,CAAA;AAAA;AAAA,MAGtC,KAAO,EAAAA,KAAA,CAAE,OAAQ,EAAA,CAAE,QAAQ,KAAK,CAAA;AAAA,KAChC,EACA,KAAM,CAAA,EAAE,GAAG,cAAgB,EAAA,GAAG,QAAQ,CAAA,CAAA;AAExC,IAAA,IAAA,CAAK,KAAQ,GAAA;AAAA,MACZ,MAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,MACP,OAAS,EAAA,IAAA;AAAA,MACT,UAAY,EAAA,IAAA;AAAA,MACZ,MAAQ,EAAA,IAAA;AAAA,MACR,SAAW,EAAA,IAAA;AAAA,MACX,KAAO,EAAA,IAAA;AAAA,KACR,CAAA;AAEA,IAAK,IAAA,CAAA,IAAA,GAAO,IAAI,UAAA,CAAW,IAAI,CAAA,CAAA;AAE/B,IAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAEV,IAAA,IAAA,CAAK,OAAU,GAAA;AAAA,MACd,cAAA,EAAgB,IAAI,cAAA,CAAe,IAAI,CAAA;AAAA,MAEvC,SAAS,EAAC;AAAA,KACX,CAAA;AAEA,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACf,OAAA,EAAS,IAAYD,kBAAW,CAAA,UAAA,EAAA;AAAA,MAChC,KAAA,EAAO,IAAYA,kBAAW,CAAA,UAAA,EAAA;AAAA,MAC9B,OAAA,EAAS,IAAYA,kBAAW,CAAA,UAAA,EAAA;AAAA,MAChC,KAAO,EAAA;AAAA,QACN,KAAO,EAAA;AAAA,UACN,KAAO,EAAA,CAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,SACT;AAAA,QACA,OAAS,EAAA;AAAA,UACR,KAAO,EAAA,CAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,SACT;AAAA,QACA,OAAS,EAAA;AAAA,UACR,KAAO,EAAA,CAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,SACT;AAAA,OACD;AAAA,KACD,CAAA;AAEA,IAAK,IAAA,CAAA,MAAA,GAAS,IAAYA,kBAAW,CAAA,UAAA,EAAA,CAAA;AACrC,IAAK,IAAA,CAAA,UAAA,GAAa,IAAYA,kBAAW,CAAA,UAAA,EAAA,CAAA;AAEzC,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAAc,OAAU,GAAA;AAEvB,IAAA,IAAA,CAAK,MAAO,EAAA,CAAA;AAGZ,IAAK,IAAA,CAAA,KAAA,CAAM,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAAA,GAC/B;AAAA,EAEA,MAAc,MAAS,GAAA;AACtB,IAAK,IAAA,CAAA,IAAA,CAAK,OAAS,EAAA,OAAO,MAAW,KAAA;AACpC,MAAA,MAAM,WAAsI,EAAE,KAAA,EAAO,EAAI,EAAA,MAAA,EAAQ,EAAG,EAAA,CAAA;AAEpK,MAAI,IAAA,IAAA,CAAK,SAAS,MAAQ,EAAA;AACzB,QAAA,IAAI,CAAC,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAQ,KAAO,EAAA,MAAA,EAAiB,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,KAAa,CAAA,CAAA;AAAA,aACxF;AACJ,UAAS,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAE5E,UAAA,QAAA,CAAS,KAAM,CAAA,IAAA,CAAK,GAAI,IAAA,CAAK,QAAS,CAAA,KAAA,CAAM,MAAO,CAAA,CAAC,CAAM,KAAA,CAAC,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAAA,SAC7E;AAEA,QAAA,IAAI,CAAC,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAQ,OAAS,EAAA,MAAA,EAAiB,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,OAAe,CAAA,CAAA;AAAA,aAC5F;AACJ,UAAS,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,OAAQ,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAE9E,UAAA,QAAA,CAAS,KAAM,CAAA,IAAA,CAAK,GAAI,IAAA,CAAK,QAAS,CAAA,OAAA,CAAQ,MAAO,CAAA,CAAC,CAAM,KAAA,CAAC,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAAA,SAC/E;AAAA,OACD,MAAgB,QAAA,CAAA,KAAA,CAAM,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,OAAiB,EAAA,GAAI,IAAK,CAAA,QAAA,CAAS,KAAa,CAAA,CAAA;AAE7F,MAAW,KAAA,MAAA,EAAA,IAAM,IAAK,CAAA,QAAA,CAAS,MAAQ,EAAA;AACtC,QAAA,MAAM,KAAQ,GAAA,MAAM,IAAK,CAAA,MAAA,CAAO,MAAM,EAAE,CAAA,CAAA;AAExC,QAAI,IAAA,CAAC,QAAS,CAAA,KAAA,CAAM,MAAQ,EAAA,MAAA;AAE5B,QAAI,IAAA,IAAA,CAAK,QAAS,CAAA,KAAA,EAAkB,kBAAA,CAAA,KAAA,CAAM,CAA2CL,wCAAAA,EAAAA,yBAAAA,CAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,CAAC,CAAE,CAAA,CAAA,CAAA;AAEpH,QAAK,IAAA,CAAA,IAAA,CAAK,IAAYK,kBAAO,CAAA,MAAA,CAAA,wBAAA,CAAyB,OAAO,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA,EAAG,EAAE,IAAA,EAAO,SAAS,KAAc,CAAA,GAAA,CAAI,CAAC,CAACE,GAAI,EAAA,OAAO,MAAW,OAAQ,CAAA,MAAA,EAAQ,CAAA,EAAG,CAAA,CAAA;AAE1J,QAAA,MAAM,kBAAW,CAAA,GAAA;AAAA,UACf,QAAS,CAAA,KAAA,CAAc,GAAI,CAAA,CAAC,CAACA,GAAE,CAAgBP,KAAAA,yBAAAA,CAAQO,GAAI,EAAA,UAAU,CAAC,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,UAClF,KAAA;AAAA,UACA,CAAA,SAAA,EAAYP,yBAAQ,CAAA,OAAA,EAAS,OAAS,EAAA,MAAM,CAAC,CAAA,aAAA,EAAgBA,yBAAQ,CAAA,KAAA,CAAM,IAAM,EAAA,QAAQ,CAAC,CAAA,CAAA;AAAA,SAC3F,CAAA;AAAA,OACD;AAEA,MAAI,IAAA,IAAA,CAAK,SAAS,MAAQ,EAAA;AACzB,QAAA,IAAI,IAAK,CAAA,QAAA,CAAS,KAAO,EAAA,kBAAA,CAAW,MAAM,CAAwC,sCAAA,CAAA,CAAA,CAAA;AAElF,QAAA,IAAA,CAAK,IAAK,CAAA,GAAA,CAAYK,kBAAO,CAAA,MAAA,CAAA,mBAAA,CAAoB,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,EAAG,EAAE,IAAA,EAAM,EAAC,EAAG,CAAA,CAAA;AAE9E,QAAM,MAAA,kBAAA,CAAW,GAAK,CAAA,QAAA,CAAS,MAAe,CAAA,GAAA,CAAI,CAAC,CAAC,EAAE,CAAgBL,KAAAA,yBAAAA,CAAQ,EAAI,EAAA,UAAU,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA,EAAG,OAAS,EAAA,CAAA,SAAA,EAAYA,0BAAQ,QAAU,EAAA,SAAA,EAAW,MAAM,CAAC,CAAW,SAAA,CAAA,CAAA,CAAA;AAAA,OAChL;AAAA,KACA,CAAA,CAAA;AAAA,GACF;AACD,EAAA;AClJa,IAAA,mBAAA,GAAN,cAA0CQ,kBAAoB,CAAA,mBAAA,CAAA;AAAA,EAJrE;AAIqE,IAAA,MAAA,CAAA,IAAA,EAAA,qBAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAMpE,YAAY,OAAc,EAAA;AACzB,IAAM,KAAA,EAAA,CAAA;AAEN,IAAA,IAAA,CAAK,MAAM,OAAQ,CAAA,EAAA,CAAA;AAEnB,IAAK,IAAA,CAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAEzB,IAAK,IAAA,CAAA,cAAA,CAAe,QAAQ,WAAW,CAAA,CAAA;AAEvC,IAAK,IAAA,CAAA,MAAA,GAAS,QAAQ,MAAU,IAAA,IAAA,CAAA;AAEhC,IAAA,IAAA,CAAK,QAAW,GAAA,qBAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,UAAa,GAAA,gBAAA,CAAA;AAAA,GACnB;AACD","file":"main.cjs","sourcesContent":["/** @format */\n\nimport sharpyy, { link } from 'sharpyy';\n\nexport default new (class XernerxLog {\n\tpublic declare readonly baseText;\n\n\tconstructor() {\n\t\tthis.baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${new Date()\n\t\t\t.toLocaleTimeString()\n\t\t\t.split(/ /gim)\n\t\t\t.map((str) =>\n\t\t\t\tstr\n\t\t\t\t\t.split(':')\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\n\t\t\t\t\t.join(':')\n\t\t\t)\n\t\t\t.join(' ')} | ${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb |`;\n\t}\n\n\tinfo(message: string) {\n\t\treturn console.info(`✔️ |`, this.baseText, message);\n\t}\n\n\tasync error(message: string, error?: Error) {\n\t\tconst { default: boxen } = await import('boxen');\n\n\t\tconst errorMessage = boxen(error?.stack as string, { padding: 1, margin: 1, borderStyle: 'round', borderColor: 'red' });\n\n\t\tif (error) return console.error(`❗ |`, this.baseText, message, errorMessage);\n\t\telse return console.error(`❗ |`, this.baseText, message);\n\t}\n\n\twarn(message: string, url?: URL) {\n\t\tconsole.warn(`⚠️ |`, this.baseText, message, url ? `Read more here ${link('here', url)}` : '');\n\t}\n\n\tdebug(message: string) {\n\t\treturn console.debug(`🐛 |`, this.baseText, message);\n\t}\n\n\tasync box(message: string, color?: string, title?: string) {\n\t\tconst { default: boxen } = await import('boxen');\n\n\t\tconst time = new Date()\n\t\t\t.toLocaleTimeString()\n\t\t\t.split(/ /gim)\n\t\t\t.map((str) =>\n\t\t\t\tstr\n\t\t\t\t\t.split(':')\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\n\t\t\t\t\t.join(':')\n\t\t\t)\n\t\t\t.join(' ');\n\n\t\treturn console.info(boxen(message, { padding: 1, margin: 1, borderStyle: 'round', borderColor: color, title: `${time} - ${sharpyy('XERNERX', 'txRainbow', 'bold')} - ${title || ''}` }));\n\t}\n})();\n","/** @format */\n\nimport sharpyy from 'sharpyy';\nimport { Color } from 'ora';\n\nimport { XernerxClient } from '../client/XernerxClient.js';\nimport XernerxLog from '../tools/XernerxLog.js';\n\nlet init = false;\n\nexport async function start(client: XernerxClient) {\n\tif (init) return;\n\n\tif (client.settings.debug) XernerxLog.info('Debug mode enabled, preventing console clear and logging all handlings...');\n\telse console.clear();\n\n\tconst { default: ora, spinners } = await import('ora');\n\tconst { default: boxen } = await import('boxen');\n\n\tconsole.info(\n\t\tboxen(sharpyy('XERNERX', 'txRainbow', 'bold', 'underlines'), {\n\t\t\tpadding: 1,\n\t\t\tmargin: 1,\n\t\t\tborderStyle: 'round',\n\t\t\theight: 3,\n\t\t\talign: 'center',\n\t\t\tborderColor: 'magenta',\n\t\t\tfullscreen: (width, height) => [width - 5, height],\n\t\t})\n\t);\n\n\tif (!client.options.intents.has('Guilds'))\n\t\tXernerxLog.warn('Your bot is signed in without the Guilds intent, this may cause issues with the bot.', new URL('https://discord.com/developers/docs/topics/gateway#gateway-intents'));\n\n\tconst spinner = ora();\n\n\tspinner.spinner = spinners.dots12;\n\n\tspinner.start();\n\n\tlet index = 0;\n\n\tsetInterval(async () => {\n\t\t// Update Discord stats\n\t\tcalculateStats(client);\n\n\t\t// Update commandline\n\n\t\tconst time = new Date()\n\t\t\t\t.toLocaleTimeString()\n\t\t\t\t.split(/ /gim)\n\t\t\t\t.map((str) =>\n\t\t\t\t\tstr\n\t\t\t\t\t\t.split(':')\n\t\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\n\t\t\t\t\t\t.join(':')\n\t\t\t\t)\n\t\t\t\t.join(' '),\n\t\t\tram = `${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb`;\n\n\t\tconst colors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan'];\n\n\t\tconst baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${time} | ${ram} | `;\n\n\t\tif (client.user) {\n\t\t\tspinner.color = colors[index] as Color;\n\n\t\t\tconst counts = {\n\t\t\t\tlocal: client.commands.stats.slash.local + client.commands.stats.message.local + client.commands.stats.context.local,\n\t\t\t\tglobal: client.commands.stats.slash.global + client.commands.stats.message.global + client.commands.stats.context.global,\n\t\t\t};\n\n\t\t\tspinner.text = boxen(\n\t\t\t\tObject.entries({\n\t\t\t\t\t'Name': sharpyy(client.user.tag, 'txBlue'),\n\t\t\t\t\t'Status': `${sharpyy('Online', 'txGreen')} | ${client.settings.global ? sharpyy('Global', 'txGreen') : sharpyy('Local', 'txRed')}`,\n\t\t\t\t\t'Uptime': client.util\n\t\t\t\t\t\t.uptime(client.uptime)\n\t\t\t\t\t\t.split('')\n\t\t\t\t\t\t.map((c) => (isNaN(Number(c)) ? c : sharpyy(c, 'txCyan')))\n\t\t\t\t\t\t.join(''),\n\t\t\t\t\t'Commands': client.settings.global ? `${counts.local ? `local: ${counts.local}` : ''}|${counts.global ? `global: ${counts.global}` : ''}` : counts.local + counts.global,\n\t\t\t\t\t'RAM Usage': ram,\n\t\t\t\t\t'Guilds': (await Promise.all(client.settings.guilds.map(async (id) => sharpyy((await client.guilds.fetch(id))?.name || id, 'txBlue')))).join(', '),\n\t\t\t\t\t'Owners': (await Promise.all(client.settings.owners.map(async (id) => sharpyy((await client.users.fetch(id))?.username || id, 'txBlue')))).join(', '),\n\t\t\t\t\t'GuildCount': sharpyy(String(client.stats.guilds), 'txCyan'),\n\t\t\t\t\t'UserCount': sharpyy(String(client.stats.users), 'txCyan'),\n\t\t\t\t\t'ShardCount': sharpyy(String(client.stats.shardCount), 'txCyan'),\n\t\t\t\t})\n\t\t\t\t\t.map(([key, value]) => `${key}: ${value}`)\n\t\t\t\t\t.join('\\n'),\n\t\t\t\t{\n\t\t\t\t\tpadding: 1,\n\t\t\t\t\tmargin: 1,\n\t\t\t\t\tborderStyle: 'round',\n\t\t\t\t\tborderColor: 'magenta',\n\t\t\t\t\ttitle: time + ' - ' + sharpyy('XERNERX', 'txRainbow', 'bold') + '\\x1B[35m',\n\t\t\t\t\theight: 15,\n\t\t\t\t\tfullscreen: (width, height) => [width - 5, height],\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tspinner.color = 'green';\n\n\t\t\tspinner.text = baseText + `Connecting to Discord${index == 0 ? '.' : index == 1 ? '..' : index == 2 ? '...' : ''}`;\n\t\t}\n\n\t\tindex++;\n\n\t\tif (index == colors.length - 1) index = 0;\n\t}, 250);\n\n\tinit = true;\n}\n\nfunction calculateStats(client: XernerxClient) {\n\tclient.stats.guilds = client.guilds.cache.size;\n\tclient.stats.users = client.users.cache.size;\n\tclient.stats.shardCount = client.options.shardCount || null;\n}\n","/** @format */\n// import * as inquirer from '@inquirer/prompts';\n// import { link } from 'sharpyy';\n\nimport { XernerxClient } from '../client/XernerxClient.js';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nimport { XernerxFile } from '../types/types.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport { link } from 'sharpyy';\n\nexport class Handler {\n\tpublic declare readonly client: XernerxClient;\n\n\tconstructor(client: XernerxClient) {\n\t\tthis.client = client;\n\t}\n\n\tprotected async readdir(directory: string) {\n\t\tconst dirpath = path.resolve(directory);\n\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to read directory ${link(directory, new URL(dirpath))}`);\n\n\t\ttry {\n\t\t\tconst files = fs.readdirSync(dirpath);\n\n\t\t\treturn files.filter((file) => file.endsWith('.js') || file.endsWith('.mjs') || file.endsWith('.cjs'));\n\t\t} catch (error) {\n\t\t\tXernerxLog.error(`Error reading directory ${link(directory, new URL(dirpath))}:`, error as Error);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\tprotected async load(filepath: string) {\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to load ${link(filepath, new URL(filepath))}`);\n\n\t\ttry {\n\t\t\tconst file = ((await import(`file://${filepath}`))?.default || (await import(`file://${filepath}`))) as XernerxFile;\n\n\t\t\tconst openFile = new (file as any)() as XernerxFile;\n\n\t\t\tconst [collection, group] = openFile.collection.split('.');\n\n\t\t\tgroup\n\t\t\t\t? this.client[group as 'commands'][collection as 'message' | 'slash' | 'context'].set(openFile._id, openFile as never)\n\t\t\t\t: this.client[collection as 'events' | 'inhibitors'].set(openFile._id, openFile as never);\n\n\t\t\tif (this.client.settings.debug) XernerxLog.debug(`Loaded ${link(openFile._id, new URL(filepath))}`);\n\n\t\t\treturn openFile as XernerxFile;\n\t\t} catch (error) {\n\t\t\tXernerxLog.error(`Error loading ${link(filepath, new URL(filepath))}:`, error as Error);\n\t\t\treturn null;\n\t\t}\n\t}\n}\n","/** @format */\n\n/**\n * @module Handler\n * @category Core\n * @description Represents a handler for handling commands.\n */\n\nimport { XernerxClient } from '../client/XernerxClient.js';\nimport { XernerxContextCommandHandlerOptions, XernerxMessageCommandHandlerOptions, XernerxSlashCommandHandlerOptions } from '../types/interfaces.js';\nimport { Handler } from './Handler.js';\nimport path from 'path';\n\nexport class CommandHandler extends Handler {\n\tconstructor(client: XernerxClient) {\n\t\tsuper(client);\n\t}\n\n\tprotected async loadSlashCommands(options: XernerxSlashCommandHandlerOptions) {\n\t\tif (!this.client.modules.options.slash) this.client.modules.options.slash = {};\n\t\tthis.client.modules.options.slash.global = options.global ?? this.client.settings.global;\n\n\t\tfor (const file of await this.readdir(options.directory)) {\n\t\t\tconst command = await this.load(path.resolve(`${options.directory}/${file}`));\n\n\t\t\tif (!command) continue;\n\n\t\t\tif (command.filetype == 'XernerxMessageCommand' || command.filetype == 'XernerxSlashCommand' || command.filetype == 'XernerxContextCommand') {\n\t\t\t\tif (!this.client.modules.options.slash.global) this.client.commands.stats.slash.local++;\n\t\t\t\telse if (!command.global) this.client.commands.stats.slash.local++;\n\t\t\t\telse this.client.commands.stats.slash.global++;\n\t\t\t}\n\t\t}\n\t}\n\t/**\n\t * Loads message commands from the specified directory.\n\t *\n\t * This method iterates through the files in the given directory,\n\t * attempts to load each file as a message command, and updates the\n\t * command statistics accordingly.\n\t *\n\t * @param options - The options for loading message commands.\n\t * @param options.directory - The directory from which to load message commands.\n\t *\n\t * @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.\n\t */\n\tprotected async loadMessageCommands(options: XernerxMessageCommandHandlerOptions) {}\n\tprotected async loadContextCommands(options: XernerxContextCommandHandlerOptions) {}\n}\n","/** @format */\n\nimport { XernerxClient } from '../main.js';\n\nexport class Util {\n\tpublic declare readonly client: XernerxClient;\n\n\tconstructor(client: XernerxClient) {\n\t\tthis.client = client;\n\t}\n}\n","/** @format */\n\nimport { XernerxClient } from '../main.js';\nimport { Util } from './Util.js';\n\nexport class ClientUtil extends Util {\n\tconstructor(client: XernerxClient) {\n\t\tsuper(client);\n\t}\n\n\tpublic uptime(timestamp?: number | null) {\n\t\tif (!timestamp) timestamp = this.client.uptime || 0;\n\t\tlet totalSeconds = timestamp / 1000;\n\t\tlet years = Math.floor(totalSeconds / 31536000);\n\t\ttotalSeconds %= 31536000;\n\t\tlet days = Math.floor(totalSeconds / 86400);\n\t\ttotalSeconds %= 86400;\n\t\tlet hours = Math.floor(totalSeconds / 3600);\n\t\ttotalSeconds %= 3600;\n\t\tlet minutes = Math.floor(totalSeconds / 60);\n\t\tlet seconds = Math.floor(totalSeconds % 60);\n\n\t\tif (years >= 1) return `${years}y ${days}d ${hours}h ${minutes}m`;\n\t\telse if (days >= 1) return `${days}d ${hours}h ${minutes}m`;\n\t\telse if (hours >= 1) return `${hours}h ${minutes}m`;\n\t\telse if (minutes >= 1) return `${minutes}m ${seconds}s`;\n\t\telse return `${seconds}s`;\n\t}\n}\n","/** @format */\n\nimport * as Discord from 'discord.js';\nimport { z } from 'zod';\n\nimport { start } from '../util/prompts.js';\nimport { XernerxStats } from '../types/interfaces.js';\nimport { CommandHandler } from '../handlers/CommandHandler.js';\nimport { XernerxMessageCommand } from '../builders/XernerxMessageCommand.js';\nimport { XernerxSlashCommand } from '../main.js';\nimport { XernerxContextCommand } from '../builders/XernerxContextCommand.js';\nimport { XernerxEvent } from '../builders/XernerxEvent.js';\nimport { XernerxInhibitor } from '../builders/XernerxInhibitor.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport sharpyy from 'sharpyy';\nimport { ClientUtil } from '../util/ClientUtil.js';\n\nexport class XernerxClient<T = {}> extends Discord.Client {\n\tpublic declare readonly settings;\n\tpublic declare readonly stats: XernerxStats;\n\tpublic declare readonly modules: {\n\t\tcommandHandler: CommandHandler;\n\t\toptions: {\n\t\t\tmessage?: { global?: boolean };\n\t\t\tslash?: { global?: boolean };\n\t\t\tcontext?: { global?: boolean };\n\t\t};\n\t};\n\tpublic declare readonly util: ClientUtil;\n\tpublic declare readonly commands;\n\tpublic declare readonly events;\n\tpublic declare readonly inhibitors;\n\n\tconstructor(DiscordOptions: any, XernerxOptions: any, config: T) {\n\t\tsuper(DiscordOptions);\n\n\t\tthis.settings = z\n\t\t\t.object({\n\t\t\t\t// required settings\n\t\t\t\ttoken: z.string(),\n\n\t\t\t\t// optional settings\n\t\t\t\tglobal: z.boolean().default(false),\n\t\t\t\towners: z.array(z.string()).default([]),\n\t\t\t\tguilds: z.array(z.string()).default([]),\n\n\t\t\t\t// dev settings\n\t\t\t\tdebug: z.boolean().default(false),\n\t\t\t})\n\t\t\t.parse({ ...XernerxOptions, ...config });\n\n\t\tthis.stats = {\n\t\t\tguilds: null,\n\t\t\tusers: null,\n\t\t\tshardId: null,\n\t\t\tshardCount: null,\n\t\t\tshards: null,\n\t\t\tvoteCount: null,\n\t\t\tvotes: null,\n\t\t};\n\n\t\tthis.util = new ClientUtil(this);\n\n\t\tstart(this);\n\n\t\tthis.modules = {\n\t\t\tcommandHandler: new CommandHandler(this),\n\n\t\t\toptions: {},\n\t\t};\n\n\t\tthis.commands = {\n\t\t\tmessage: new Discord.Collection() as Discord.Collection<string, XernerxMessageCommand>,\n\t\t\tslash: new Discord.Collection() as Discord.Collection<string, XernerxSlashCommand>,\n\t\t\tcontext: new Discord.Collection() as Discord.Collection<string, XernerxContextCommand>,\n\t\t\tstats: {\n\t\t\t\tslash: {\n\t\t\t\t\tlocal: 0,\n\t\t\t\t\tglobal: 0,\n\t\t\t\t},\n\t\t\t\tmessage: {\n\t\t\t\t\tlocal: 0,\n\t\t\t\t\tglobal: 0,\n\t\t\t\t},\n\t\t\t\tcontext: {\n\t\t\t\t\tlocal: 0,\n\t\t\t\t\tglobal: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tthis.events = new Discord.Collection() as Discord.Collection<string, XernerxEvent>;\n\t\tthis.inhibitors = new Discord.Collection() as Discord.Collection<string, XernerxInhibitor>;\n\n\t\tthis.connect();\n\t}\n\n\tprivate async connect() {\n\t\t// slash cmds\n\t\tthis.deploy();\n\n\t\t// login\n\t\tthis.login(this.settings.token);\n\t}\n\n\tprivate async deploy() {\n\t\tthis.once('ready', async (client) => {\n\t\t\tconst commands: { local: Array<XernerxSlashCommand | XernerxContextCommand>; global: Array<XernerxSlashCommand | XernerxContextCommand> } = { local: [], global: [] };\n\n\t\t\tif (this.settings.global) {\n\t\t\t\tif (!this.modules.options.slash?.global) commands.global.push(...(this.commands.slash as any));\n\t\t\t\telse {\n\t\t\t\t\tcommands.global.push(...(this.commands.slash.filter((c) => c.global) as any));\n\n\t\t\t\t\tcommands.local.push(...(this.commands.slash.filter((c) => !c.global) as any));\n\t\t\t\t}\n\n\t\t\t\tif (!this.modules.options.context?.global) commands.global.push(...(this.commands.context as any));\n\t\t\t\telse {\n\t\t\t\t\tcommands.global.push(...(this.commands.context.filter((c) => c.global) as any));\n\n\t\t\t\t\tcommands.local.push(...(this.commands.context.filter((c) => !c.global) as any));\n\t\t\t\t}\n\t\t\t} else commands.local.push(...(this.commands.context as any), ...(this.commands.slash as any));\n\n\t\t\tfor (const id of this.settings.guilds) {\n\t\t\t\tconst guild = await this.guilds.fetch(id);\n\n\t\t\t\tif (!commands.local.length) break;\n\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands to guild: ${sharpyy(guild.name, 'txBlue')}`);\n\n\t\t\t\tthis.rest.put(Discord.Routes.applicationGuildCommands(client.user.id, id), { body: (commands.local as any).map(([id, command]: any) => command.toJSON()) });\n\n\t\t\t\tawait XernerxLog.box(\n\t\t\t\t\t(commands.local as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '),\n\t\t\t\t\t'red',\n\t\t\t\t\t`Deployed ${sharpyy('local', 'txRed', 'bold')} commands in ${sharpyy(guild.name, 'txBlue')}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.settings.global) {\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands globally`);\n\n\t\t\t\tthis.rest.put(Discord.Routes.applicationCommands(client.user.id), { body: [] });\n\n\t\t\t\tawait XernerxLog.box((commands.global as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '), 'green', `Deployed ${sharpyy('global', 'txGreen', 'bold')} commands`);\n\t\t\t}\n\t\t});\n\t}\n}\n","/** @format */\n\nimport * as Discord from 'discord.js';\n\nexport class XernerxSlashCommand extends Discord.SlashCommandBuilder {\n\tpublic declare readonly _id: string;\n\tpublic declare readonly global: boolean;\n\tpublic declare readonly filetype: 'XernerxSlashCommand';\n\tpublic declare readonly collection: 'slash.commands';\n\n\tconstructor(options: any) {\n\t\tsuper();\n\n\t\tthis._id = options.id;\n\n\t\tthis.setName(options.name);\n\n\t\tthis.setDescription(options.description);\n\n\t\tthis.global = options.global ?? true;\n\n\t\tthis.filetype = 'XernerxSlashCommand';\n\n\t\tthis.collection = 'slash.commands';\n\t}\n}\n"]}
|
package/dist/main.d.cts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Discord from 'discord.js';
|
|
2
|
+
export * from 'discord.js';
|
|
2
3
|
|
|
3
4
|
/** @format */
|
|
4
5
|
interface XernerxStats {
|
|
@@ -24,6 +25,11 @@ interface XernerxContextCommandHandlerOptions {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/** @format */
|
|
28
|
+
/**
|
|
29
|
+
* @module: Builder
|
|
30
|
+
* @description: Represents a context command in Xernerx Framework.
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
27
33
|
declare class XernerxContextCommand {
|
|
28
34
|
readonly _id: string;
|
|
29
35
|
readonly name: string;
|
|
@@ -90,10 +96,27 @@ declare class Handler {
|
|
|
90
96
|
}
|
|
91
97
|
|
|
92
98
|
/** @format */
|
|
99
|
+
/**
|
|
100
|
+
* @module Handler
|
|
101
|
+
* @category Core
|
|
102
|
+
* @description Represents a handler for handling commands.
|
|
103
|
+
*/
|
|
93
104
|
|
|
94
105
|
declare class CommandHandler extends Handler {
|
|
95
106
|
constructor(client: XernerxClient);
|
|
96
107
|
protected loadSlashCommands(options: XernerxSlashCommandHandlerOptions): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Loads message commands from the specified directory.
|
|
110
|
+
*
|
|
111
|
+
* This method iterates through the files in the given directory,
|
|
112
|
+
* attempts to load each file as a message command, and updates the
|
|
113
|
+
* command statistics accordingly.
|
|
114
|
+
*
|
|
115
|
+
* @param options - The options for loading message commands.
|
|
116
|
+
* @param options.directory - The directory from which to load message commands.
|
|
117
|
+
*
|
|
118
|
+
* @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.
|
|
119
|
+
*/
|
|
97
120
|
protected loadMessageCommands(options: XernerxMessageCommandHandlerOptions): Promise<void>;
|
|
98
121
|
protected loadContextCommands(options: XernerxContextCommandHandlerOptions): Promise<void>;
|
|
99
122
|
}
|
package/dist/main.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Discord from 'discord.js';
|
|
2
|
+
export * from 'discord.js';
|
|
2
3
|
|
|
3
4
|
/** @format */
|
|
4
5
|
interface XernerxStats {
|
|
@@ -24,6 +25,11 @@ interface XernerxContextCommandHandlerOptions {
|
|
|
24
25
|
}
|
|
25
26
|
|
|
26
27
|
/** @format */
|
|
28
|
+
/**
|
|
29
|
+
* @module: Builder
|
|
30
|
+
* @description: Represents a context command in Xernerx Framework.
|
|
31
|
+
*
|
|
32
|
+
*/
|
|
27
33
|
declare class XernerxContextCommand {
|
|
28
34
|
readonly _id: string;
|
|
29
35
|
readonly name: string;
|
|
@@ -90,10 +96,27 @@ declare class Handler {
|
|
|
90
96
|
}
|
|
91
97
|
|
|
92
98
|
/** @format */
|
|
99
|
+
/**
|
|
100
|
+
* @module Handler
|
|
101
|
+
* @category Core
|
|
102
|
+
* @description Represents a handler for handling commands.
|
|
103
|
+
*/
|
|
93
104
|
|
|
94
105
|
declare class CommandHandler extends Handler {
|
|
95
106
|
constructor(client: XernerxClient);
|
|
96
107
|
protected loadSlashCommands(options: XernerxSlashCommandHandlerOptions): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Loads message commands from the specified directory.
|
|
110
|
+
*
|
|
111
|
+
* This method iterates through the files in the given directory,
|
|
112
|
+
* attempts to load each file as a message command, and updates the
|
|
113
|
+
* command statistics accordingly.
|
|
114
|
+
*
|
|
115
|
+
* @param options - The options for loading message commands.
|
|
116
|
+
* @param options.directory - The directory from which to load message commands.
|
|
117
|
+
*
|
|
118
|
+
* @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.
|
|
119
|
+
*/
|
|
97
120
|
protected loadMessageCommands(options: XernerxMessageCommandHandlerOptions): Promise<void>;
|
|
98
121
|
protected loadContextCommands(options: XernerxContextCommandHandlerOptions): Promise<void>;
|
|
99
122
|
}
|
package/dist/main.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import * as Discord from 'discord.js';
|
|
2
|
+
export * from 'discord.js';
|
|
2
3
|
import { z } from 'zod';
|
|
3
4
|
import sharpyy2, { link } from 'sharpyy';
|
|
4
5
|
import * as fs from 'fs';
|
|
@@ -170,6 +171,18 @@ var CommandHandler = class extends Handler {
|
|
|
170
171
|
}
|
|
171
172
|
}
|
|
172
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Loads message commands from the specified directory.
|
|
176
|
+
*
|
|
177
|
+
* This method iterates through the files in the given directory,
|
|
178
|
+
* attempts to load each file as a message command, and updates the
|
|
179
|
+
* command statistics accordingly.
|
|
180
|
+
*
|
|
181
|
+
* @param options - The options for loading message commands.
|
|
182
|
+
* @param options.directory - The directory from which to load message commands.
|
|
183
|
+
*
|
|
184
|
+
* @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.
|
|
185
|
+
*/
|
|
173
186
|
async loadMessageCommands(options) {
|
|
174
187
|
}
|
|
175
188
|
async loadContextCommands(options) {
|
package/dist/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tools/XernerxLog.ts","../src/util/prompts.ts","../src/handlers/Handler.ts","../src/handlers/CommandHandler.ts","../src/util/Util.ts","../src/util/ClientUtil.ts","../src/client/XernerxClient.ts","../src/base/XernerxSlashCommand.ts"],"names":["sharpyy","str","link","path","id","Discord2"],"mappings":";;;;;;;;;AAIA,IAAO,kBAAA,GAAQ,IAAK,MAAM,UAAW,CAAA;AAAA,EAJrC;AAIqC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGpC,WAAc,GAAA;AACb,IAAA,IAAA,CAAK,QAAW,GAAA,CAAA,EAAGA,QAAQ,CAAA,SAAA,EAAW,aAAa,MAAM,CAAC,CAAM,GAAA,EAAA,iBAAA,IAAI,MAClE,EAAA,kBAAA,EACA,CAAA,KAAA,CAAM,MAAM,CACZ,CAAA,GAAA;AAAA,MAAI,CAAC,QACL,GACE,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAACC,IAAS,KAAA,KAAA,CAAM,OAAOA,IAAG,CAAC,IAAIA,IAAM,GAAAD,QAAA,CAAQC,MAAK,QAAQ,CAAE,CAChE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,MAEV,IAAK,CAAA,GAAG,CAAC,CAAM,GAAA,EAAAD,QAAA,CAAQ,OAAO,IAAK,CAAA,KAAA,CAAM,OAAQ,CAAA,WAAA,GAAc,GAAM,GAAA,GAAK,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAA,IAAA,CAAA,CAAA;AAAA,GAChG;AAAA,EAEA,KAAK,OAAiB,EAAA;AACrB,IAAA,OAAO,OAAQ,CAAA,IAAA,CAAK,CAAS,eAAA,CAAA,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,GACpD;AAAA,EAEA,MAAM,KAAM,CAAA,OAAA,EAAiB,KAAe,EAAA;AAC3C,IAAA,MAAM,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,MAAM,OAAO,OAAO,CAAA,CAAA;AAE/C,IAAA,MAAM,YAAe,GAAA,KAAA,CAAM,KAAO,EAAA,KAAA,EAAiB,EAAE,OAAA,EAAS,CAAG,EAAA,MAAA,EAAQ,CAAG,EAAA,WAAA,EAAa,OAAS,EAAA,WAAA,EAAa,OAAO,CAAA,CAAA;AAEtH,IAAI,IAAA,KAAA,SAAc,OAAQ,CAAA,KAAA,CAAM,YAAO,IAAK,CAAA,QAAA,EAAU,SAAS,YAAY,CAAA,CAAA;AAAA,gBAC/D,OAAQ,CAAA,KAAA,CAAM,CAAO,QAAA,CAAA,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,GACxD;AAAA,EAEA,IAAA,CAAK,SAAiB,GAAW,EAAA;AAChC,IAAA,OAAA,CAAQ,IAAK,CAAA,CAAA,eAAA,CAAA,EAAS,IAAK,CAAA,QAAA,EAAU,OAAS,EAAA,GAAA,GAAM,CAAkB,eAAA,EAAA,IAAA,CAAK,MAAQ,EAAA,GAAG,CAAC,CAAA,CAAA,GAAK,EAAE,CAAA,CAAA;AAAA,GAC/F;AAAA,EAEA,MAAM,OAAiB,EAAA;AACtB,IAAA,OAAO,OAAQ,CAAA,KAAA,CAAM,CAAQ,WAAA,CAAA,EAAA,IAAA,CAAK,UAAU,OAAO,CAAA,CAAA;AAAA,GACpD;AAAA,EAEA,MAAM,GAAA,CAAI,OAAiB,EAAA,KAAA,EAAgB,KAAgB,EAAA;AAC1D,IAAA,MAAM,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,MAAM,OAAO,OAAO,CAAA,CAAA;AAE/C,IAAM,MAAA,IAAA,GAAA,qBAAW,IAAK,EAAA,EACpB,oBACA,CAAA,KAAA,CAAM,MAAM,CACZ,CAAA,GAAA;AAAA,MAAI,CAAC,QACL,GACE,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAACC,IAAS,KAAA,KAAA,CAAM,OAAOA,IAAG,CAAC,IAAIA,IAAM,GAAAD,QAAA,CAAQC,MAAK,QAAQ,CAAE,CAChE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,KACX,CACC,KAAK,GAAG,CAAA,CAAA;AAEV,IAAO,OAAA,OAAA,CAAQ,IAAK,CAAA,KAAA,CAAM,OAAS,EAAA,EAAE,OAAS,EAAA,CAAA,EAAG,MAAQ,EAAA,CAAA,EAAG,WAAa,EAAA,OAAA,EAAS,WAAa,EAAA,KAAA,EAAO,KAAO,EAAA,CAAA,EAAG,IAAI,CAAA,GAAA,EAAMD,QAAQ,CAAA,SAAA,EAAW,WAAa,EAAA,MAAM,CAAC,CAAA,GAAA,EAAM,KAAS,IAAA,EAAE,CAAG,CAAA,EAAC,CAAC,CAAA,CAAA;AAAA,GACxL;AACD,CAAG,EAAA,CAAA;;;ACjDH,IAAI,IAAO,GAAA,KAAA,CAAA;AAEX,eAAsB,MAAM,MAAuB,EAAA;AAClD,EAAA,IAAI,IAAM,EAAA,OAAA;AAEV,EAAA,IAAI,MAAO,CAAA,QAAA,CAAS,KAAO,EAAA,kBAAA,CAAW,KAAK,2EAA2E,CAAA,CAAA;AAAA,eACzG,KAAM,EAAA,CAAA;AAEnB,EAAA,MAAM,EAAE,OAAS,EAAA,GAAA,EAAK,UAAa,GAAA,MAAM,OAAO,KAAK,CAAA,CAAA;AACrD,EAAA,MAAM,EAAE,OAAS,EAAA,KAAA,EAAU,GAAA,MAAM,OAAO,OAAO,CAAA,CAAA;AAE/C,EAAQ,OAAA,CAAA,IAAA;AAAA,IACP,MAAMA,QAAQ,CAAA,SAAA,EAAW,WAAa,EAAA,MAAA,EAAQ,YAAY,CAAG,EAAA;AAAA,MAC5D,OAAS,EAAA,CAAA;AAAA,MACT,MAAQ,EAAA,CAAA;AAAA,MACR,WAAa,EAAA,OAAA;AAAA,MACb,MAAQ,EAAA,CAAA;AAAA,MACR,KAAO,EAAA,QAAA;AAAA,MACP,WAAa,EAAA,SAAA;AAAA,MACb,UAAA,0BAAa,KAAO,EAAA,MAAA,KAAW,CAAC,KAAQ,GAAA,CAAA,EAAG,MAAM,CAArC,EAAA,YAAA,CAAA;AAAA,KACZ,CAAA;AAAA,GACF,CAAA;AAEA,EAAA,IAAI,CAAC,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,IAAI,QAAQ,CAAA;AACvC,IAAA,kBAAA,CAAW,IAAK,CAAA,sFAAA,EAAwF,IAAI,GAAA,CAAI,oEAAoE,CAAC,CAAA,CAAA;AAEtL,EAAA,MAAM,UAAU,GAAI,EAAA,CAAA;AAEpB,EAAA,OAAA,CAAQ,UAAU,QAAS,CAAA,MAAA,CAAA;AAE3B,EAAA,OAAA,CAAQ,KAAM,EAAA,CAAA;AAEd,EAAA,IAAI,KAAQ,GAAA,CAAA,CAAA;AAEZ,EAAA,WAAA,CAAY,YAAY;AAEvB,IAAA,cAAA,CAAe,MAAM,CAAA,CAAA;AAIrB,IAAM,MAAA,IAAA,GAAA,qBAAW,IAAK,EAAA,EACnB,oBACA,CAAA,KAAA,CAAM,MAAM,CACZ,CAAA,GAAA;AAAA,MAAI,CAAC,QACL,GACE,CAAA,KAAA,CAAM,GAAG,CACT,CAAA,GAAA,CAAI,CAACC,IAAS,KAAA,KAAA,CAAM,OAAOA,IAAG,CAAC,IAAIA,IAAMD,GAAAA,QAAAA,CAAQC,MAAK,QAAQ,CAAE,CAChE,CAAA,IAAA,CAAK,GAAG,CAAA;AAAA,MAEV,IAAK,CAAA,GAAG,GACV,GAAM,GAAA,CAAA,EAAGD,SAAQ,MAAO,CAAA,IAAA,CAAK,MAAM,OAAQ,CAAA,WAAA,GAAc,GAAM,GAAA,GAAK,IAAI,GAAG,CAAA,EAAG,QAAQ,CAAC,CAAA,EAAA,CAAA,CAAA;AAExF,IAAA,MAAM,SAAS,CAAC,KAAA,EAAO,SAAS,QAAU,EAAA,MAAA,EAAQ,WAAW,MAAM,CAAA,CAAA;AAEnE,IAAM,MAAA,QAAA,GAAW,CAAGA,EAAAA,QAAAA,CAAQ,SAAW,EAAA,WAAA,EAAa,MAAM,CAAC,CAAA,GAAA,EAAM,IAAI,CAAA,GAAA,EAAM,GAAG,CAAA,GAAA,CAAA,CAAA;AAE9E,IAAA,IAAI,OAAO,IAAM,EAAA;AAChB,MAAQ,OAAA,CAAA,KAAA,GAAQ,OAAO,KAAK,CAAA,CAAA;AAE5B,MAAA,MAAM,MAAS,GAAA;AAAA,QACd,KAAO,EAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,MAAM,KAAQ,GAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,OAAQ,CAAA,KAAA,GAAQ,MAAO,CAAA,QAAA,CAAS,MAAM,OAAQ,CAAA,KAAA;AAAA,QAC/G,MAAQ,EAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,MAAM,MAAS,GAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,OAAQ,CAAA,MAAA,GAAS,MAAO,CAAA,QAAA,CAAS,MAAM,OAAQ,CAAA,MAAA;AAAA,OACnH,CAAA;AAEA,MAAA,OAAA,CAAQ,IAAO,GAAA,KAAA;AAAA,QACd,OAAO,OAAQ,CAAA;AAAA,UACd,MAAQA,EAAAA,QAAAA,CAAQ,MAAO,CAAA,IAAA,CAAK,KAAK,QAAQ,CAAA;AAAA,UACzC,UAAU,CAAGA,EAAAA,QAAAA,CAAQ,QAAU,EAAA,SAAS,CAAC,CAAM,GAAA,EAAA,MAAA,CAAO,QAAS,CAAA,MAAA,GAASA,SAAQ,QAAU,EAAA,SAAS,IAAIA,QAAQ,CAAA,OAAA,EAAS,OAAO,CAAC,CAAA,CAAA;AAAA,UAChI,QAAA,EAAU,MAAO,CAAA,IAAA,CACf,MAAO,CAAA,MAAA,CAAO,MAAM,CACpB,CAAA,KAAA,CAAM,EAAE,CAAA,CACR,GAAI,CAAA,CAAC,MAAO,KAAM,CAAA,MAAA,CAAO,CAAC,CAAC,CAAI,GAAA,CAAA,GAAIA,QAAQ,CAAA,CAAA,EAAG,QAAQ,CAAE,CACxD,CAAA,IAAA,CAAK,EAAE,CAAA;AAAA,UACT,UAAA,EAAY,OAAO,QAAS,CAAA,MAAA,GAAS,GAAG,MAAO,CAAA,KAAA,GAAQ,CAAU,OAAA,EAAA,MAAA,CAAO,KAAK,CAAA,CAAA,GAAK,EAAE,CAAI,CAAA,EAAA,MAAA,CAAO,MAAS,GAAA,CAAA,QAAA,EAAW,MAAO,CAAA,MAAM,KAAK,EAAE,CAAA,CAAA,GAAK,MAAO,CAAA,KAAA,GAAQ,MAAO,CAAA,MAAA;AAAA,UAClK,WAAa,EAAA,GAAA;AAAA,UACb,QAAA,EAAA,CAAW,MAAM,OAAA,CAAQ,GAAI,CAAA,MAAA,CAAO,SAAS,MAAO,CAAA,GAAA,CAAI,OAAO,EAAA,KAAOA,QAAS,CAAA,CAAA,MAAM,OAAO,MAAO,CAAA,KAAA,CAAM,EAAE,CAAA,GAAI,IAAQ,IAAA,EAAA,EAAI,QAAQ,CAAC,CAAC,CAAG,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACjJ,QAAA,EAAA,CAAW,MAAM,OAAA,CAAQ,GAAI,CAAA,MAAA,CAAO,SAAS,MAAO,CAAA,GAAA,CAAI,OAAO,EAAA,KAAOA,QAAS,CAAA,CAAA,MAAM,OAAO,KAAM,CAAA,KAAA,CAAM,EAAE,CAAA,GAAI,QAAY,IAAA,EAAA,EAAI,QAAQ,CAAC,CAAC,CAAG,EAAA,IAAA,CAAK,IAAI,CAAA;AAAA,UACpJ,cAAcA,QAAQ,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,MAAM,GAAG,QAAQ,CAAA;AAAA,UAC3D,aAAaA,QAAQ,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,KAAK,GAAG,QAAQ,CAAA;AAAA,UACzD,cAAcA,QAAQ,CAAA,MAAA,CAAO,OAAO,KAAM,CAAA,UAAU,GAAG,QAAQ,CAAA;AAAA,SAC/D,CAAA,CACC,GAAI,CAAA,CAAC,CAAC,GAAK,EAAA,KAAK,CAAM,KAAA,CAAA,EAAG,GAAG,CAAK,EAAA,EAAA,KAAK,CAAE,CAAA,CAAA,CACxC,KAAK,IAAI,CAAA;AAAA,QACX;AAAA,UACC,OAAS,EAAA,CAAA;AAAA,UACT,MAAQ,EAAA,CAAA;AAAA,UACR,WAAa,EAAA,OAAA;AAAA,UACb,WAAa,EAAA,SAAA;AAAA,UACb,OAAO,IAAO,GAAA,KAAA,GAAQA,SAAQ,SAAW,EAAA,WAAA,EAAa,MAAM,CAAI,GAAA,UAAA;AAAA,UAChE,MAAQ,EAAA,EAAA;AAAA,UACR,UAAA,0BAAa,KAAO,EAAA,MAAA,KAAW,CAAC,KAAQ,GAAA,CAAA,EAAG,MAAM,CAArC,EAAA,YAAA,CAAA;AAAA,SACb;AAAA,OACD,CAAA;AAAA,KACM,MAAA;AACN,MAAA,OAAA,CAAQ,KAAQ,GAAA,OAAA,CAAA;AAEhB,MAAA,OAAA,CAAQ,IAAO,GAAA,QAAA,GAAW,CAAwB,qBAAA,EAAA,KAAA,IAAS,CAAI,GAAA,GAAA,GAAM,KAAS,IAAA,CAAA,GAAI,IAAO,GAAA,KAAA,IAAS,CAAI,GAAA,KAAA,GAAQ,EAAE,CAAA,CAAA,CAAA;AAAA,KACjH;AAEA,IAAA,KAAA,EAAA,CAAA;AAEA,IAAA,IAAI,KAAS,IAAA,MAAA,CAAO,MAAS,GAAA,CAAA,EAAW,KAAA,GAAA,CAAA,CAAA;AAAA,KACtC,GAAG,CAAA,CAAA;AAEN,EAAO,IAAA,GAAA,IAAA,CAAA;AACR,CAAA;AAvGsB,MAAA,CAAA,KAAA,EAAA,OAAA,CAAA,CAAA;AAyGtB,SAAS,eAAe,MAAuB,EAAA;AAC9C,EAAA,MAAA,CAAO,KAAM,CAAA,MAAA,GAAS,MAAO,CAAA,MAAA,CAAO,KAAM,CAAA,IAAA,CAAA;AAC1C,EAAA,MAAA,CAAO,KAAM,CAAA,KAAA,GAAQ,MAAO,CAAA,KAAA,CAAM,KAAM,CAAA,IAAA,CAAA;AACxC,EAAA,MAAA,CAAO,KAAM,CAAA,UAAA,GAAa,MAAO,CAAA,OAAA,CAAQ,UAAc,IAAA,IAAA,CAAA;AACxD,CAAA;AAJS,MAAA,CAAA,cAAA,EAAA,gBAAA,CAAA,CAAA;ACvGF,IAAM,UAAN,MAAc;AAAA,EAZrB;AAYqB,IAAA,MAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGpB,YAAY,MAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GACf;AAAA,EAEA,MAAgB,QAAQ,SAAmB,EAAA;AAC1C,IAAM,MAAA,OAAA,GAAe,aAAQ,SAAS,CAAA,CAAA;AAEtC,IAAA,IAAI,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,qBAAkB,KAAM,CAAA,CAAA,6BAAA,EAAgCE,IAAK,CAAA,SAAA,EAAW,IAAI,GAAA,CAAI,OAAO,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAEpH,IAAI,IAAA;AACH,MAAM,MAAA,KAAA,GAAW,eAAY,OAAO,CAAA,CAAA;AAEpC,MAAA,OAAO,KAAM,CAAA,MAAA,CAAO,CAAC,IAAA,KAAS,KAAK,QAAS,CAAA,KAAK,CAAK,IAAA,IAAA,CAAK,SAAS,MAAM,CAAA,IAAK,IAAK,CAAA,QAAA,CAAS,MAAM,CAAC,CAAA,CAAA;AAAA,aAC5F,KAAO,EAAA;AACf,MAAW,kBAAA,CAAA,KAAA,CAAM,CAA2BA,wBAAAA,EAAAA,IAAAA,CAAK,SAAW,EAAA,IAAI,IAAI,OAAO,CAAC,CAAC,CAAA,CAAA,CAAA,EAAK,KAAc,CAAA,CAAA;AAChG,MAAA,OAAO,EAAC,CAAA;AAAA,KACT;AAAA,GACD;AAAA,EAEA,MAAgB,KAAK,QAAkB,EAAA;AACtC,IAAA,IAAI,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,qBAAkB,KAAM,CAAA,CAAA,mBAAA,EAAsBA,IAAK,CAAA,QAAA,EAAU,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAE1G,IAAI,IAAA;AACH,MAAM,MAAA,IAAA,GAAA,CAAS,MAAM,OAAO,CAAU,OAAA,EAAA,QAAQ,MAAM,OAAY,IAAA,MAAM,OAAO,CAAA,OAAA,EAAU,QAAQ,CAAA,CAAA,CAAA,CAAA;AAE/F,MAAM,MAAA,QAAA,GAAW,IAAK,IAAa,EAAA,CAAA;AAEnC,MAAA,MAAM,CAAC,UAAY,EAAA,KAAK,IAAI,QAAS,CAAA,UAAA,CAAW,MAAM,GAAG,CAAA,CAAA;AAEzD,MAAA,KAAA,GACG,KAAK,MAAO,CAAA,KAAmB,EAAE,UAA6C,CAAA,CAAE,IAAI,QAAS,CAAA,GAAA,EAAK,QAAiB,CAAA,GACnH,KAAK,MAAO,CAAA,UAAqC,EAAE,GAAI,CAAA,QAAA,CAAS,KAAK,QAAiB,CAAA,CAAA;AAEzF,MAAA,IAAI,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,qBAAkB,KAAM,CAAA,CAAA,OAAA,EAAUA,IAAK,CAAA,QAAA,CAAS,KAAK,IAAI,GAAA,CAAI,QAAQ,CAAC,CAAC,CAAE,CAAA,CAAA,CAAA;AAElG,MAAO,OAAA,QAAA,CAAA;AAAA,aACC,KAAO,EAAA;AACf,MAAW,kBAAA,CAAA,KAAA,CAAM,CAAiBA,cAAAA,EAAAA,IAAAA,CAAK,QAAU,EAAA,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAA,CAAA,CAAA,EAAK,KAAc,CAAA,CAAA;AACtF,MAAO,OAAA,IAAA,CAAA;AAAA,KACR;AAAA,GACD;AACD,CAAA,CAAA;ACjDO,IAAM,cAAA,GAAN,cAA6B,OAAQ,CAAA;AAAA,EAP5C;AAO4C,IAAA,MAAA,CAAA,IAAA,EAAA,gBAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAC3C,YAAY,MAAuB,EAAA;AAClC,IAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAAA,GACb;AAAA,EAEA,MAAgB,kBAAkB,OAA4C,EAAA;AAC7E,IAAI,IAAA,CAAC,IAAK,CAAA,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,KAAO,EAAA,IAAA,CAAK,MAAO,CAAA,OAAA,CAAQ,OAAQ,CAAA,KAAA,GAAQ,EAAC,CAAA;AAC7E,IAAK,IAAA,CAAA,MAAA,CAAO,QAAQ,OAAQ,CAAA,KAAA,CAAM,SAAS,OAAQ,CAAA,MAAA,IAAU,IAAK,CAAA,MAAA,CAAO,QAAS,CAAA,MAAA,CAAA;AAElF,IAAA,KAAA,MAAW,QAAQ,MAAM,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAQ,SAAS,CAAG,EAAA;AACzD,MAAA,MAAM,OAAU,GAAA,MAAM,IAAK,CAAA,IAAA,CAAKC,aAAK,CAAA,OAAA,CAAQ,CAAG,EAAA,OAAA,CAAQ,SAAS,CAAA,CAAA,EAAI,IAAI,CAAA,CAAE,CAAC,CAAA,CAAA;AAE5E,MAAA,IAAI,CAAC,OAAS,EAAA,SAAA;AAEd,MAAI,IAAA,OAAA,CAAQ,YAAY,uBAA2B,IAAA,OAAA,CAAQ,YAAY,qBAAyB,IAAA,OAAA,CAAQ,YAAY,uBAAyB,EAAA;AAC5I,QAAI,IAAA,CAAC,IAAK,CAAA,MAAA,CAAO,OAAQ,CAAA,OAAA,CAAQ,KAAM,CAAA,MAAA,EAAa,IAAA,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,KAAM,CAAA,KAAA,EAAA,CAAA;AAAA,aAAA,IACvE,CAAC,OAAQ,CAAA,MAAA,OAAa,MAAO,CAAA,QAAA,CAAS,MAAM,KAAM,CAAA,KAAA,EAAA,CAAA;AAAA,aACjD,IAAA,CAAA,MAAA,CAAO,QAAS,CAAA,KAAA,CAAM,KAAM,CAAA,MAAA,EAAA,CAAA;AAAA,OACvC;AAAA,KACD;AAAA,GACD;AAAA,EACA,MAAgB,oBAAoB,OAA8C,EAAA;AAAA,GAAC;AAAA,EACnF,MAAgB,oBAAoB,OAA8C,EAAA;AAAA,GAAC;AACpF,CAAA,CAAA;;;AC1BO,IAAM,OAAN,MAAW;AAAA,EAJlB;AAIkB,IAAA,MAAA,CAAA,IAAA,EAAA,MAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAGjB,YAAY,MAAuB,EAAA;AAClC,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AAAA,GACf;AACD,CAAA,CAAA;;;ACLO,IAAM,UAAA,GAAN,cAAyB,IAAK,CAAA;AAAA,EALrC;AAKqC,IAAA,MAAA,CAAA,IAAA,EAAA,YAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EACpC,YAAY,MAAuB,EAAA;AAClC,IAAA,KAAA,CAAM,MAAM,CAAA,CAAA;AAAA,GACb;AAAA,EAEO,OAAO,SAA2B,EAAA;AACxC,IAAA,IAAI,CAAC,SAAA,EAAuB,SAAA,GAAA,IAAA,CAAK,OAAO,MAAU,IAAA,CAAA,CAAA;AAClD,IAAA,IAAI,eAAe,SAAY,GAAA,GAAA,CAAA;AAC/B,IAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,OAAQ,CAAA,CAAA;AAC9C,IAAgB,YAAA,IAAA,OAAA,CAAA;AAChB,IAAA,IAAI,IAAO,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,KAAK,CAAA,CAAA;AAC1C,IAAgB,YAAA,IAAA,KAAA,CAAA;AAChB,IAAA,IAAI,KAAQ,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,IAAI,CAAA,CAAA;AAC1C,IAAgB,YAAA,IAAA,IAAA,CAAA;AAChB,IAAA,IAAI,OAAU,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,EAAE,CAAA,CAAA;AAC1C,IAAA,IAAI,OAAU,GAAA,IAAA,CAAK,KAAM,CAAA,YAAA,GAAe,EAAE,CAAA,CAAA;AAE1C,IAAI,IAAA,KAAA,IAAS,CAAG,EAAA,OAAO,CAAG,EAAA,KAAK,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,CAAA,EAAA,EAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SACrD,IAAA,IAAA,IAAQ,GAAU,OAAA,CAAA,EAAG,IAAI,CAAK,EAAA,EAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SAAA,IAC/C,SAAS,CAAG,EAAA,OAAO,CAAG,EAAA,KAAK,KAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SAAA,IACvC,WAAW,CAAG,EAAA,OAAO,CAAG,EAAA,OAAO,KAAK,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,SAC/C,OAAO,GAAG,OAAO,CAAA,CAAA,CAAA,CAAA;AAAA,GACvB;AACD,CAAA,CAAA;;;ACXa,IAAA,aAAA,GAAN,cAA4C,OAAO,CAAA,MAAA,CAAA;AAAA,EAjB1D;AAiB0D,IAAA,MAAA,CAAA,IAAA,EAAA,eAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAgBzD,WAAA,CAAY,cAAqB,EAAA,cAAA,EAAqB,MAAW,EAAA;AAChE,IAAA,KAAA,CAAM,cAAc,CAAA,CAAA;AAEpB,IAAK,IAAA,CAAA,QAAA,GAAW,EACd,MAAO,CAAA;AAAA;AAAA,MAEP,KAAA,EAAO,EAAE,MAAO,EAAA;AAAA;AAAA,MAGhB,MAAQ,EAAA,CAAA,CAAE,OAAQ,EAAA,CAAE,QAAQ,KAAK,CAAA;AAAA,MACjC,MAAA,EAAQ,EAAE,KAAM,CAAA,CAAA,CAAE,QAAQ,CAAA,CAAE,OAAQ,CAAA,EAAE,CAAA;AAAA,MACtC,MAAA,EAAQ,EAAE,KAAM,CAAA,CAAA,CAAE,QAAQ,CAAA,CAAE,OAAQ,CAAA,EAAE,CAAA;AAAA;AAAA,MAGtC,KAAO,EAAA,CAAA,CAAE,OAAQ,EAAA,CAAE,QAAQ,KAAK,CAAA;AAAA,KAChC,EACA,KAAM,CAAA,EAAE,GAAG,cAAgB,EAAA,GAAG,QAAQ,CAAA,CAAA;AAExC,IAAA,IAAA,CAAK,KAAQ,GAAA;AAAA,MACZ,MAAQ,EAAA,IAAA;AAAA,MACR,KAAO,EAAA,IAAA;AAAA,MACP,OAAS,EAAA,IAAA;AAAA,MACT,UAAY,EAAA,IAAA;AAAA,MACZ,MAAQ,EAAA,IAAA;AAAA,MACR,SAAW,EAAA,IAAA;AAAA,MACX,KAAO,EAAA,IAAA;AAAA,KACR,CAAA;AAEA,IAAK,IAAA,CAAA,IAAA,GAAO,IAAI,UAAA,CAAW,IAAI,CAAA,CAAA;AAE/B,IAAA,KAAA,CAAM,IAAI,CAAA,CAAA;AAEV,IAAA,IAAA,CAAK,OAAU,GAAA;AAAA,MACd,cAAA,EAAgB,IAAI,cAAA,CAAe,IAAI,CAAA;AAAA,MAEvC,SAAS,EAAC;AAAA,KACX,CAAA;AAEA,IAAA,IAAA,CAAK,QAAW,GAAA;AAAA,MACf,OAAA,EAAS,IAAY,OAAW,CAAA,UAAA,EAAA;AAAA,MAChC,KAAA,EAAO,IAAY,OAAW,CAAA,UAAA,EAAA;AAAA,MAC9B,OAAA,EAAS,IAAY,OAAW,CAAA,UAAA,EAAA;AAAA,MAChC,KAAO,EAAA;AAAA,QACN,KAAO,EAAA;AAAA,UACN,KAAO,EAAA,CAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,SACT;AAAA,QACA,OAAS,EAAA;AAAA,UACR,KAAO,EAAA,CAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,SACT;AAAA,QACA,OAAS,EAAA;AAAA,UACR,KAAO,EAAA,CAAA;AAAA,UACP,MAAQ,EAAA,CAAA;AAAA,SACT;AAAA,OACD;AAAA,KACD,CAAA;AAEA,IAAK,IAAA,CAAA,MAAA,GAAS,IAAY,OAAW,CAAA,UAAA,EAAA,CAAA;AACrC,IAAK,IAAA,CAAA,UAAA,GAAa,IAAY,OAAW,CAAA,UAAA,EAAA,CAAA;AAEzC,IAAA,IAAA,CAAK,OAAQ,EAAA,CAAA;AAAA,GACd;AAAA,EAEA,MAAc,OAAU,GAAA;AAEvB,IAAA,IAAA,CAAK,MAAO,EAAA,CAAA;AAGZ,IAAK,IAAA,CAAA,KAAA,CAAM,IAAK,CAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AAAA,GAC/B;AAAA,EAEA,MAAc,MAAS,GAAA;AACtB,IAAK,IAAA,CAAA,IAAA,CAAK,OAAS,EAAA,OAAO,MAAW,KAAA;AACpC,MAAA,MAAM,WAAsI,EAAE,KAAA,EAAO,EAAI,EAAA,MAAA,EAAQ,EAAG,EAAA,CAAA;AAEpK,MAAI,IAAA,IAAA,CAAK,SAAS,MAAQ,EAAA;AACzB,QAAA,IAAI,CAAC,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAQ,KAAO,EAAA,MAAA,EAAiB,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,KAAa,CAAA,CAAA;AAAA,aACxF;AACJ,UAAS,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,KAAM,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAE5E,UAAA,QAAA,CAAS,KAAM,CAAA,IAAA,CAAK,GAAI,IAAA,CAAK,QAAS,CAAA,KAAA,CAAM,MAAO,CAAA,CAAC,CAAM,KAAA,CAAC,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAAA,SAC7E;AAEA,QAAA,IAAI,CAAC,IAAA,CAAK,OAAQ,CAAA,OAAA,CAAQ,OAAS,EAAA,MAAA,EAAiB,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,OAAe,CAAA,CAAA;AAAA,aAC5F;AACJ,UAAS,QAAA,CAAA,MAAA,CAAO,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,OAAQ,CAAA,MAAA,CAAO,CAAC,CAAA,KAAM,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAE9E,UAAA,QAAA,CAAS,KAAM,CAAA,IAAA,CAAK,GAAI,IAAA,CAAK,QAAS,CAAA,OAAA,CAAQ,MAAO,CAAA,CAAC,CAAM,KAAA,CAAC,CAAE,CAAA,MAAM,CAAS,CAAA,CAAA;AAAA,SAC/E;AAAA,OACD,MAAgB,QAAA,CAAA,KAAA,CAAM,IAAK,CAAA,GAAI,IAAK,CAAA,QAAA,CAAS,OAAiB,EAAA,GAAI,IAAK,CAAA,QAAA,CAAS,KAAa,CAAA,CAAA;AAE7F,MAAW,KAAA,MAAA,EAAA,IAAM,IAAK,CAAA,QAAA,CAAS,MAAQ,EAAA;AACtC,QAAA,MAAM,KAAQ,GAAA,MAAM,IAAK,CAAA,MAAA,CAAO,MAAM,EAAE,CAAA,CAAA;AAExC,QAAI,IAAA,CAAC,QAAS,CAAA,KAAA,CAAM,MAAQ,EAAA,MAAA;AAE5B,QAAI,IAAA,IAAA,CAAK,QAAS,CAAA,KAAA,EAAkB,kBAAA,CAAA,KAAA,CAAM,CAA2CH,wCAAAA,EAAAA,QAAAA,CAAQ,KAAM,CAAA,IAAA,EAAM,QAAQ,CAAC,CAAE,CAAA,CAAA,CAAA;AAEpH,QAAK,IAAA,CAAA,IAAA,CAAK,IAAY,OAAO,CAAA,MAAA,CAAA,wBAAA,CAAyB,OAAO,IAAK,CAAA,EAAA,EAAI,EAAE,CAAA,EAAG,EAAE,IAAA,EAAO,SAAS,KAAc,CAAA,GAAA,CAAI,CAAC,CAACI,GAAI,EAAA,OAAO,MAAW,OAAQ,CAAA,MAAA,EAAQ,CAAA,EAAG,CAAA,CAAA;AAE1J,QAAA,MAAM,kBAAW,CAAA,GAAA;AAAA,UACf,QAAS,CAAA,KAAA,CAAc,GAAI,CAAA,CAAC,CAACA,GAAE,CAAgBJ,KAAAA,QAAAA,CAAQI,GAAI,EAAA,UAAU,CAAC,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,UAClF,KAAA;AAAA,UACA,CAAA,SAAA,EAAYJ,QAAQ,CAAA,OAAA,EAAS,OAAS,EAAA,MAAM,CAAC,CAAA,aAAA,EAAgBA,QAAQ,CAAA,KAAA,CAAM,IAAM,EAAA,QAAQ,CAAC,CAAA,CAAA;AAAA,SAC3F,CAAA;AAAA,OACD;AAEA,MAAI,IAAA,IAAA,CAAK,SAAS,MAAQ,EAAA;AACzB,QAAA,IAAI,IAAK,CAAA,QAAA,CAAS,KAAO,EAAA,kBAAA,CAAW,MAAM,CAAwC,sCAAA,CAAA,CAAA,CAAA;AAElF,QAAA,IAAA,CAAK,IAAK,CAAA,GAAA,CAAY,OAAO,CAAA,MAAA,CAAA,mBAAA,CAAoB,MAAO,CAAA,IAAA,CAAK,EAAE,CAAA,EAAG,EAAE,IAAA,EAAM,EAAC,EAAG,CAAA,CAAA;AAE9E,QAAM,MAAA,kBAAA,CAAW,GAAK,CAAA,QAAA,CAAS,MAAe,CAAA,GAAA,CAAI,CAAC,CAAC,EAAE,CAAgBA,KAAAA,QAAAA,CAAQ,EAAI,EAAA,UAAU,CAAC,CAAE,CAAA,IAAA,CAAK,IAAI,CAAA,EAAG,OAAS,EAAA,CAAA,SAAA,EAAYA,SAAQ,QAAU,EAAA,SAAA,EAAW,MAAM,CAAC,CAAW,SAAA,CAAA,CAAA,CAAA;AAAA,OAChL;AAAA,KACA,CAAA,CAAA;AAAA,GACF;AACD,EAAA;AClJa,IAAA,mBAAA,GAAN,cAA0CK,OAAoB,CAAA,mBAAA,CAAA;AAAA,EAJrE;AAIqE,IAAA,MAAA,CAAA,IAAA,EAAA,qBAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAMpE,YAAY,OAAc,EAAA;AACzB,IAAM,KAAA,EAAA,CAAA;AAEN,IAAA,IAAA,CAAK,MAAM,OAAQ,CAAA,EAAA,CAAA;AAEnB,IAAK,IAAA,CAAA,OAAA,CAAQ,QAAQ,IAAI,CAAA,CAAA;AAEzB,IAAK,IAAA,CAAA,cAAA,CAAe,QAAQ,WAAW,CAAA,CAAA;AAEvC,IAAK,IAAA,CAAA,MAAA,GAAS,QAAQ,MAAU,IAAA,IAAA,CAAA;AAEhC,IAAA,IAAA,CAAK,QAAW,GAAA,qBAAA,CAAA;AAEhB,IAAA,IAAA,CAAK,UAAa,GAAA,gBAAA,CAAA;AAAA,GACnB;AACD","file":"main.js","sourcesContent":["/** @format */\r\n\r\nimport sharpyy, { link } from 'sharpyy';\r\n\r\nexport default new (class XernerxLog {\r\n\tpublic declare readonly baseText;\r\n\r\n\tconstructor() {\r\n\t\tthis.baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${new Date()\r\n\t\t\t.toLocaleTimeString()\r\n\t\t\t.split(/ /gim)\r\n\t\t\t.map((str) =>\r\n\t\t\t\tstr\r\n\t\t\t\t\t.split(':')\r\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\r\n\t\t\t\t\t.join(':')\r\n\t\t\t)\r\n\t\t\t.join(' ')} | ${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb |`;\r\n\t}\r\n\r\n\tinfo(message: string) {\r\n\t\treturn console.info(`✔️ |`, this.baseText, message);\r\n\t}\r\n\r\n\tasync error(message: string, error?: Error) {\r\n\t\tconst { default: boxen } = await import('boxen');\r\n\r\n\t\tconst errorMessage = boxen(error?.stack as string, { padding: 1, margin: 1, borderStyle: 'round', borderColor: 'red' });\r\n\r\n\t\tif (error) return console.error(`❗ |`, this.baseText, message, errorMessage);\r\n\t\telse return console.error(`❗ |`, this.baseText, message);\r\n\t}\r\n\r\n\twarn(message: string, url?: URL) {\r\n\t\tconsole.warn(`⚠️ |`, this.baseText, message, url ? `Read more here ${link('here', url)}` : '');\r\n\t}\r\n\r\n\tdebug(message: string) {\r\n\t\treturn console.debug(`🐛 |`, this.baseText, message);\r\n\t}\r\n\r\n\tasync box(message: string, color?: string, title?: string) {\r\n\t\tconst { default: boxen } = await import('boxen');\r\n\r\n\t\tconst time = new Date()\r\n\t\t\t.toLocaleTimeString()\r\n\t\t\t.split(/ /gim)\r\n\t\t\t.map((str) =>\r\n\t\t\t\tstr\r\n\t\t\t\t\t.split(':')\r\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\r\n\t\t\t\t\t.join(':')\r\n\t\t\t)\r\n\t\t\t.join(' ');\r\n\r\n\t\treturn console.info(boxen(message, { padding: 1, margin: 1, borderStyle: 'round', borderColor: color, title: `${time} - ${sharpyy('XERNERX', 'txRainbow', 'bold')} - ${title || ''}` }));\r\n\t}\r\n})();\r\n","/** @format */\r\n\r\nimport sharpyy from 'sharpyy';\r\nimport { Color } from 'ora';\r\n\r\nimport { XernerxClient } from '../client/XernerxClient.js';\r\nimport XernerxLog from '../tools/XernerxLog.js';\r\n\r\nlet init = false;\r\n\r\nexport async function start(client: XernerxClient) {\r\n\tif (init) return;\r\n\r\n\tif (client.settings.debug) XernerxLog.info('Debug mode enabled, preventing console clear and logging all handlings...');\r\n\telse console.clear();\r\n\r\n\tconst { default: ora, spinners } = await import('ora');\r\n\tconst { default: boxen } = await import('boxen');\r\n\r\n\tconsole.info(\r\n\t\tboxen(sharpyy('XERNERX', 'txRainbow', 'bold', 'underlines'), {\r\n\t\t\tpadding: 1,\r\n\t\t\tmargin: 1,\r\n\t\t\tborderStyle: 'round',\r\n\t\t\theight: 3,\r\n\t\t\talign: 'center',\r\n\t\t\tborderColor: 'magenta',\r\n\t\t\tfullscreen: (width, height) => [width - 5, height],\r\n\t\t})\r\n\t);\r\n\r\n\tif (!client.options.intents.has('Guilds'))\r\n\t\tXernerxLog.warn('Your bot is signed in without the Guilds intent, this may cause issues with the bot.', new URL('https://discord.com/developers/docs/topics/gateway#gateway-intents'));\r\n\r\n\tconst spinner = ora();\r\n\r\n\tspinner.spinner = spinners.dots12;\r\n\r\n\tspinner.start();\r\n\r\n\tlet index = 0;\r\n\r\n\tsetInterval(async () => {\r\n\t\t// Update Discord stats\r\n\t\tcalculateStats(client);\r\n\r\n\t\t// Update commandline\r\n\r\n\t\tconst time = new Date()\r\n\t\t\t\t.toLocaleTimeString()\r\n\t\t\t\t.split(/ /gim)\r\n\t\t\t\t.map((str) =>\r\n\t\t\t\t\tstr\r\n\t\t\t\t\t\t.split(':')\r\n\t\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\r\n\t\t\t\t\t\t.join(':')\r\n\t\t\t\t)\r\n\t\t\t\t.join(' '),\r\n\t\t\tram = `${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb`;\r\n\r\n\t\tconst colors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan'];\r\n\r\n\t\tconst baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${time} | ${ram} | `;\r\n\r\n\t\tif (client.user) {\r\n\t\t\tspinner.color = colors[index] as Color;\r\n\r\n\t\t\tconst counts = {\r\n\t\t\t\tlocal: client.commands.stats.slash.local + client.commands.stats.message.local + client.commands.stats.context.local,\r\n\t\t\t\tglobal: client.commands.stats.slash.global + client.commands.stats.message.global + client.commands.stats.context.global,\r\n\t\t\t};\r\n\r\n\t\t\tspinner.text = boxen(\r\n\t\t\t\tObject.entries({\r\n\t\t\t\t\t'Name': sharpyy(client.user.tag, 'txBlue'),\r\n\t\t\t\t\t'Status': `${sharpyy('Online', 'txGreen')} | ${client.settings.global ? sharpyy('Global', 'txGreen') : sharpyy('Local', 'txRed')}`,\r\n\t\t\t\t\t'Uptime': client.util\r\n\t\t\t\t\t\t.uptime(client.uptime)\r\n\t\t\t\t\t\t.split('')\r\n\t\t\t\t\t\t.map((c) => (isNaN(Number(c)) ? c : sharpyy(c, 'txCyan')))\r\n\t\t\t\t\t\t.join(''),\r\n\t\t\t\t\t'Commands': client.settings.global ? `${counts.local ? `local: ${counts.local}` : ''}|${counts.global ? `global: ${counts.global}` : ''}` : counts.local + counts.global,\r\n\t\t\t\t\t'RAM Usage': ram,\r\n\t\t\t\t\t'Guilds': (await Promise.all(client.settings.guilds.map(async (id) => sharpyy((await client.guilds.fetch(id))?.name || id, 'txBlue')))).join(', '),\r\n\t\t\t\t\t'Owners': (await Promise.all(client.settings.owners.map(async (id) => sharpyy((await client.users.fetch(id))?.username || id, 'txBlue')))).join(', '),\r\n\t\t\t\t\t'GuildCount': sharpyy(String(client.stats.guilds), 'txCyan'),\r\n\t\t\t\t\t'UserCount': sharpyy(String(client.stats.users), 'txCyan'),\r\n\t\t\t\t\t'ShardCount': sharpyy(String(client.stats.shardCount), 'txCyan'),\r\n\t\t\t\t})\r\n\t\t\t\t\t.map(([key, value]) => `${key}: ${value}`)\r\n\t\t\t\t\t.join('\\n'),\r\n\t\t\t\t{\r\n\t\t\t\t\tpadding: 1,\r\n\t\t\t\t\tmargin: 1,\r\n\t\t\t\t\tborderStyle: 'round',\r\n\t\t\t\t\tborderColor: 'magenta',\r\n\t\t\t\t\ttitle: time + ' - ' + sharpyy('XERNERX', 'txRainbow', 'bold') + '\\x1B[35m',\r\n\t\t\t\t\theight: 15,\r\n\t\t\t\t\tfullscreen: (width, height) => [width - 5, height],\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\tspinner.color = 'green';\r\n\r\n\t\t\tspinner.text = baseText + `Connecting to Discord${index == 0 ? '.' : index == 1 ? '..' : index == 2 ? '...' : ''}`;\r\n\t\t}\r\n\r\n\t\tindex++;\r\n\r\n\t\tif (index == colors.length - 1) index = 0;\r\n\t}, 250);\r\n\r\n\tinit = true;\r\n}\r\n\r\nfunction calculateStats(client: XernerxClient) {\r\n\tclient.stats.guilds = client.guilds.cache.size;\r\n\tclient.stats.users = client.users.cache.size;\r\n\tclient.stats.shardCount = client.options.shardCount || null;\r\n}\r\n","/** @format */\r\n// import * as inquirer from '@inquirer/prompts';\r\n// import { link } from 'sharpyy';\r\n\r\nimport { XernerxClient } from '../client/XernerxClient.js';\r\nimport * as fs from 'fs';\r\nimport * as path from 'path';\r\n\r\nimport { XernerxFile } from '../types/types.js';\r\nimport XernerxLog from '../tools/XernerxLog.js';\r\nimport { link } from 'sharpyy';\r\n\r\nexport class Handler {\r\n\tpublic declare readonly client: XernerxClient;\r\n\r\n\tconstructor(client: XernerxClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n\r\n\tprotected async readdir(directory: string) {\r\n\t\tconst dirpath = path.resolve(directory);\r\n\r\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to read directory ${link(directory, new URL(dirpath))}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst files = fs.readdirSync(dirpath);\r\n\r\n\t\t\treturn files.filter((file) => file.endsWith('.js') || file.endsWith('.mjs') || file.endsWith('.cjs'));\r\n\t\t} catch (error) {\r\n\t\t\tXernerxLog.error(`Error reading directory ${link(directory, new URL(dirpath))}:`, error as Error);\r\n\t\t\treturn [];\r\n\t\t}\r\n\t}\r\n\r\n\tprotected async load(filepath: string) {\r\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to load ${link(filepath, new URL(filepath))}`);\r\n\r\n\t\ttry {\r\n\t\t\tconst file = ((await import(`file://${filepath}`))?.default || (await import(`file://${filepath}`))) as XernerxFile;\r\n\r\n\t\t\tconst openFile = new (file as any)() as XernerxFile;\r\n\r\n\t\t\tconst [collection, group] = openFile.collection.split('.');\r\n\r\n\t\t\tgroup\r\n\t\t\t\t? this.client[group as 'commands'][collection as 'message' | 'slash' | 'context'].set(openFile._id, openFile as never)\r\n\t\t\t\t: this.client[collection as 'events' | 'inhibitors'].set(openFile._id, openFile as never);\r\n\r\n\t\t\tif (this.client.settings.debug) XernerxLog.debug(`Loaded ${link(openFile._id, new URL(filepath))}`);\r\n\r\n\t\t\treturn openFile as XernerxFile;\r\n\t\t} catch (error) {\r\n\t\t\tXernerxLog.error(`Error loading ${link(filepath, new URL(filepath))}:`, error as Error);\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport { XernerxClient } from '../client/XernerxClient.js';\r\nimport { XernerxContextCommandHandlerOptions, XernerxMessageCommandHandlerOptions, XernerxSlashCommandHandlerOptions } from '../types/interfaces.js';\r\nimport { Handler } from './Handler.js';\r\nimport path from 'path';\r\n\r\nexport class CommandHandler extends Handler {\r\n\tconstructor(client: XernerxClient) {\r\n\t\tsuper(client);\r\n\t}\r\n\r\n\tprotected async loadSlashCommands(options: XernerxSlashCommandHandlerOptions) {\r\n\t\tif (!this.client.modules.options.slash) this.client.modules.options.slash = {};\r\n\t\tthis.client.modules.options.slash.global = options.global ?? this.client.settings.global;\r\n\r\n\t\tfor (const file of await this.readdir(options.directory)) {\r\n\t\t\tconst command = await this.load(path.resolve(`${options.directory}/${file}`));\r\n\r\n\t\t\tif (!command) continue;\r\n\r\n\t\t\tif (command.filetype == 'XernerxMessageCommand' || command.filetype == 'XernerxSlashCommand' || command.filetype == 'XernerxContextCommand') {\r\n\t\t\t\tif (!this.client.modules.options.slash.global) this.client.commands.stats.slash.local++;\r\n\t\t\t\telse if (!command.global) this.client.commands.stats.slash.local++;\r\n\t\t\t\telse this.client.commands.stats.slash.global++;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tprotected async loadMessageCommands(options: XernerxMessageCommandHandlerOptions) {}\r\n\tprotected async loadContextCommands(options: XernerxContextCommandHandlerOptions) {}\r\n}\r\n","/** @format */\r\n\r\nimport { XernerxClient } from '../main.js';\r\n\r\nexport class Util {\r\n\tpublic declare readonly client: XernerxClient;\r\n\r\n\tconstructor(client: XernerxClient) {\r\n\t\tthis.client = client;\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport { XernerxClient } from '../main.js';\r\nimport { Util } from './Util.js';\r\n\r\nexport class ClientUtil extends Util {\r\n\tconstructor(client: XernerxClient) {\r\n\t\tsuper(client);\r\n\t}\r\n\r\n\tpublic uptime(timestamp?: number | null) {\r\n\t\tif (!timestamp) timestamp = this.client.uptime || 0;\r\n\t\tlet totalSeconds = timestamp / 1000;\r\n\t\tlet years = Math.floor(totalSeconds / 31536000);\r\n\t\ttotalSeconds %= 31536000;\r\n\t\tlet days = Math.floor(totalSeconds / 86400);\r\n\t\ttotalSeconds %= 86400;\r\n\t\tlet hours = Math.floor(totalSeconds / 3600);\r\n\t\ttotalSeconds %= 3600;\r\n\t\tlet minutes = Math.floor(totalSeconds / 60);\r\n\t\tlet seconds = Math.floor(totalSeconds % 60);\r\n\r\n\t\tif (years >= 1) return `${years}y ${days}d ${hours}h ${minutes}m`;\r\n\t\telse if (days >= 1) return `${days}d ${hours}h ${minutes}m`;\r\n\t\telse if (hours >= 1) return `${hours}h ${minutes}m`;\r\n\t\telse if (minutes >= 1) return `${minutes}m ${seconds}s`;\r\n\t\telse return `${seconds}s`;\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport * as Discord from 'discord.js';\r\nimport { z } from 'zod';\r\n\r\nimport { start } from '../util/prompts.js';\r\nimport { XernerxStats } from '../types/interfaces.js';\r\nimport { CommandHandler } from '../handlers/CommandHandler.js';\r\nimport { XernerxMessageCommand } from '../base/XernerxMessageCommand.js';\r\nimport { XernerxSlashCommand } from '../main.js';\r\nimport { XernerxContextCommand } from '../base/XernerxContextCommand.js';\r\nimport { XernerxEvent } from '../base/XernerxEvent.js';\r\nimport { XernerxInhibitor } from '../base/XernerxInhibitor.js';\r\nimport XernerxLog from '../tools/XernerxLog.js';\r\nimport sharpyy from 'sharpyy';\r\nimport { ClientUtil } from '../util/ClientUtil.js';\r\n\r\nexport class XernerxClient<T = {}> extends Discord.Client {\r\n\tpublic declare readonly settings;\r\n\tpublic declare readonly stats: XernerxStats;\r\n\tpublic declare readonly modules: {\r\n\t\tcommandHandler: CommandHandler;\r\n\t\toptions: {\r\n\t\t\tmessage?: { global?: boolean };\r\n\t\t\tslash?: { global?: boolean };\r\n\t\t\tcontext?: { global?: boolean };\r\n\t\t};\r\n\t};\r\n\tpublic declare readonly util: ClientUtil;\r\n\tpublic declare readonly commands;\r\n\tpublic declare readonly events;\r\n\tpublic declare readonly inhibitors;\r\n\r\n\tconstructor(DiscordOptions: any, XernerxOptions: any, config: T) {\r\n\t\tsuper(DiscordOptions);\r\n\r\n\t\tthis.settings = z\r\n\t\t\t.object({\r\n\t\t\t\t// required settings\r\n\t\t\t\ttoken: z.string(),\r\n\r\n\t\t\t\t// optional settings\r\n\t\t\t\tglobal: z.boolean().default(false),\r\n\t\t\t\towners: z.array(z.string()).default([]),\r\n\t\t\t\tguilds: z.array(z.string()).default([]),\r\n\r\n\t\t\t\t// dev settings\r\n\t\t\t\tdebug: z.boolean().default(false),\r\n\t\t\t})\r\n\t\t\t.parse({ ...XernerxOptions, ...config });\r\n\r\n\t\tthis.stats = {\r\n\t\t\tguilds: null,\r\n\t\t\tusers: null,\r\n\t\t\tshardId: null,\r\n\t\t\tshardCount: null,\r\n\t\t\tshards: null,\r\n\t\t\tvoteCount: null,\r\n\t\t\tvotes: null,\r\n\t\t};\r\n\r\n\t\tthis.util = new ClientUtil(this);\r\n\r\n\t\tstart(this);\r\n\r\n\t\tthis.modules = {\r\n\t\t\tcommandHandler: new CommandHandler(this),\r\n\r\n\t\t\toptions: {},\r\n\t\t};\r\n\r\n\t\tthis.commands = {\r\n\t\t\tmessage: new Discord.Collection() as Discord.Collection<string, XernerxMessageCommand>,\r\n\t\t\tslash: new Discord.Collection() as Discord.Collection<string, XernerxSlashCommand>,\r\n\t\t\tcontext: new Discord.Collection() as Discord.Collection<string, XernerxContextCommand>,\r\n\t\t\tstats: {\r\n\t\t\t\tslash: {\r\n\t\t\t\t\tlocal: 0,\r\n\t\t\t\t\tglobal: 0,\r\n\t\t\t\t},\r\n\t\t\t\tmessage: {\r\n\t\t\t\t\tlocal: 0,\r\n\t\t\t\t\tglobal: 0,\r\n\t\t\t\t},\r\n\t\t\t\tcontext: {\r\n\t\t\t\t\tlocal: 0,\r\n\t\t\t\t\tglobal: 0,\r\n\t\t\t\t},\r\n\t\t\t},\r\n\t\t};\r\n\r\n\t\tthis.events = new Discord.Collection() as Discord.Collection<string, XernerxEvent>;\r\n\t\tthis.inhibitors = new Discord.Collection() as Discord.Collection<string, XernerxInhibitor>;\r\n\r\n\t\tthis.connect();\r\n\t}\r\n\r\n\tprivate async connect() {\r\n\t\t// slash cmds\r\n\t\tthis.deploy();\r\n\r\n\t\t// login\r\n\t\tthis.login(this.settings.token);\r\n\t}\r\n\r\n\tprivate async deploy() {\r\n\t\tthis.once('ready', async (client) => {\r\n\t\t\tconst commands: { local: Array<XernerxSlashCommand | XernerxContextCommand>; global: Array<XernerxSlashCommand | XernerxContextCommand> } = { local: [], global: [] };\r\n\r\n\t\t\tif (this.settings.global) {\r\n\t\t\t\tif (!this.modules.options.slash?.global) commands.global.push(...(this.commands.slash as any));\r\n\t\t\t\telse {\r\n\t\t\t\t\tcommands.global.push(...(this.commands.slash.filter((c) => c.global) as any));\r\n\r\n\t\t\t\t\tcommands.local.push(...(this.commands.slash.filter((c) => !c.global) as any));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!this.modules.options.context?.global) commands.global.push(...(this.commands.context as any));\r\n\t\t\t\telse {\r\n\t\t\t\t\tcommands.global.push(...(this.commands.context.filter((c) => c.global) as any));\r\n\r\n\t\t\t\t\tcommands.local.push(...(this.commands.context.filter((c) => !c.global) as any));\r\n\t\t\t\t}\r\n\t\t\t} else commands.local.push(...(this.commands.context as any), ...(this.commands.slash as any));\r\n\r\n\t\t\tfor (const id of this.settings.guilds) {\r\n\t\t\t\tconst guild = await this.guilds.fetch(id);\r\n\r\n\t\t\t\tif (!commands.local.length) break;\r\n\r\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands to guild: ${sharpyy(guild.name, 'txBlue')}`);\r\n\r\n\t\t\t\tthis.rest.put(Discord.Routes.applicationGuildCommands(client.user.id, id), { body: (commands.local as any).map(([id, command]: any) => command.toJSON()) });\r\n\r\n\t\t\t\tawait XernerxLog.box(\r\n\t\t\t\t\t(commands.local as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '),\r\n\t\t\t\t\t'red',\r\n\t\t\t\t\t`Deployed ${sharpyy('local', 'txRed', 'bold')} commands in ${sharpyy(guild.name, 'txBlue')}`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.settings.global) {\r\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands globally`);\r\n\r\n\t\t\t\tthis.rest.put(Discord.Routes.applicationCommands(client.user.id), { body: [] });\r\n\r\n\t\t\t\tawait XernerxLog.box((commands.global as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '), 'green', `Deployed ${sharpyy('global', 'txGreen', 'bold')} commands`);\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","/** @format */\r\n\r\nimport * as Discord from 'discord.js';\r\n\r\nexport class XernerxSlashCommand extends Discord.SlashCommandBuilder {\r\n\tpublic declare readonly _id: string;\r\n\tpublic declare readonly global: boolean;\r\n\tpublic declare readonly filetype: 'XernerxSlashCommand';\r\n\tpublic declare readonly collection: 'slash.commands';\r\n\r\n\tconstructor(options: any) {\r\n\t\tsuper();\r\n\r\n\t\tthis._id = options.id;\r\n\r\n\t\tthis.setName(options.name);\r\n\r\n\t\tthis.setDescription(options.description);\r\n\r\n\t\tthis.global = options.global ?? true;\r\n\r\n\t\tthis.filetype = 'XernerxSlashCommand';\r\n\r\n\t\tthis.collection = 'slash.commands';\r\n\t}\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tools/XernerxLog.ts","../src/util/prompts.ts","../src/handlers/Handler.ts","../src/handlers/CommandHandler.ts","../src/util/Util.ts","../src/util/ClientUtil.ts","../src/client/XernerxClient.ts","../src/builders/XernerxSlashCommand.ts"],"names":["sharpyy","str","link","path","id","Discord2"],"mappings":"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","file":"main.js","sourcesContent":["/** @format */\n\nimport sharpyy, { link } from 'sharpyy';\n\nexport default new (class XernerxLog {\n\tpublic declare readonly baseText;\n\n\tconstructor() {\n\t\tthis.baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${new Date()\n\t\t\t.toLocaleTimeString()\n\t\t\t.split(/ /gim)\n\t\t\t.map((str) =>\n\t\t\t\tstr\n\t\t\t\t\t.split(':')\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\n\t\t\t\t\t.join(':')\n\t\t\t)\n\t\t\t.join(' ')} | ${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb |`;\n\t}\n\n\tinfo(message: string) {\n\t\treturn console.info(`✔️ |`, this.baseText, message);\n\t}\n\n\tasync error(message: string, error?: Error) {\n\t\tconst { default: boxen } = await import('boxen');\n\n\t\tconst errorMessage = boxen(error?.stack as string, { padding: 1, margin: 1, borderStyle: 'round', borderColor: 'red' });\n\n\t\tif (error) return console.error(`❗ |`, this.baseText, message, errorMessage);\n\t\telse return console.error(`❗ |`, this.baseText, message);\n\t}\n\n\twarn(message: string, url?: URL) {\n\t\tconsole.warn(`⚠️ |`, this.baseText, message, url ? `Read more here ${link('here', url)}` : '');\n\t}\n\n\tdebug(message: string) {\n\t\treturn console.debug(`🐛 |`, this.baseText, message);\n\t}\n\n\tasync box(message: string, color?: string, title?: string) {\n\t\tconst { default: boxen } = await import('boxen');\n\n\t\tconst time = new Date()\n\t\t\t.toLocaleTimeString()\n\t\t\t.split(/ /gim)\n\t\t\t.map((str) =>\n\t\t\t\tstr\n\t\t\t\t\t.split(':')\n\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\n\t\t\t\t\t.join(':')\n\t\t\t)\n\t\t\t.join(' ');\n\n\t\treturn console.info(boxen(message, { padding: 1, margin: 1, borderStyle: 'round', borderColor: color, title: `${time} - ${sharpyy('XERNERX', 'txRainbow', 'bold')} - ${title || ''}` }));\n\t}\n})();\n","/** @format */\n\nimport sharpyy from 'sharpyy';\nimport { Color } from 'ora';\n\nimport { XernerxClient } from '../client/XernerxClient.js';\nimport XernerxLog from '../tools/XernerxLog.js';\n\nlet init = false;\n\nexport async function start(client: XernerxClient) {\n\tif (init) return;\n\n\tif (client.settings.debug) XernerxLog.info('Debug mode enabled, preventing console clear and logging all handlings...');\n\telse console.clear();\n\n\tconst { default: ora, spinners } = await import('ora');\n\tconst { default: boxen } = await import('boxen');\n\n\tconsole.info(\n\t\tboxen(sharpyy('XERNERX', 'txRainbow', 'bold', 'underlines'), {\n\t\t\tpadding: 1,\n\t\t\tmargin: 1,\n\t\t\tborderStyle: 'round',\n\t\t\theight: 3,\n\t\t\talign: 'center',\n\t\t\tborderColor: 'magenta',\n\t\t\tfullscreen: (width, height) => [width - 5, height],\n\t\t})\n\t);\n\n\tif (!client.options.intents.has('Guilds'))\n\t\tXernerxLog.warn('Your bot is signed in without the Guilds intent, this may cause issues with the bot.', new URL('https://discord.com/developers/docs/topics/gateway#gateway-intents'));\n\n\tconst spinner = ora();\n\n\tspinner.spinner = spinners.dots12;\n\n\tspinner.start();\n\n\tlet index = 0;\n\n\tsetInterval(async () => {\n\t\t// Update Discord stats\n\t\tcalculateStats(client);\n\n\t\t// Update commandline\n\n\t\tconst time = new Date()\n\t\t\t\t.toLocaleTimeString()\n\t\t\t\t.split(/ /gim)\n\t\t\t\t.map((str) =>\n\t\t\t\t\tstr\n\t\t\t\t\t\t.split(':')\n\t\t\t\t\t\t.map((str) => (isNaN(Number(str)) ? str : sharpyy(str, 'txCyan')))\n\t\t\t\t\t\t.join(':')\n\t\t\t\t)\n\t\t\t\t.join(' '),\n\t\t\tram = `${sharpyy(String(Math.round(process.memoryUsage().rss / 10000) / 100), 'txCyan')}mb`;\n\n\t\tconst colors = ['red', 'green', 'yellow', 'blue', 'magenta', 'cyan'];\n\n\t\tconst baseText = `${sharpyy('XERNERX', 'txRainbow', 'bold')} | ${time} | ${ram} | `;\n\n\t\tif (client.user) {\n\t\t\tspinner.color = colors[index] as Color;\n\n\t\t\tconst counts = {\n\t\t\t\tlocal: client.commands.stats.slash.local + client.commands.stats.message.local + client.commands.stats.context.local,\n\t\t\t\tglobal: client.commands.stats.slash.global + client.commands.stats.message.global + client.commands.stats.context.global,\n\t\t\t};\n\n\t\t\tspinner.text = boxen(\n\t\t\t\tObject.entries({\n\t\t\t\t\t'Name': sharpyy(client.user.tag, 'txBlue'),\n\t\t\t\t\t'Status': `${sharpyy('Online', 'txGreen')} | ${client.settings.global ? sharpyy('Global', 'txGreen') : sharpyy('Local', 'txRed')}`,\n\t\t\t\t\t'Uptime': client.util\n\t\t\t\t\t\t.uptime(client.uptime)\n\t\t\t\t\t\t.split('')\n\t\t\t\t\t\t.map((c) => (isNaN(Number(c)) ? c : sharpyy(c, 'txCyan')))\n\t\t\t\t\t\t.join(''),\n\t\t\t\t\t'Commands': client.settings.global ? `${counts.local ? `local: ${counts.local}` : ''}|${counts.global ? `global: ${counts.global}` : ''}` : counts.local + counts.global,\n\t\t\t\t\t'RAM Usage': ram,\n\t\t\t\t\t'Guilds': (await Promise.all(client.settings.guilds.map(async (id) => sharpyy((await client.guilds.fetch(id))?.name || id, 'txBlue')))).join(', '),\n\t\t\t\t\t'Owners': (await Promise.all(client.settings.owners.map(async (id) => sharpyy((await client.users.fetch(id))?.username || id, 'txBlue')))).join(', '),\n\t\t\t\t\t'GuildCount': sharpyy(String(client.stats.guilds), 'txCyan'),\n\t\t\t\t\t'UserCount': sharpyy(String(client.stats.users), 'txCyan'),\n\t\t\t\t\t'ShardCount': sharpyy(String(client.stats.shardCount), 'txCyan'),\n\t\t\t\t})\n\t\t\t\t\t.map(([key, value]) => `${key}: ${value}`)\n\t\t\t\t\t.join('\\n'),\n\t\t\t\t{\n\t\t\t\t\tpadding: 1,\n\t\t\t\t\tmargin: 1,\n\t\t\t\t\tborderStyle: 'round',\n\t\t\t\t\tborderColor: 'magenta',\n\t\t\t\t\ttitle: time + ' - ' + sharpyy('XERNERX', 'txRainbow', 'bold') + '\\x1B[35m',\n\t\t\t\t\theight: 15,\n\t\t\t\t\tfullscreen: (width, height) => [width - 5, height],\n\t\t\t\t}\n\t\t\t);\n\t\t} else {\n\t\t\tspinner.color = 'green';\n\n\t\t\tspinner.text = baseText + `Connecting to Discord${index == 0 ? '.' : index == 1 ? '..' : index == 2 ? '...' : ''}`;\n\t\t}\n\n\t\tindex++;\n\n\t\tif (index == colors.length - 1) index = 0;\n\t}, 250);\n\n\tinit = true;\n}\n\nfunction calculateStats(client: XernerxClient) {\n\tclient.stats.guilds = client.guilds.cache.size;\n\tclient.stats.users = client.users.cache.size;\n\tclient.stats.shardCount = client.options.shardCount || null;\n}\n","/** @format */\n// import * as inquirer from '@inquirer/prompts';\n// import { link } from 'sharpyy';\n\nimport { XernerxClient } from '../client/XernerxClient.js';\nimport * as fs from 'fs';\nimport * as path from 'path';\n\nimport { XernerxFile } from '../types/types.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport { link } from 'sharpyy';\n\nexport class Handler {\n\tpublic declare readonly client: XernerxClient;\n\n\tconstructor(client: XernerxClient) {\n\t\tthis.client = client;\n\t}\n\n\tprotected async readdir(directory: string) {\n\t\tconst dirpath = path.resolve(directory);\n\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to read directory ${link(directory, new URL(dirpath))}`);\n\n\t\ttry {\n\t\t\tconst files = fs.readdirSync(dirpath);\n\n\t\t\treturn files.filter((file) => file.endsWith('.js') || file.endsWith('.mjs') || file.endsWith('.cjs'));\n\t\t} catch (error) {\n\t\t\tXernerxLog.error(`Error reading directory ${link(directory, new URL(dirpath))}:`, error as Error);\n\t\t\treturn [];\n\t\t}\n\t}\n\n\tprotected async load(filepath: string) {\n\t\tif (this.client.settings.debug) XernerxLog.debug(`Attempting to load ${link(filepath, new URL(filepath))}`);\n\n\t\ttry {\n\t\t\tconst file = ((await import(`file://${filepath}`))?.default || (await import(`file://${filepath}`))) as XernerxFile;\n\n\t\t\tconst openFile = new (file as any)() as XernerxFile;\n\n\t\t\tconst [collection, group] = openFile.collection.split('.');\n\n\t\t\tgroup\n\t\t\t\t? this.client[group as 'commands'][collection as 'message' | 'slash' | 'context'].set(openFile._id, openFile as never)\n\t\t\t\t: this.client[collection as 'events' | 'inhibitors'].set(openFile._id, openFile as never);\n\n\t\t\tif (this.client.settings.debug) XernerxLog.debug(`Loaded ${link(openFile._id, new URL(filepath))}`);\n\n\t\t\treturn openFile as XernerxFile;\n\t\t} catch (error) {\n\t\t\tXernerxLog.error(`Error loading ${link(filepath, new URL(filepath))}:`, error as Error);\n\t\t\treturn null;\n\t\t}\n\t}\n}\n","/** @format */\n\n/**\n * @module Handler\n * @category Core\n * @description Represents a handler for handling commands.\n */\n\nimport { XernerxClient } from '../client/XernerxClient.js';\nimport { XernerxContextCommandHandlerOptions, XernerxMessageCommandHandlerOptions, XernerxSlashCommandHandlerOptions } from '../types/interfaces.js';\nimport { Handler } from './Handler.js';\nimport path from 'path';\n\nexport class CommandHandler extends Handler {\n\tconstructor(client: XernerxClient) {\n\t\tsuper(client);\n\t}\n\n\tprotected async loadSlashCommands(options: XernerxSlashCommandHandlerOptions) {\n\t\tif (!this.client.modules.options.slash) this.client.modules.options.slash = {};\n\t\tthis.client.modules.options.slash.global = options.global ?? this.client.settings.global;\n\n\t\tfor (const file of await this.readdir(options.directory)) {\n\t\t\tconst command = await this.load(path.resolve(`${options.directory}/${file}`));\n\n\t\t\tif (!command) continue;\n\n\t\t\tif (command.filetype == 'XernerxMessageCommand' || command.filetype == 'XernerxSlashCommand' || command.filetype == 'XernerxContextCommand') {\n\t\t\t\tif (!this.client.modules.options.slash.global) this.client.commands.stats.slash.local++;\n\t\t\t\telse if (!command.global) this.client.commands.stats.slash.local++;\n\t\t\t\telse this.client.commands.stats.slash.global++;\n\t\t\t}\n\t\t}\n\t}\n\t/**\n\t * Loads message commands from the specified directory.\n\t *\n\t * This method iterates through the files in the given directory,\n\t * attempts to load each file as a message command, and updates the\n\t * command statistics accordingly.\n\t *\n\t * @param options - The options for loading message commands.\n\t * @param options.directory - The directory from which to load message commands.\n\t *\n\t * @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.\n\t */\n\tprotected async loadMessageCommands(options: XernerxMessageCommandHandlerOptions) {}\n\tprotected async loadContextCommands(options: XernerxContextCommandHandlerOptions) {}\n}\n","/** @format */\n\nimport { XernerxClient } from '../main.js';\n\nexport class Util {\n\tpublic declare readonly client: XernerxClient;\n\n\tconstructor(client: XernerxClient) {\n\t\tthis.client = client;\n\t}\n}\n","/** @format */\n\nimport { XernerxClient } from '../main.js';\nimport { Util } from './Util.js';\n\nexport class ClientUtil extends Util {\n\tconstructor(client: XernerxClient) {\n\t\tsuper(client);\n\t}\n\n\tpublic uptime(timestamp?: number | null) {\n\t\tif (!timestamp) timestamp = this.client.uptime || 0;\n\t\tlet totalSeconds = timestamp / 1000;\n\t\tlet years = Math.floor(totalSeconds / 31536000);\n\t\ttotalSeconds %= 31536000;\n\t\tlet days = Math.floor(totalSeconds / 86400);\n\t\ttotalSeconds %= 86400;\n\t\tlet hours = Math.floor(totalSeconds / 3600);\n\t\ttotalSeconds %= 3600;\n\t\tlet minutes = Math.floor(totalSeconds / 60);\n\t\tlet seconds = Math.floor(totalSeconds % 60);\n\n\t\tif (years >= 1) return `${years}y ${days}d ${hours}h ${minutes}m`;\n\t\telse if (days >= 1) return `${days}d ${hours}h ${minutes}m`;\n\t\telse if (hours >= 1) return `${hours}h ${minutes}m`;\n\t\telse if (minutes >= 1) return `${minutes}m ${seconds}s`;\n\t\telse return `${seconds}s`;\n\t}\n}\n","/** @format */\n\nimport * as Discord from 'discord.js';\nimport { z } from 'zod';\n\nimport { start } from '../util/prompts.js';\nimport { XernerxStats } from '../types/interfaces.js';\nimport { CommandHandler } from '../handlers/CommandHandler.js';\nimport { XernerxMessageCommand } from '../builders/XernerxMessageCommand.js';\nimport { XernerxSlashCommand } from '../main.js';\nimport { XernerxContextCommand } from '../builders/XernerxContextCommand.js';\nimport { XernerxEvent } from '../builders/XernerxEvent.js';\nimport { XernerxInhibitor } from '../builders/XernerxInhibitor.js';\nimport XernerxLog from '../tools/XernerxLog.js';\nimport sharpyy from 'sharpyy';\nimport { ClientUtil } from '../util/ClientUtil.js';\n\nexport class XernerxClient<T = {}> extends Discord.Client {\n\tpublic declare readonly settings;\n\tpublic declare readonly stats: XernerxStats;\n\tpublic declare readonly modules: {\n\t\tcommandHandler: CommandHandler;\n\t\toptions: {\n\t\t\tmessage?: { global?: boolean };\n\t\t\tslash?: { global?: boolean };\n\t\t\tcontext?: { global?: boolean };\n\t\t};\n\t};\n\tpublic declare readonly util: ClientUtil;\n\tpublic declare readonly commands;\n\tpublic declare readonly events;\n\tpublic declare readonly inhibitors;\n\n\tconstructor(DiscordOptions: any, XernerxOptions: any, config: T) {\n\t\tsuper(DiscordOptions);\n\n\t\tthis.settings = z\n\t\t\t.object({\n\t\t\t\t// required settings\n\t\t\t\ttoken: z.string(),\n\n\t\t\t\t// optional settings\n\t\t\t\tglobal: z.boolean().default(false),\n\t\t\t\towners: z.array(z.string()).default([]),\n\t\t\t\tguilds: z.array(z.string()).default([]),\n\n\t\t\t\t// dev settings\n\t\t\t\tdebug: z.boolean().default(false),\n\t\t\t})\n\t\t\t.parse({ ...XernerxOptions, ...config });\n\n\t\tthis.stats = {\n\t\t\tguilds: null,\n\t\t\tusers: null,\n\t\t\tshardId: null,\n\t\t\tshardCount: null,\n\t\t\tshards: null,\n\t\t\tvoteCount: null,\n\t\t\tvotes: null,\n\t\t};\n\n\t\tthis.util = new ClientUtil(this);\n\n\t\tstart(this);\n\n\t\tthis.modules = {\n\t\t\tcommandHandler: new CommandHandler(this),\n\n\t\t\toptions: {},\n\t\t};\n\n\t\tthis.commands = {\n\t\t\tmessage: new Discord.Collection() as Discord.Collection<string, XernerxMessageCommand>,\n\t\t\tslash: new Discord.Collection() as Discord.Collection<string, XernerxSlashCommand>,\n\t\t\tcontext: new Discord.Collection() as Discord.Collection<string, XernerxContextCommand>,\n\t\t\tstats: {\n\t\t\t\tslash: {\n\t\t\t\t\tlocal: 0,\n\t\t\t\t\tglobal: 0,\n\t\t\t\t},\n\t\t\t\tmessage: {\n\t\t\t\t\tlocal: 0,\n\t\t\t\t\tglobal: 0,\n\t\t\t\t},\n\t\t\t\tcontext: {\n\t\t\t\t\tlocal: 0,\n\t\t\t\t\tglobal: 0,\n\t\t\t\t},\n\t\t\t},\n\t\t};\n\n\t\tthis.events = new Discord.Collection() as Discord.Collection<string, XernerxEvent>;\n\t\tthis.inhibitors = new Discord.Collection() as Discord.Collection<string, XernerxInhibitor>;\n\n\t\tthis.connect();\n\t}\n\n\tprivate async connect() {\n\t\t// slash cmds\n\t\tthis.deploy();\n\n\t\t// login\n\t\tthis.login(this.settings.token);\n\t}\n\n\tprivate async deploy() {\n\t\tthis.once('ready', async (client) => {\n\t\t\tconst commands: { local: Array<XernerxSlashCommand | XernerxContextCommand>; global: Array<XernerxSlashCommand | XernerxContextCommand> } = { local: [], global: [] };\n\n\t\t\tif (this.settings.global) {\n\t\t\t\tif (!this.modules.options.slash?.global) commands.global.push(...(this.commands.slash as any));\n\t\t\t\telse {\n\t\t\t\t\tcommands.global.push(...(this.commands.slash.filter((c) => c.global) as any));\n\n\t\t\t\t\tcommands.local.push(...(this.commands.slash.filter((c) => !c.global) as any));\n\t\t\t\t}\n\n\t\t\t\tif (!this.modules.options.context?.global) commands.global.push(...(this.commands.context as any));\n\t\t\t\telse {\n\t\t\t\t\tcommands.global.push(...(this.commands.context.filter((c) => c.global) as any));\n\n\t\t\t\t\tcommands.local.push(...(this.commands.context.filter((c) => !c.global) as any));\n\t\t\t\t}\n\t\t\t} else commands.local.push(...(this.commands.context as any), ...(this.commands.slash as any));\n\n\t\t\tfor (const id of this.settings.guilds) {\n\t\t\t\tconst guild = await this.guilds.fetch(id);\n\n\t\t\t\tif (!commands.local.length) break;\n\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands to guild: ${sharpyy(guild.name, 'txBlue')}`);\n\n\t\t\t\tthis.rest.put(Discord.Routes.applicationGuildCommands(client.user.id, id), { body: (commands.local as any).map(([id, command]: any) => command.toJSON()) });\n\n\t\t\t\tawait XernerxLog.box(\n\t\t\t\t\t(commands.local as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '),\n\t\t\t\t\t'red',\n\t\t\t\t\t`Deployed ${sharpyy('local', 'txRed', 'bold')} commands in ${sharpyy(guild.name, 'txBlue')}`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.settings.global) {\n\t\t\t\tif (this.settings.debug) XernerxLog.debug(`Attempting to deploy commands globally`);\n\n\t\t\t\tthis.rest.put(Discord.Routes.applicationCommands(client.user.id), { body: [] });\n\n\t\t\t\tawait XernerxLog.box((commands.global as any).map(([id]: [string]) => sharpyy(id, 'txYellow')).join(', '), 'green', `Deployed ${sharpyy('global', 'txGreen', 'bold')} commands`);\n\t\t\t}\n\t\t});\n\t}\n}\n","/** @format */\n\nimport * as Discord from 'discord.js';\n\nexport class XernerxSlashCommand extends Discord.SlashCommandBuilder {\n\tpublic declare readonly _id: string;\n\tpublic declare readonly global: boolean;\n\tpublic declare readonly filetype: 'XernerxSlashCommand';\n\tpublic declare readonly collection: 'slash.commands';\n\n\tconstructor(options: any) {\n\t\tsuper();\n\n\t\tthis._id = options.id;\n\n\t\tthis.setName(options.name);\n\n\t\tthis.setDescription(options.description);\n\n\t\tthis.global = options.global ?? true;\n\n\t\tthis.filetype = 'XernerxSlashCommand';\n\n\t\tthis.collection = 'slash.commands';\n\t}\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xernerx",
|
|
3
|
-
"version": "0.1.120-beta.
|
|
3
|
+
"version": "0.1.120-beta.4",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/main.cjs",
|
|
6
6
|
"module": "./dist/main.js",
|
|
@@ -20,9 +20,11 @@
|
|
|
20
20
|
}
|
|
21
21
|
},
|
|
22
22
|
"scripts": {
|
|
23
|
-
"check": "
|
|
23
|
+
"check": "attw --pack",
|
|
24
24
|
"test": "nodemon test/main.test.js",
|
|
25
|
-
"dev": "npx tsup --watch"
|
|
25
|
+
"dev": "npx tsup --watch",
|
|
26
|
+
"build": "npx tsup",
|
|
27
|
+
"docs": "typedoc"
|
|
26
28
|
},
|
|
27
29
|
"keywords": [],
|
|
28
30
|
"author": "",
|
|
@@ -33,15 +35,20 @@
|
|
|
33
35
|
"discord.js": "^14.16.3",
|
|
34
36
|
"dumfunctions": "^2.1.6",
|
|
35
37
|
"figlet": "^1.7.0",
|
|
36
|
-
"inquirer": "^
|
|
38
|
+
"inquirer": "^11.1.0",
|
|
37
39
|
"ora": "^8.1.0",
|
|
38
40
|
"sharpyy": "^1.1.0",
|
|
39
41
|
"zod": "^3.23.8"
|
|
40
42
|
},
|
|
41
43
|
"devDependencies": {
|
|
44
|
+
"@arethetypeswrong/cli": "^0.16.4",
|
|
42
45
|
"@types/figlet": "^1.5.8",
|
|
46
|
+
"jsdoc": "^4.0.3",
|
|
47
|
+
"minami": "^1.2.3",
|
|
43
48
|
"prettier": "^3.3.3",
|
|
44
49
|
"tsup": "^8.3.0",
|
|
50
|
+
"typedoc": "^0.26.8",
|
|
51
|
+
"typedoc-github-theme": "^0.1.2",
|
|
45
52
|
"typescript": "^5.6.2"
|
|
46
53
|
}
|
|
47
54
|
}
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
public declare readonly
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
/** @format */
|
|
2
|
+
/**
|
|
3
|
+
* @module: Builder
|
|
4
|
+
* @description: Represents a context command in Xernerx Framework.
|
|
5
|
+
*
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export class XernerxContextCommand {
|
|
9
|
+
public declare readonly _id: string;
|
|
10
|
+
public declare readonly name: string;
|
|
11
|
+
public declare readonly description: string;
|
|
12
|
+
public declare readonly global: boolean;
|
|
13
|
+
public declare readonly filetype: 'XernerxContextCommand';
|
|
14
|
+
public declare readonly collection: 'context.commands';
|
|
15
|
+
|
|
16
|
+
constructor(options: any) {
|
|
17
|
+
this._id = options.id;
|
|
18
|
+
|
|
19
|
+
this.name = options.name;
|
|
20
|
+
|
|
21
|
+
this.description = options.description;
|
|
22
|
+
|
|
23
|
+
this.global = options.global ?? true;
|
|
24
|
+
|
|
25
|
+
this.filetype = 'XernerxContextCommand';
|
|
26
|
+
|
|
27
|
+
this.collection = 'context.commands';
|
|
28
|
+
}
|
|
29
|
+
}
|