refactor(reactionAdd): add better/more information to starboard embeds

This commit is contained in:
spifory 2025-08-30 20:21:36 +02:00
parent 5cf1d4f58d
commit 303aba80b1
No known key found for this signature in database
GPG Key ID: A09D250DB53F8BD7
1 changed files with 17 additions and 6 deletions

View File

@ -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(