const { SlashCommandBuilder } = require('@discordjs/builders'); const { config } = require('../../config'); const { ServerSettings } = require('../../models'); module.exports = { data: new SlashCommandBuilder() .setName('setuplogowner') .setDescription('Configure le canal de logs pour le serveur') .addStringOption(option => option.setName('guild') .setDescription('ID du serveur') .setRequired(true) ) .addStringOption(option => option.setName('channel') .setDescription('ID du canal de logs') .setRequired(true) ), async execute(interaction, client) { // Vérifie si l'utilisateur est autorisé à exécuter la commande const isOwner = config.app.owners.includes(interaction.user.id); const isDev = config.app.dev.includes(interaction.user.id); if (!isOwner && !isDev) { return interaction.reply({ content: 'Vous n\'avez pas la permission d\'exécuter cette commande.' }); } const channelId = interaction.options.getString('channel'); const guildId = interaction.options.getString('guild'); try { let serverSettings = await ServerSettings.findOne({ guildId: guildId }); // Trouve les paramètres du serveur // Vérifie si le canal de logs est déjà défini pour ce serveur if (serverSettings && serverSettings.channelId === channelId) { return interaction.reply({ content: 'Le canal est déjà défini sur celui-ci.' }); } // Si aucun paramètre n'existe encore pour ce serveur, créez-en un avec les données fournies if (!serverSettings) { serverSettings = new ServerSettings({ guildId: guildId, channelId: channelId }); } else { // Si les paramètres existent déjà, mettez à jour le canal de logs serverSettings.guildId = guildId; serverSettings.channelId = channelId; } await serverSettings.save(); // Enregistrez les paramètres dans la base de données return interaction.reply({ content: `Canal de logs configuré avec succès sur <#${channelId}> pour le serveur ${guildId}.` }); } catch (error) { console.error(error); return interaction.reply({ content: 'Une erreur est survenue lors de la configuration du canal de logs.' }); } } }