Fix duplicate streamWatching, locale guild et console log/error
Build and Push Docker Image / build-and-push (push) Successful in 3m43s

This commit is contained in:
Zachary Guénot
2025-06-11 02:50:58 +02:00
parent 0cc81d6430
commit e714e94f85
31 changed files with 396 additions and 308 deletions
+56
View File
@@ -0,0 +1,56 @@
import { SlashCommandBuilder, MessageFlags } from "discord.js"
import type { ChatInputCommandInteraction } from "discord.js"
import dbGuild from "@/schemas/guild"
import { t } from "@/utils/i18n"
export const data = new SlashCommandBuilder()
.setName("locale")
.setDescription("Manage server language")
.setDescriptionLocalizations({ fr: "Gérer la langue du serveur" })
.addStringOption(option => option
.setName("language")
.setDescription("Select the server language")
.setNameLocalizations({ fr: "langue" })
.setDescriptionLocalizations({ fr: "Sélectionner la langue du serveur" })
.setRequired(true)
.addChoices(
{ name: "Français", value: "fr" },
{ name: "English", value: "en-US" }
)
)
export async function execute(interaction: ChatInputCommandInteraction) {
const guild = interaction.guild
if (!guild) return interaction.reply({ content: t(interaction.locale, "common.command_server_only"), flags: MessageFlags.Ephemeral })
const language = interaction.options.getString("language", true)
// Récupération du profil du serveur
const guildProfile = await dbGuild.findOne({ guildId: guild.id })
if (!guildProfile) return interaction.reply({ content: t(interaction.locale, "common.database_not_found"), flags: MessageFlags.Ephemeral })
// Sauvegarde de l'ancienne langue pour le message de confirmation
const oldLocale = guildProfile.guildLocale
// Mise à jour de la langue
guildProfile.guildLocale = language
guildProfile.markModified("guildLocale")
await guildProfile.save().catch(console.error)
// Utilisation de la nouvelle langue pour la réponse
const languageNames = {
'fr': 'Français',
'en-US': 'English'
}
const oldLanguageName = languageNames[oldLocale as keyof typeof languageNames] || oldLocale
const newLanguageName = languageNames[language as keyof typeof languageNames] || language
return interaction.reply({
content: t(language, "locale.updated", {
oldLanguage: oldLanguageName,
newLanguage: newLanguageName
}),
flags: MessageFlags.Ephemeral
})
}