11import "../libs/loadVariables.js" ;
22import {
3- Client ,
3+ ContainerBuilder ,
44 EmbedBuilder ,
55 Events ,
66 GuildMember ,
7+ MessageFlags ,
78 PermissionFlagsBits ,
89 TextChannel ,
910} from "discord.js" ;
@@ -19,11 +20,13 @@ import {
1920} from "../services/roleService.js" ;
2021import { logger } from "../libs/logger.js" ;
2122import { prisma } from "../libs/database.js" ;
23+ import { DiscordClient } from "../base/types/discord.js" ;
24+ import { SystemColors } from "../libs/colors.js" ;
2225
2326export default {
2427 name : Events . GuildMemberUpdate ,
2528 async execute (
26- _client : Client ,
29+ _client : DiscordClient ,
2730 oldMember : GuildMember ,
2831 newMember : GuildMember ,
2932 ) {
@@ -162,10 +165,27 @@ async function onBoostStart(member: GuildMember): Promise<void> {
162165 await safeSend ( logChannel , { embeds : [ logEmbed ] } ) ;
163166
164167 try {
165- await member . send (
166- `Thank you for boosting the server! You now have access to booster perks.` ,
167- ) ;
168- } catch { }
168+ const serverImage = guild . iconURL ( ) ;
169+
170+ const container = new ContainerBuilder ( ) . addSectionComponents ( comp => {
171+ comp . addTextDisplayComponents ( text =>
172+ text . setContent (
173+ `## Thanks for the boost! <a:booster:1527782487349268480>\n` +
174+ `Thank you for boosting the server **${ guild . name } **\n\n` +
175+ `Your support helps us unlock new server perks and continue making this community even better for everyone.\n\n` +
176+ `We truly appreciate you being part of our journey. Enjoy your booster rewards! ✨`
177+ )
178+ ) ;
179+ if ( serverImage ) {
180+ comp . setThumbnailAccessory ( accessory => accessory . setURL ( serverImage ) ) ;
181+ }
182+ return comp ;
183+ } ) . setAccentColor ( SystemColors . main ) ;
184+ await member . send ( {
185+ components : [ container ] ,
186+ flags : [ MessageFlags . IsComponentsV2 ]
187+ } ) ;
188+ } catch { }
169189}
170190
171191async function onBoostEnd ( member : GuildMember ) : Promise < void > {
0 commit comments