diff options
Diffstat (limited to 'lib/utils')
| -rw-r--r-- | lib/utils/Arg.ts | 2 | ||||
| -rw-r--r-- | lib/utils/BotClientUtils.ts | 5 | ||||
| -rw-r--r-- | lib/utils/Constants.ts | 3 | ||||
| -rw-r--r-- | lib/utils/ErrorHandler.ts | 2 | ||||
| -rw-r--r-- | lib/utils/Utils.ts | 16 |
5 files changed, 20 insertions, 8 deletions
diff --git a/lib/utils/Arg.ts b/lib/utils/Arg.ts index 80ca878..803230b 100644 --- a/lib/utils/Arg.ts +++ b/lib/utils/Arg.ts @@ -1,5 +1,5 @@ import type { BaseBotArgumentType, BotArgumentType, BotArgumentTypeCaster, CommandMessage, SlashMessage } from '#lib'; -import { Argument, type Command, type Flag, type ParsedValuePredicate } from 'discord-akairo'; +import { Argument, type Command, type Flag, type ParsedValuePredicate } from '@notenoughupdates/discord-akairo'; import { type Message } from 'discord.js'; /** diff --git a/lib/utils/BotClientUtils.ts b/lib/utils/BotClientUtils.ts index 4b2c99b..6837237 100644 --- a/lib/utils/BotClientUtils.ts +++ b/lib/utils/BotClientUtils.ts @@ -21,7 +21,7 @@ import { type Snowflake, type UserResolvable } from 'discord.js'; -import _ from 'lodash'; +import { camelCase } from 'lodash-es'; import { emojis, Pronoun, PronounCode, pronounMapping, regex } from './Constants.js'; import { generateErrorEmbed } from './ErrorHandler.js'; import { addOrRemoveFromArray, formatError, inspect } from './Utils.js'; @@ -329,7 +329,7 @@ export class BotClientUtils { * @param error */ public async handleError(context: string, error: Error) { - await this.client.console.error(_.camelCase(context), `An error occurred:\n${formatError(error, false)}`, false); + await this.client.console.error(camelCase(context), `An error occurred:\n${formatError(error, false)}`, false); await this.client.console.channelError({ embeds: await generateErrorEmbed(this.client, { type: 'unhandledRejection', error: error, context }) }); @@ -382,6 +382,7 @@ export class BotClientUtils { public async uploadImageToImgur(image: string) { const clientId = this.client.config.credentials.imgurClientId; + // @ts-expect-error: missing global types const formData = new FormData(); formData.append('type', 'base64'); formData.append('image', image); diff --git a/lib/utils/Constants.ts b/lib/utils/Constants.ts index dd65e28..5ecbce2 100644 --- a/lib/utils/Constants.ts +++ b/lib/utils/Constants.ts @@ -1,4 +1,4 @@ -import { default as deepLock } from 'deep-lock'; +import deepLock from '@tanzanite/deep-lock'; import { Colors, GuildFeature, Snowflake } from 'discord.js'; const rawCapeUrl = 'https://raw.githubusercontent.com/NotEnoughUpdates/capes/master/'; @@ -294,6 +294,7 @@ export const mappings = deepLock({ AUTO_MODERATION: { name: 'Auto Moderation', important: false, emoji: '<:autoModeration:1010579417942200321>', weight: 33 }, MEMBER_PROFILES: { name: 'Member Profiles', important: false, emoji: '<:memberProfiles:1010580480409747547>', weight: 34 }, NEW_THREAD_PERMISSIONS: { name: 'New Thread Permissions', important: false, emoji: '<:newThreadPermissions:1010580968442171492>', weight: 35 }, + [GuildFeature.InvitesDisabled]: { name: 'Invites Disabled', important: false, emoji: null, weight: 36 }, }, regions: { diff --git a/lib/utils/ErrorHandler.ts b/lib/utils/ErrorHandler.ts index 3f8be89..ea4a026 100644 --- a/lib/utils/ErrorHandler.ts +++ b/lib/utils/ErrorHandler.ts @@ -1,4 +1,4 @@ -import { AkairoMessage, Command } from 'discord-akairo'; +import { AkairoMessage, Command } from '@notenoughupdates/discord-akairo'; import { ChannelType, Client, EmbedBuilder, escapeInlineCode, GuildTextBasedChannel, Message } from 'discord.js'; import { BotCommandHandlerEvents } from '../extensions/discord-akairo/BotCommandHandler.js'; import { SlashMessage } from '../extensions/discord-akairo/SlashMessage.js'; diff --git a/lib/utils/Utils.ts b/lib/utils/Utils.ts index 13806ec..ea70abf 100644 --- a/lib/utils/Utils.ts +++ b/lib/utils/Utils.ts @@ -1,9 +1,11 @@ +import { Util as AkairoUtil } from '@notenoughupdates/discord-akairo'; import { humanizeDuration as humanizeDurationMod } from '@notenoughupdates/humanize-duration'; +import deepLock from '@tanzanite/deep-lock'; import assert from 'assert/strict'; import cp from 'child_process'; -import deepLock from 'deep-lock'; -import { Util as AkairoUtil } from 'discord-akairo'; import { + ActionRowBuilder, + APITextInputComponent, Constants as DiscordConstants, EmbedBuilder, Message, @@ -11,6 +13,8 @@ import { PermissionFlagsBits, PermissionsBitField, PermissionsString, + TextInputBuilder, + TextInputComponentData, type APIEmbed, type APIMessage, type CommandInteraction, @@ -159,7 +163,7 @@ export async function slashRespond( delete (newResponseOptions as InteractionReplyOptions).ephemeral; // Cannot change a preexisting message to be ephemeral return (await interaction.editReply(newResponseOptions)) as Message | APIMessage; } else { - await interaction.reply(newResponseOptions); + await interaction.reply(newResponseOptions as SlashSendMessageType); return await interaction.fetchReply().catch(() => undefined); } } @@ -547,3 +551,9 @@ export function deepWriteable<T>(obj: T): DeepWritable<T> { export function formatPerms(permissions: PermissionsString[]) { return permissions.map((p) => `\`${mappings.permissions[p]?.name ?? p}\``).join(', '); } + +export function ModalInput(options: Partial<TextInputComponentData | APITextInputComponent>): ActionRowBuilder<TextInputBuilder> { + return new ActionRowBuilder<TextInputBuilder>({ + components: [new TextInputBuilder(options)] + }); +} |
