aboutsummaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/common/util/Format.ts24
-rw-r--r--src/lib/extensions/discord-akairo/BushClient.ts23
-rw-r--r--src/lib/extensions/discord.js/ExtendedGuild.ts1
-rw-r--r--src/lib/utils/BushConstants.ts1
-rw-r--r--src/lib/utils/BushLogger.ts12
-rw-r--r--src/lib/utils/BushUtils.ts8
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);