diff options
Diffstat (limited to 'src/commands')
-rw-r--r-- | src/commands/config/config.ts | 2 | ||||
-rw-r--r-- | src/commands/dev/eval.ts | 18 | ||||
-rw-r--r-- | src/commands/dev/test.ts | 10 |
3 files changed, 25 insertions, 5 deletions
diff --git a/src/commands/config/config.ts b/src/commands/config/config.ts index 9d8ba60..b7b3f0e 100644 --- a/src/commands/config/config.ts +++ b/src/commands/config/config.ts @@ -324,7 +324,7 @@ export default class ConfigCommand extends BushCommand { return Array.isArray(feat) ? feat.length - ? feat.map(func).join('\n') + ? (<string[]>feat).map(func).join('\n') : '[Empty Array]' : feat !== null ? func(feat) diff --git a/src/commands/dev/eval.ts b/src/commands/dev/eval.ts index 5b2f27a..4eb25dc 100644 --- a/src/commands/dev/eval.ts +++ b/src/commands/dev/eval.ts @@ -8,6 +8,7 @@ import { Guild, Level, ModLog, + Shared, StickyRole, type ArgType } from '#lib'; @@ -132,6 +133,15 @@ export default class EvalCommand extends BushCommand { prompt: 'Would you like to inspect the prototype chain to find methods?', slashType: 'BOOLEAN', optional: true + }, + { + id: 'async', + description: 'Whether or not to wrap the code in an async function.', + match: 'flag', + flag: '--async', + prompt: 'Would you like to wrap the code in an async function?', + slashType: 'BOOLEAN', + optional: true } ], slash: true, @@ -144,8 +154,8 @@ export default class EvalCommand extends BushCommand { public override async exec( message: BushMessage | BushSlashMessage, args: { - sel_depth: ArgType<'integer'>; code: ArgType<'string'>; + sel_depth: ArgType<'integer'>; sudo: ArgType<'boolean'>; silent: ArgType<'boolean'>; deleteMSG: ArgType<'boolean'>; @@ -153,6 +163,7 @@ export default class EvalCommand extends BushCommand { hidden: ArgType<'boolean'>; show_proto: ArgType<'boolean'>; show_methods: ArgType<'boolean'>; + async: ArgType<'boolean'>; } ) { if (!message.author.isOwner()) @@ -161,7 +172,8 @@ export default class EvalCommand extends BushCommand { await message.interaction.deferReply({ ephemeral: args.silent }); } const isTypescript = args.typescript || args.code.includes('```ts'); - const rawCode = args.code.replace(/[“”]/g, '"').replace(/```*(?:js|ts)?/g, ''); + let rawCode = args.code.replace(/[“”]/g, '"').replace(/```*(?:js|ts)?/g, ''); + if (args.async) rawCode = `(async () => {${rawCode}})()`; const code: { ts: string | null; js: string; lang: 'ts' | 'js' } = { ts: isTypescript ? rawCode : null, @@ -237,4 +249,4 @@ export default class EvalCommand extends BushCommand { } } -/** @typedef {ActivePunishment|Global|Guild|Level|ModLog|StickyRole|ButtonInteraction|Collection|Collector|CommandInteraction|ContextMenuInteraction|DMChannel|Emoji|Interaction|InteractionCollector|Message|MessageActionRow|MessageAttachment|MessageButton|MessageCollector|MessageSelectMenu|ReactionCollector|Util|Canvas} VSCodePleaseDontRemove */ +/** @typedef {ActivePunishment|Global|Guild|Level|ModLog|StickyRole|ButtonInteraction|Collection|Collector|CommandInteraction|ContextMenuInteraction|DMChannel|Emoji|Interaction|InteractionCollector|Message|MessageActionRow|MessageAttachment|MessageButton|MessageCollector|MessageSelectMenu|ReactionCollector|Util|Canvas|Shared} VSCodePleaseDontRemove */ diff --git a/src/commands/dev/test.ts b/src/commands/dev/test.ts index 2c4e34d..50532f8 100644 --- a/src/commands/dev/test.ts +++ b/src/commands/dev/test.ts @@ -1,6 +1,8 @@ -import { BushCommand, ButtonPaginator, type BushMessage } from '#lib'; +import { BushCommand, ButtonPaginator, Shared, type BushMessage } from '#lib'; import { MessageActionRow, MessageButton, MessageEmbed, type ApplicationCommand, type Collection } from 'discord.js'; import { MessageButtonStyles } from 'discord.js/typings/enums'; +import badLinksSecretArray from '../../lib/badlinks-secret.js'; +import badLinksArray from '../../lib/badlinks.js'; export default class TestCommand extends BushCommand { public constructor() { @@ -148,6 +150,12 @@ export default class TestCommand extends BushCommand { return await message.util.reply(`${util.emojis.success} Removed guild commands and global commands.`); } else if (['drop down', 'drop downs', 'select menu', 'select menus'].includes(args?.feature?.toLowerCase())) { + } else if (['sync links'].includes(args?.feature?.toLowerCase())) { + const row = (await Shared.findByPk(0))!; + row.badLinks = badLinksArray; + row.badLinksSecret = badLinksSecretArray; + await row.save(); + return await message.util.reply(`${util.emojis.success} Updated bad links.`); } return await message.util.reply(responses[Math.floor(Math.random() * responses.length)]); } |