mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 23:36:35 +02:00
9bd39c69ca
sinon il y a pleins de truc comme les anti raid , des coorectif ect
133 lines
8.8 KiB
JavaScript
133 lines
8.8 KiB
JavaScript
const { ActionRowBuilder, StringSelectMenuBuilder, EmbedBuilder } = require('discord.js');
|
|
const sqlite3 = require('sqlite3').verbose();
|
|
const db = new sqlite3.Database('myDatabase.db');
|
|
module.exports = {
|
|
name: 'setlogs',
|
|
description: 'Affiche et configure les logs du serveur.',
|
|
category: 'gestion',
|
|
emote: '📝',
|
|
utilisation: 'logs',
|
|
async execute(message, args) {
|
|
let data = await new Promise((resolve, reject) => {
|
|
db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
reject(err);
|
|
}
|
|
resolve(row ? JSON.parse(row.value) : {});
|
|
});
|
|
});
|
|
|
|
const embed = new EmbedBuilder()
|
|
.setColor('#0099ff')
|
|
.setTitle('Configuration des logs')
|
|
.addFields(
|
|
{ name: '📝 Logs de messages', value: `**Actif**: \`${data[message.guild.id]?.messagelog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.messagelog ? `<#${data[message.guild.id].messagelog}>` : '\`Non configuré\`'}` },
|
|
{ name: '📚 Logs de rôles', value: `**Actif**: \`${data[message.guild.id]?.rolelog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.rolelog ? `<#${data[message.guild.id].rolelog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🎙️ Logs vocaux', value: `**Actif**: \`${data[message.guild.id]?.vocallog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.vocallog ? `<#${data[message.guild.id].vocallog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🛡️ Logs de raid', value: `**Actif**: \`${data[message.guild.id]?.raidlog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.raidlog ? `<#${data[message.guild.id].raidlog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🔧 Logs de modération', value: `**Actif**: \`${data[message.guild.id]?.modlog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.modlog ? `<#${data[message.guild.id].modlog}>` : '\`Non configuré\`'}` },
|
|
{ name: '📝 Logs de salons', value: `**Actif**: \`${data[message.guild.id]?.channelog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.channelog ? `<#${data[message.guild.id].channelog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🚀 Logs de boosts', value: `**Actif**: \`${data[message.guild.id]?.boostlog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.boostlog ? `<#${data[message.guild.id].boostlog}>` : '\`Non configuré\`'}` },
|
|
);
|
|
|
|
const selectMenu = new StringSelectMenuBuilder()
|
|
.setCustomId(`logsselect_${message.guild.id}`)
|
|
.setPlaceholder('Sélectionnez un type de log pour le configurer')
|
|
.addOptions([
|
|
{ label: '📝 Logs de messages', value: 'messagelog', description: 'Configurer le salon de logs de messages' },
|
|
{ label: '📚 Logs de rôles', value: 'rolelog', description: 'Configurer le salon de logs de rôles' },
|
|
{ label: '🎙️ Logs vocaux', value: 'vocallog', description: 'Configurer le salon de logs vocaux' },
|
|
{ label: '🛡️ Logs de raid', value: 'raidlog', description: 'Configurer le salon de logs de raid' },
|
|
{ label: '🔧 Logs de modération', value: 'modlog', description: 'Configurer le salon de logs de modération' },
|
|
{ label: '📝 Logs de salons', value: 'channelog', description: 'Configurer le salon de logs de salons' },
|
|
{ label: '🚀 Logs de boosts', value: 'boostlog', description: 'Configurer le salon de logs de boosts' },
|
|
]);
|
|
|
|
|
|
const row = new ActionRowBuilder()
|
|
.addComponents(selectMenu);
|
|
|
|
const logmessage = await message.channel.send({ embeds: [embed], components: [row] });
|
|
|
|
const filter = i => i.customId.startsWith('logsselect_') && i.user.id === message.author.id;
|
|
const filter2 = m => m.author.id === message.author.id;
|
|
const collector = logmessage.createMessageComponentCollector({ filter:filter, time: 150000 });
|
|
|
|
collector.on('collect', async i => {
|
|
await i.deferReply();
|
|
const guildId = i.customId.split('_')[1];
|
|
const logdata = i.values[0];
|
|
const question = await i.editReply("Veuillez envoyer un salon");
|
|
const channelCollector = message.channel.createMessageCollector({ filter: filter2, max: 1, time: 60000 });
|
|
|
|
|
|
channelCollector.on('collect', async m => {
|
|
|
|
let channelId;
|
|
let data = await new Promise((resolve, reject) => {
|
|
db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
reject(err);
|
|
}
|
|
resolve(row ? JSON.parse(row.value) : {});
|
|
});
|
|
});
|
|
|
|
const channelMention = m.mentions.channels.first();
|
|
if (channelMention) {
|
|
channelId = channelMention.id;
|
|
} else {
|
|
const idMatch = m.content.match(/(\d{17,19})/);
|
|
if (idMatch) {
|
|
channelId = idMatch[0];
|
|
} else {
|
|
return message.reply('Veuillez fournir une mention de salon valide ou un ID.');
|
|
}
|
|
}
|
|
|
|
const channel = message.guild.channels.cache.get(channelId);
|
|
if (!channel) {
|
|
return message.reply('Le salon fourni n\'existe pas.');
|
|
|
|
}
|
|
|
|
data[guildId] = data[guildId] || {};
|
|
data[guildId][logdata] = channelId;
|
|
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, JSON.stringify(data)], (err) => {
|
|
if (err) {
|
|
return message.reply('Une erreur s\'est produite lors de la mise à jour de la base de données.');
|
|
|
|
}
|
|
});
|
|
data = await new Promise((resolve, reject) => {
|
|
db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => {
|
|
if (err) {
|
|
console.error(err.message);
|
|
reject(err);
|
|
}
|
|
resolve(row ? JSON.parse(row.value) : {});
|
|
});
|
|
});
|
|
await m.delete();
|
|
await question.delete();
|
|
|
|
const updatedEmbed = new EmbedBuilder()
|
|
.setColor('#0099ff')
|
|
.setTitle('Configuration des logs')
|
|
.addFields(
|
|
{ name: '📝 Logs de messages', value: `**Actif**: \`${data[message.guild.id]?.messagelog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.messagelog ? `<#${data[message.guild.id].messagelog}>` : '\`Non configuré\`'}` },
|
|
{ name: '📚 Logs de rôles', value: `**Actif**: \`${data[message.guild.id]?.rolelog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.rolelog ? `<#${data[message.guild.id].rolelog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🎙️ Logs vocaux', value: `**Actif**: \`${data[message.guild.id]?.vocallog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.vocallog ? `<#${data[message.guild.id].vocallog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🛡️ Logs de raid', value: `**Actif**: \`${data[message.guild.id]?.raidlog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.raidlog ? `<#${data[message.guild.id].raidlog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🔧 Logs de modération', value: `**Actif**: \`${data[message.guild.id]?.modlog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.modlog ? `<#${data[message.guild.id].modlog}>` : '\`Non configuré\`'}` },
|
|
{ name: '📝 Logs de salons', value: `**Actif**: \`${data[message.guild.id]?.channelog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.channelog ? `<#${data[message.guild.id].channelog}>` : '\`Non configuré\`'}` },
|
|
{ name: '🚀 Logs de boosts', value: `**Actif**: \`${data[message.guild.id]?.boostlog ? '✅' : '❌'}\`\n **Salon: **${data[message.guild.id]?.boostlog ? `<#${data[message.guild.id].boostlog}>` : '\`Non configuré\`'}` },
|
|
);
|
|
|
|
logmessage.edit({ embeds: [updatedEmbed], components: [row] });
|
|
});
|
|
});
|
|
},
|
|
}; |