xernerx 0.1.120-beta.2 → 0.1.120-beta.3
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.global.js +25 -2
- package/dist/main.global.js.map +1 -1
- package/dist/main.js +13 -0
- package/dist/main.js.map +1 -1
- package/package.json +9 -3
- package/src/{base → builders}/XernerxContextCommand.ts +5 -0
- package/src/client/XernerxClient.ts +4 -4
- package/src/handlers/CommandHandler.ts +18 -0
- package/src/main.ts +1 -1
- package/src/types/types.ts +5 -5
- /package/src/{base → builders}/XernerxEvent.ts +0 -0
- /package/src/{base → builders}/XernerxInhibitor.ts +0 -0
- /package/src/{base → builders}/XernerxMessageCommand.ts +0 -0
- /package/src/{base → builders}/XernerxSlashCommand.ts +0 -0
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/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\n/**\r\n * @module Handler\r\n * @category Core\r\n * @description Represents a handler for handling commands.\r\n */\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\t/**\r\n\t * Loads message commands from the specified directory.\r\n\t *\r\n\t * This method iterates through the files in the given directory,\r\n\t * attempts to load each file as a message command, and updates the\r\n\t * command statistics accordingly.\r\n\t *\r\n\t * @param options - The options for loading message commands.\r\n\t * @param options.directory - The directory from which to load message commands.\r\n\t *\r\n\t * @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.\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"]}
|
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.global.js
CHANGED
|
@@ -58,6 +58,7 @@
|
|
|
58
58
|
}
|
|
59
59
|
return to;
|
|
60
60
|
};
|
|
61
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget);
|
|
61
62
|
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
62
63
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
63
64
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -43440,7 +43441,7 @@ ${pairsBlock}`;
|
|
|
43440
43441
|
}
|
|
43441
43442
|
return to;
|
|
43442
43443
|
}, "__copyProps");
|
|
43443
|
-
var
|
|
43444
|
+
var __reExport2 = /* @__PURE__ */ __name((target, mod, secondTarget) => (__copyProps2(target, mod, "default"), secondTarget && __copyProps2(secondTarget, mod, "default")), "__reExport");
|
|
43444
43445
|
var __toESM2 = /* @__PURE__ */ __name((mod, isNodeMode, target) => (target = mod != null ? __create2(__getProtoOf2(mod)) : {}, __copyProps2(
|
|
43445
43446
|
// If the importer is in node compatibility mode or this is not an ESM
|
|
43446
43447
|
// file that has been converted to a CommonJS file using a Babel-
|
|
@@ -43809,7 +43810,7 @@ ${pairsBlock}`;
|
|
|
43809
43810
|
return { ...this.data };
|
|
43810
43811
|
}
|
|
43811
43812
|
};
|
|
43812
|
-
|
|
43813
|
+
__reExport2(src_exports, require_dist7(), module2.exports);
|
|
43813
43814
|
var Assertions_exports2 = {};
|
|
43814
43815
|
__export2(Assertions_exports2, {
|
|
43815
43816
|
buttonLabelValidator: /* @__PURE__ */ __name(() => buttonLabelValidator, "buttonLabelValidator"),
|
|
@@ -84065,6 +84066,13 @@ ${fromBody}`, "wrappedToString");
|
|
|
84065
84066
|
}
|
|
84066
84067
|
});
|
|
84067
84068
|
|
|
84069
|
+
// src/main.ts
|
|
84070
|
+
var main_exports = {};
|
|
84071
|
+
__export(main_exports, {
|
|
84072
|
+
XernerxClient: () => XernerxClient,
|
|
84073
|
+
XernerxSlashCommand: () => XernerxSlashCommand
|
|
84074
|
+
});
|
|
84075
|
+
|
|
84068
84076
|
// src/client/XernerxClient.ts
|
|
84069
84077
|
var Discord = __toESM(require_src());
|
|
84070
84078
|
|
|
@@ -88365,6 +88373,18 @@ ${fromBody}`, "wrappedToString");
|
|
|
88365
88373
|
}
|
|
88366
88374
|
}
|
|
88367
88375
|
}
|
|
88376
|
+
/**
|
|
88377
|
+
* Loads message commands from the specified directory.
|
|
88378
|
+
*
|
|
88379
|
+
* This method iterates through the files in the given directory,
|
|
88380
|
+
* attempts to load each file as a message command, and updates the
|
|
88381
|
+
* command statistics accordingly.
|
|
88382
|
+
*
|
|
88383
|
+
* @param options - The options for loading message commands.
|
|
88384
|
+
* @param options.directory - The directory from which to load message commands.
|
|
88385
|
+
*
|
|
88386
|
+
* @returns {Promise<void>} - A promise that resolves when all message commands have been loaded.
|
|
88387
|
+
*/
|
|
88368
88388
|
async loadMessageCommands(options) {
|
|
88369
88389
|
}
|
|
88370
88390
|
async loadContextCommands(options) {
|
|
@@ -88518,6 +88538,9 @@ ${fromBody}`, "wrappedToString");
|
|
|
88518
88538
|
this.collection = "slash.commands";
|
|
88519
88539
|
}
|
|
88520
88540
|
};
|
|
88541
|
+
|
|
88542
|
+
// src/main.ts
|
|
88543
|
+
__reExport(main_exports, __toESM(require_src()));
|
|
88521
88544
|
/*! Bundled license information:
|
|
88522
88545
|
|
|
88523
88546
|
undici/lib/web/fetch/body.js:
|