Some checks failed
Build and Push Docker Image / build-and-push (push) Failing after 6m16s
32 lines
1.3 KiB
TypeScript
32 lines
1.3 KiB
TypeScript
import { MessageFlags } from "discord.js"
|
|
import type { ButtonInteraction } from "discord.js"
|
|
import { generateDiscoEmbed } from "@/utils/player"
|
|
import type { Disco } from "@/types/schemas"
|
|
import dbGuild from "@/schemas/guild"
|
|
import { t } from "@/utils/i18n"
|
|
|
|
export const id = "player_disco_enable"
|
|
export async function execute(interaction: ButtonInteraction) {
|
|
const guildProfile = await dbGuild.findOne({ guildId: interaction.guild?.id })
|
|
if (!guildProfile) return interaction.reply({ content: t(interaction.locale, "common.database_not_found"), flags: MessageFlags.Ephemeral })
|
|
|
|
const dbData = guildProfile.get("guildPlayer.disco") as Disco
|
|
|
|
// Vérifier qu'un canal est configuré avant d'activer
|
|
if (!dbData.channelId) return interaction.reply({
|
|
content: t(interaction.locale, "player.disco.configure_channel_first"),
|
|
flags: MessageFlags.Ephemeral
|
|
})
|
|
|
|
dbData.enabled = true
|
|
|
|
guildProfile.set("guildPlayer.disco", dbData)
|
|
guildProfile.markModified("guildPlayer.disco")
|
|
await guildProfile.save().catch(console.error)
|
|
|
|
// Utiliser la fonction utilitaire pour générer l'embed et les composants mis à jour
|
|
const { embed, components } = generateDiscoEmbed(dbData, interaction.client, interaction.guild?.id ?? "", interaction.locale)
|
|
|
|
return interaction.update({ embeds: [embed], components: components })
|
|
}
|