diff --git a/src/events/reactionAdd.ts b/src/events/reactionAdd.ts index 953da7b..9af3a64 100644 --- a/src/events/reactionAdd.ts +++ b/src/events/reactionAdd.ts @@ -1,8 +1,8 @@ -import { Client, Discord, On, type ArgsOf } from "discordx"; +import { type Client, Discord, On, type ArgsOf } from "discordx"; import db from "../db"; import { starboardMessagesTable, starboardSettingsTable } from "../db/schema"; import { eq } from "drizzle-orm"; -import { Colors, EmbedBuilder, TextChannel } from "discord.js"; +import { Colors, EmbedBuilder, type TextChannel } from "discord.js"; @Discord() export class ReactionAdd { @@ -13,10 +13,10 @@ export class ReactionAdd { .from(starboardSettingsTable) .where(eq(starboardSettingsTable.guild, re.message.guildId!)); if ( - re.count == settings[0].threshold && - re.emoji.name == "⭐" && + re.count === settings[0].threshold && + re.emoji.name === "⭐" && re.message.channelId !== settings[0].channel && - settings[0].enabled == 1 + settings[0].enabled === 1 ) { await db .insert(starboardMessagesTable) @@ -25,8 +25,19 @@ export class ReactionAdd { .get(re.message.guildId!)! .members.cache.get(re.message.author!.id); const embed = new EmbedBuilder() + .setAuthor({ + name: author?.displayName!, + iconURL: author?.displayAvatarURL(), + }) .setTitle(`New message from ${author?.displayName}`) - .setDescription(re.message.content) + .setURL(re.message.url) + // Sapphire returns ExpectedValidationError & ExpectedConstraintError + // without specifying null for whatever reason + // Even though .content is already typed as "string | null" + .setDescription(re.message.content || null) + .setImage(re.message.attachments.first()?.url || null) + .setFooter({ text: "\u{00002b50}" }) + .setTimestamp(re.message.createdAt) .setColor(Colors.Yellow); const channel = client.channels.cache.get(