diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/common/util/Format.ts | 24 | ||||
-rw-r--r-- | src/lib/extensions/discord-akairo/BushClient.ts | 23 | ||||
-rw-r--r-- | src/lib/extensions/discord.js/ExtendedGuild.ts | 1 | ||||
-rw-r--r-- | src/lib/utils/BushConstants.ts | 1 | ||||
-rw-r--r-- | src/lib/utils/BushLogger.ts | 12 | ||||
-rw-r--r-- | src/lib/utils/BushUtils.ts | 8 |
6 files changed, 40 insertions, 29 deletions
diff --git a/src/lib/common/util/Format.ts b/src/lib/common/util/Format.ts index 8e7c302..5188c2b 100644 --- a/src/lib/common/util/Format.ts +++ b/src/lib/common/util/Format.ts @@ -1,5 +1,7 @@ import { type CodeBlockLang } from '#lib'; import { + bold as discordBold, + codeBlock as discordCodeBlock, escapeBold as discordEscapeBold, escapeCodeBlock as discordEscapeCodeBlock, escapeInlineCode as discordEscapeInlineCode, @@ -9,7 +11,11 @@ import { escapeSpoiler as discordEscapeSpoiler, escapeStrikethrough as discordEscapeStrikethrough, escapeUnderline as discordEscapeUnderline, - Formatters + inlineCode as discordInlineCode, + italic as discordItalic, + spoiler as discordSpoiler, + strikethrough as discordStrikethrough, + underscore as discordUnderscore } from 'discord.js'; /** @@ -26,8 +32,8 @@ export function codeBlock(content: string): string; export function codeBlock(language: CodeBlockLang, content: string): string; export function codeBlock(languageOrContent: string, content?: string): string { return typeof content === 'undefined' - ? Formatters.codeBlock(discordEscapeCodeBlock(`${languageOrContent}`)) - : Formatters.codeBlock(`${languageOrContent}`, discordEscapeCodeBlock(`${content}`)); + ? discordCodeBlock(discordEscapeCodeBlock(`${languageOrContent}`)) + : discordCodeBlock(`${languageOrContent}`, discordEscapeCodeBlock(`${content}`)); } /** @@ -35,7 +41,7 @@ export function codeBlock(languageOrContent: string, content?: string): string { * @param content The content to wrap. */ export function inlineCode(content: string): string { - return Formatters.inlineCode(discordEscapeInlineCode(`${content}`)); + return discordInlineCode(discordEscapeInlineCode(`${content}`)); } /** @@ -43,7 +49,7 @@ export function inlineCode(content: string): string { * @param content The content to wrap. */ export function italic(content: string): string { - return Formatters.italic(discordEscapeItalic(`${content}`)); + return discordItalic(discordEscapeItalic(`${content}`)); } /** @@ -51,7 +57,7 @@ export function italic(content: string): string { * @param content The content to wrap. */ export function bold(content: string): string { - return Formatters.bold(discordEscapeBold(`${content}`)); + return discordBold(discordEscapeBold(`${content}`)); } /** @@ -59,7 +65,7 @@ export function bold(content: string): string { * @param content The content to wrap. */ export function underscore(content: string): string { - return Formatters.underscore(discordEscapeUnderline(`${content}`)); + return discordUnderscore(discordEscapeUnderline(`${content}`)); } /** @@ -67,7 +73,7 @@ export function underscore(content: string): string { * @param content The content to wrap. */ export function strikethrough(content: string): string { - return Formatters.strikethrough(discordEscapeStrikethrough(`${content}`)); + return discordStrikethrough(discordEscapeStrikethrough(`${content}`)); } /** @@ -75,7 +81,7 @@ export function strikethrough(content: string): string { * @param content The content to wrap. */ export function spoiler(content: string): string { - return Formatters.spoiler(discordEscapeSpoiler(`${content}`)); + return discordSpoiler(discordEscapeSpoiler(`${content}`)); } /** diff --git a/src/lib/extensions/discord-akairo/BushClient.ts b/src/lib/extensions/discord-akairo/BushClient.ts index 855c252..9ca02a2 100644 --- a/src/lib/extensions/discord-akairo/BushClient.ts +++ b/src/lib/extensions/discord-akairo/BushClient.ts @@ -15,6 +15,7 @@ import { patch, type PatchedElements } from '@notenoughupdates/events-intercept' import * as Sentry from '@sentry/node'; import { AkairoClient, + ArgumentTypeCaster, ContextMenuCommandHandler, version as akairoVersion, type ArgumentPromptData, @@ -406,17 +407,17 @@ export class BushClient<Ready extends boolean = boolean> extends AkairoClient<Re }; this.listenerHandler.setEmitters(emitters); this.commandHandler.resolver.addTypes({ - duration, - contentWithDuration, - permission, - snowflake, - discordEmoji, - roleWithDuration, - abbreviatedNumber, - durationSeconds, - globalUser, - messageLink, - tinyColor + duration: <ArgumentTypeCaster>duration, + contentWithDuration: <ArgumentTypeCaster>contentWithDuration, + permission: <ArgumentTypeCaster>permission, + snowflake: <ArgumentTypeCaster>snowflake, + discordEmoji: <ArgumentTypeCaster>discordEmoji, + roleWithDuration: <ArgumentTypeCaster>roleWithDuration, + abbreviatedNumber: <ArgumentTypeCaster>abbreviatedNumber, + durationSeconds: <ArgumentTypeCaster>durationSeconds, + globalUser: <ArgumentTypeCaster>globalUser, + messageLink: <ArgumentTypeCaster>messageLink, + tinyColor: <ArgumentTypeCaster>tinyColor }); this.sentry.setTag('process', process.pid.toString()); diff --git a/src/lib/extensions/discord.js/ExtendedGuild.ts b/src/lib/extensions/discord.js/ExtendedGuild.ts index e55851b..3dce7ca 100644 --- a/src/lib/extensions/discord.js/ExtendedGuild.ts +++ b/src/lib/extensions/discord.js/ExtendedGuild.ts @@ -739,6 +739,7 @@ export class ExtendedGuild extends Guild { // todo: use enum for this case 24 as MessageType: { const embed = quote.embeds[0]; + // eslint-disable-next-line deprecation/deprecation assert.equal(embed.data.type, 'auto_moderation_message'); const ruleName = embed.fields!.find((f) => f.name === 'rule_name')!.value; const channelId = embed.fields!.find((f) => f.name === 'channel_id')!.value; diff --git a/src/lib/utils/BushConstants.ts b/src/lib/utils/BushConstants.ts index 0fd9113..abac4af 100644 --- a/src/lib/utils/BushConstants.ts +++ b/src/lib/utils/BushConstants.ts @@ -331,6 +331,7 @@ export const mappings = deepLock({ Admin: '<:admin:848963914628333598>', Superuser: '<:superUser:848947986326224926>', Developer: '<:developer:848954538111139871>', + Bot: '<:bot:1006929813203853427>', BushVerified: '<:verfied:853360152090771497>', BoostTier1: '<:boostitle:853363736679940127>', BoostTier2: '<:boostitle:853363752728789075>', diff --git a/src/lib/utils/BushLogger.ts b/src/lib/utils/BushLogger.ts index 995dd82..21d10a0 100644 --- a/src/lib/utils/BushLogger.ts +++ b/src/lib/utils/BushLogger.ts @@ -1,6 +1,6 @@ import chalk from 'chalk'; // eslint-disable-next-line @typescript-eslint/no-unused-vars -import { Client, EmbedBuilder, escapeMarkdown, Formatters, PartialTextBasedChannelFields, type Message } from 'discord.js'; +import { bold, Client, EmbedBuilder, escapeMarkdown, PartialTextBasedChannelFields, type Message } from 'discord.js'; import { stripVTControlCharacters as stripColor } from 'node:util'; import repl, { REPLServer, REPL_MODE_STRICT } from 'repl'; import { WriteStream } from 'tty'; @@ -77,7 +77,7 @@ function parseFormatting( .split(/<<|>>/) .map((value, index) => { if (discordFormat) { - return index % 2 === 0 ? escapeMarkdown(value) : Formatters.bold(escapeMarkdown(value)); + return index % 2 === 0 ? escapeMarkdown(value) : bold(escapeMarkdown(value)); } else { return index % 2 === 0 || !color ? value : chalk[color](value); } @@ -106,11 +106,9 @@ function inspectContent(content: any, depth = 2, colors = true): string { function getTimeStamp(): string { const now = new Date(); const minute = pad(now.getMinutes()); - const hour = pad(now.getHours() % 12); - const meridiem = now.getHours() > 12 ? 'PM' : 'AM'; - const year = now.getFullYear().toString().slice(2).padStart(2, '0'); - const date = `${pad(now.getMonth() + 1)}/${pad(now.getDay())}/${year}`; - return `${date} ${hour}:${minute} ${meridiem}`; + const hour = pad(now.getHours()); + const date = `${pad(now.getMonth() + 1)}/${pad(now.getDay())}`; + return `${date} ${hour}:${minute}`; } /** diff --git a/src/lib/utils/BushUtils.ts b/src/lib/utils/BushUtils.ts index af173f9..de01ac0 100644 --- a/src/lib/utils/BushUtils.ts +++ b/src/lib/utils/BushUtils.ts @@ -466,9 +466,13 @@ export function clientSendAndPermCheck( permissions: bigint[] = [], checkChannel = false ): PermissionsString[] | null { + if (!message.inGuild() || !message.channel) return null; + const missing: PermissionsString[] = []; - const sendPerm = message.channel!.isThread() ? 'SendMessages' : 'SendMessagesInThreads'; - if (!message.inGuild()) return null; + const sendPerm = message.channel.isThread() ? 'SendMessages' : 'SendMessagesInThreads'; + + // todo: remove once forum channels are fixed + if (message.channel.parent === null && message.channel.isThread()) return null; if (!message.guild.members.me!.permissionsIn(message.channel!.id).has(sendPerm)) missing.push(sendPerm); |