Files
VALOU3336 9bd39c69ca grand commit que tutur attend ( marche pas le raidmode en dev)
sinon il y a pleins de truc comme les anti raid , des coorectif ect
2024-04-22 18:30:33 +02:00

352 lines
24 KiB
JavaScript

const sqlite3 = require('sqlite3').verbose();
const db = new sqlite3.Database('myDatabase.db');
const { EmbedBuilder, ButtonBuilder, ButtonStyle, ActionRowBuilder } = require('discord.js');
module.exports = {
name: 'secur',
aliases: ['antriraid'],
description: 'Affiche les configurations des antiraid.',
utilisation: 'secur',
category: 'antiraid',
async execute(message, args, client) {
const botId = client.user.id;
const guildId = message.guild.id;
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const guildData = data[guildId] || {};
const antiupdateConfig = guildData.antiupdate || {};
const antibotConfig = guildData.antibot || {};
const antiroleConfig = guildData.antirole || {};
const antichannelConfig = guildData.antichannel || {};
const antiwebhookConfig = guildData.antiwebhook || {};
const antibanConfig = guildData.antiban || {};
const antithreadConfig = guildData.antiThread || {};
const desac = new ButtonBuilder()
.setLabel('Désactiver tous les modules')
.setCustomId(`off_${guildId}`)
.setStyle(ButtonStyle.Danger);
const on = new ButtonBuilder()
.setLabel('Activer tous les modules')
.setCustomId(`on_${guildId}`)
.setStyle(ButtonStyle.Success);
const button1 = new ButtonBuilder()
.setLabel("◀")
.setCustomId('part1')
.setStyle(ButtonStyle.Secondary);
const button2 = new ButtonBuilder()
.setLabel("▶")
.setCustomId('part2')
.setStyle(ButtonStyle.Secondary);
const row = new ActionRowBuilder()
.addComponents(button1, button2,on, desac);
const embed = new EmbedBuilder()
.setTitle('Configurations des antiraid - Partie 1')
.setColor('#0099ff')
.addFields(
{ name: '**1・Anti-Update**', value: `**Actif**: \`${antiupdateConfig.type === 'off' || !antiupdateConfig.type ? '❌' : '✅'}\`** : **\`${antiupdateConfig.type ? antiupdateConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiupdateConfig.action || "Non Définie"}\``},
{ name: '**2・Anti-bot**', value: `**Actif**: \`${antibotConfig.type === 'off' || !antibotConfig.type ? '❌' : '✅'}\`** : **\`${antibotConfig.type ? antibotConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibotConfig.action || "Non Définie"}\``},
{ name: '**3・Anti-Role**', value: `**Actif**: \`${antiroleConfig.type === 'off' || !antiroleConfig.type ? '❌' : '✅'}\`** : **\`${antiroleConfig.type ? antiroleConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiroleConfig.action || "Non Définie"}\``},
{ name: '**4・Anti-Channel**', value: `**Actif**: \`${antichannelConfig.type === 'off' || !antichannelConfig.type ? '❌' : '✅'}\`** : **\`${antichannelConfig.type ? antichannelConfig.type: "indéterminé"}\`\n **Sanction: **\`${antichannelConfig.action || "Non Définie"}\``},
{ name: '**5・Anti-Webhook**', value: `**Actif**: \`${antiwebhookConfig.type === 'off' || !antiwebhookConfig.type ? '❌' : '✅'}\`** : **\`${antiwebhookConfig.type ? antiwebhookConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**6・Anti-Thread**', value: `**Actif**: \`${antithreadConfig.type === 'off' || !antithreadConfig.type ? '❌' : '✅'}\`** : **\`${antithreadConfig.type ? antithreadConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**8・Anti-Ban**', value: `**Actif**: \`${antibanConfig.type === 'off' || !antibanConfig.type ? '❌' : '✅'}\`** : **\`${antibanConfig.type ? antibanConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibanConfig.action || "Non Définie"}\`\n**Nombre: **\`${antibanConfig.number || 'N/A'}\``},
);
const sentMessage = await message.channel.send({ embeds: [embed], components: [row] });
const filter = i => i.user.id === message.author.id;
const collector = sentMessage.createMessageComponentCollector({ filter, time: 60000 });
collector.on('collect', async i => {
if (i.customId.startsWith('on_')) {
const activationmessage = await i.reply({ content: "Les modules sont en train d'être activés", ephemeral: true });
const guildId = i.customId.split('_')[1];
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
if (!data[guildId]) {
data[guildId] = {};
}
let type = 'whitelist'
let status = 'on'
data[guildId].antibot = {
type: type,
action: data[guildId].antibot?.action || 'kick'
};
data[guildId].antichannel = {
type: type,
action: data[guildId].antichannel?.action || 'kick'
};
data[guildId].antiadmin = {
type: type,
action: data[guildId].antiadmin?.action || 'kick'
};
data[guildId].antieveryone = {
status: status
};
data[guildId].antilink = {
status: status,
type: 'all'
};
data[guildId].antileak = {
status: status,
};
data[guildId].antiThread = {
type: type,
action: data[guildId].antiThread?.action || 'kick'
};
data[guildId].antimention = {
type: type,
nombre: data[guildId].antimention?.nombre || 0
};
data[guildId].antirole = {
type: type,
action: data[guildId].antirole?.action || 'kick'
};
data[guildId].antiupdate = {
type: type,
action: data[guildId].antiupdate?.action || 'kick'
};
data[guildId].antiwebhook = {
type: type,
action: data[guildId].antiwebhook?.action || 'kick'
};
data[guildId].antiban = {
type: type,
action: data[guildId].antiban?.action || 'kick',
number: data[guildId].antiban?.number || "10"
};
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], async function(err) {
if (err) {
console.error(err.message);
return i.reply({ content: 'Une erreur est survenue lors de la mise à jour de la configuration.', ephemeral: true });
} else {
activationmessage.edit({ content: "Les modules ont été activés avec succès." });
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const guildData = data[guildId] || {};
const antiupdateConfig = guildData.antiupdate || {};
const antibotConfig = guildData.antibot || {};
const antiroleConfig = guildData.antirole || {};
const antichannelConfig = guildData.antichannel || {};
const antiwebhookConfig = guildData.antiwebhook || {};
const antibanConfig = guildData.antiban || {};
const antithreadConfig = guildData.antiThread || {};
const embed = new EmbedBuilder()
.setTitle('Configurations des antiraid - Partie 1')
.setColor('#0099ff')
.addFields(
{ name: '**1・Anti-Update**', value: `**Actif**: \`${antiupdateConfig.type === 'off' || !antiupdateConfig.type ? '❌' : '✅'}\`** : **\`${antiupdateConfig.type ? antiupdateConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiupdateConfig.action || "Non Définie"}\``},
{ name: '**2・Anti-bot**', value: `**Actif**: \`${antibotConfig.type === 'off' || !antibotConfig.type ? '❌' : '✅'}\`** : **\`${antibotConfig.type ? antibotConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibotConfig.action || "Non Définie"}\``},
{ name: '**3・Anti-Role**', value: `**Actif**: \`${antiroleConfig.type === 'off' || !antiroleConfig.type ? '❌' : '✅'}\`** : **\`${antiroleConfig.type ? antiroleConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiroleConfig.action || "Non Définie"}\``},
{ name: '**4・Anti-Channel**', value: `**Actif**: \`${antichannelConfig.type === 'off' || !antichannelConfig.type ? '❌' : '✅'}\`** : **\`${antichannelConfig.type ? antichannelConfig.type: "indéterminé"}\`\n **Sanction: **\`${antichannelConfig.action || "Non Définie"}\``},
{ name: '**5・Anti-Webhook**', value: `**Actif**: \`${antiwebhookConfig.type === 'off' || !antiwebhookConfig.type ? '❌' : '✅'}\`** : **\`${antiwebhookConfig.type ? antiwebhookConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**6・Anti-Thread**', value: `**Actif**: \`${antithreadConfig.type === 'off' || !antithreadConfig.type ? '❌' : '✅'}\`** : **\`${antithreadConfig.type ? antithreadConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**8・Anti-Ban**', value: `**Actif**: \`${antibanConfig.type === 'off' || !antibanConfig.type ? '❌' : '✅'}\`** : **\`${antibanConfig.type ? antibanConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibanConfig.action || "Non Définie"}\`\n**Nombre: **\`${antibanConfig.number || 'N/A'}\``},
);
sentMessage.edit({ embeds: [embed], components: [row] });
}
});
}else if (i.customId.startsWith('off_')) {
const desacmessage = await i.reply({ content: "Les modules sont en train d'être désactivés", ephemeral: true });
const guildId = i.customId.split('_')[1];
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
if (!data[guildId]) {
data[guildId] = {};
}
let type = 'off'
let status = 'off'
data[guildId].antibot = {
type: type,
action: data[guildId].antibot?.action || 'kick'
};
data[guildId].antichannel = {
type: type,
action: data[guildId].antichannel?.action || 'kick'
};
data[guildId].antiadmin = {
type: type,
action: data[guildId].antiadmin?.action || 'kick'
};
data[guildId].antieveryone = {
status: status
};
data[guildId].antilink = {
status: status,
type: 'all'
};
data[guildId].antileak = {
status: status,
};
data[guildId].antiThread = {
type: type,
action: data[guildId].antiThread?.action || 'kick'
};
data[guildId].antimention = {
type: type,
nombre: data[guildId].antimention?.nombre || 0
};
data[guildId].antirole = {
type: type,
action: data[guildId].antirole?.action || 'kick'
};
data[guildId].antiupdate = {
type: type,
action: data[guildId].antiupdate?.action || 'kick'
};
data[guildId].antiwebhook = {
type: type,
action: data[guildId].antiwebhook?.action || 'kick'
};
data[guildId].antiban = {
type: type,
action: data[guildId].antiban?.action || 'kick',
number: data[guildId].antiban?.number || "10"
};
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], async function(err) {
if (err) {
console.error(err.message);
return desacmessage.edit({ content: 'Une erreur est survenue lors de la mise à jour de la configuration.', ephemeral: true });
} else {
desacmessage.edit({ content: "Les modules ont été désactivés avec succès.", ephemeral: true });
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const guildData = data[guildId] || {};
const antiupdateConfig = guildData.antiupdate || {};
const antibotConfig = guildData.antibot || {};
const antiroleConfig = guildData.antirole || {};
const antichannelConfig = guildData.antichannel || {};
const antiwebhookConfig = guildData.antiwebhook || {};
const antibanConfig = guildData.antiban || {};
const antithreadConfig = guildData.antiThread || {};
const embed = new EmbedBuilder()
.setTitle('Configurations des antiraid - Partie 1')
.setColor('#0099ff')
.addFields(
{ name: '**1・Anti-Update**', value: `**Actif**: \`${antiupdateConfig.type === 'off' || !antiupdateConfig.type ? '❌' : '✅'}\`** : **\`${antiupdateConfig.type ? antiupdateConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiupdateConfig.action || "Non Définie"}\``},
{ name: '**2・Anti-bot**', value: `**Actif**: \`${antibotConfig.type === 'off' || !antibotConfig.type ? '❌' : '✅'}\`** : **\`${antibotConfig.type ? antibotConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibotConfig.action || "Non Définie"}\``},
{ name: '**3・Anti-Role**', value: `**Actif**: \`${antiroleConfig.type === 'off' || !antiroleConfig.type ? '❌' : '✅'}\`** : **\`${antiroleConfig.type ? antiroleConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiroleConfig.action || "Non Définie"}\``},
{ name: '**4・Anti-Channel**', value: `**Actif**: \`${antichannelConfig.type === 'off' || !antichannelConfig.type ? '❌' : '✅'}\`** : **\`${antichannelConfig.type ? antichannelConfig.type: "indéterminé"}\`\n **Sanction: **\`${antichannelConfig.action || "Non Définie"}\``},
{ name: '**5・Anti-Webhook**', value: `**Actif**: \`${antiwebhookConfig.type === 'off' || !antiwebhookConfig.type ? '❌' : '✅'}\`** : **\`${antiwebhookConfig.type ? antiwebhookConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**6・Anti-Thread**', value: `**Actif**: \`${antithreadConfig.type === 'off' || !antithreadConfig.type ? '❌' : '✅'}\`** : **\`${antithreadConfig.type ? antithreadConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**8・Anti-Ban**', value: `**Actif**: \`${antibanConfig.type === 'off' || !antibanConfig.type ? '❌' : '✅'}\`** : **\`${antibanConfig.type ? antibanConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibanConfig.action || "Non Définie"}\`\n**Nombre: **\`${antibanConfig.number || 'N/A'}\``},
);
sentMessage.edit({ embeds: [embed], components: [row] });
}
});
}else if (i.customId === 'part1') {
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const guildData = data[guildId] || {};
const antiupdateConfig = guildData.antiupdate || {};
const antibotConfig = guildData.antibot || {};
const antiroleConfig = guildData.antirole || {};
const antichannelConfig = guildData.antichannel || {};
const antiwebhookConfig = guildData.antiwebhook || {};
const antibanConfig = guildData.antiban || {};
const antithreadConfig = guildData.antiThread || {};
const embed1 = new EmbedBuilder()
.setTitle('Configurations des antiraid - Partie 1')
.setColor('#0099ff')
.addFields(
{ name: '**1・Anti-Update**', value: `**Actif**: \`${antiupdateConfig.type === 'off' || !antiupdateConfig.type ? '❌' : '✅'}\`** : **\`${antiupdateConfig.type ? antiupdateConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiupdateConfig.action || "Non Définie"}\``},
{ name: '**2・Anti-bot**', value: `**Actif**: \`${antibotConfig.type === 'off' || !antibotConfig.type ? '❌' : '✅'}\`** : **\`${antibotConfig.type ? antibotConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibotConfig.action || "Non Définie"}\``},
{ name: '**3・Anti-Role**', value: `**Actif**: \`${antiroleConfig.type === 'off' || !antiroleConfig.type ? '❌' : '✅'}\`** : **\`${antiroleConfig.type ? antiroleConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiroleConfig.action || "Non Définie"}\``},
{ name: '**4・Anti-Channel**', value: `**Actif**: \`${antichannelConfig.type === 'off' || !antichannelConfig.type ? '❌' : '✅'}\`** : **\`${antichannelConfig.type ? antichannelConfig.type: "indéterminé"}\`\n **Sanction: **\`${antichannelConfig.action || "Non Définie"}\``},
{ name: '**5・Anti-Webhook**', value: `**Actif**: \`${antiwebhookConfig.type === 'off' || !antiwebhookConfig.type ? '❌' : '✅'}\`** : **\`${antiwebhookConfig.type ? antiwebhookConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**6・Anti-Thread**', value: `**Actif**: \`${antithreadConfig.type === 'off' || !antithreadConfig.type ? '❌' : '✅'}\`** : **\`${antithreadConfig.type ? antithreadConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiwebhookConfig.action || "Non Définie"}\``},
{ name: '**8・Anti-Ban**', value: `**Actif**: \`${antibanConfig.type === 'off' || !antibanConfig.type ? '❌' : '✅'}\`** : **\`${antibanConfig.type ? antibanConfig.type: "indéterminé"}\`\n **Sanction: **\`${antibanConfig.action || "Non Définie"}\`\n**Nombre: **\`${antibanConfig.number || 'N/A'}\``},
);
await i.update({ embeds: [embed1], components: [row] });
} else if (i.customId === 'part2') {
let data = await new Promise((resolve, reject) => {
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
if (err) {
console.error(err.message);
reject(err);
}
resolve(row ? JSON.parse(row.value) : {});
});
});
const guildData = data[guildId] || {};
const antilinkConfig = guildData.antilink || {};
const antieveryoneConfig = guildData.antieveryone || {};
const antileakConfig = guildData.antileak || {};
const antijoinConfig = guildData.antijoin || {};
const antiadminConfig = guildData.antiadmin || {};
const antimentionConfig = guildData.antimention || {};
const RaidpingConfig = guildData.raidping || 'Non Définie';
const embed2 = new EmbedBuilder()
.setTitle('Configurations des antiraid - Partie 2')
.setColor('#0099ff')
.addFields(
{ name: '**7・Anti-Admin**', value: `**Actif**: \`${antiadminConfig.type === 'off' || !antiadminConfig.type ? '❌' : '✅'}\`** : **\`${antiadminConfig.type ? antiadminConfig.type: "indéterminé"}\`\n **Sanction: **\`${antiadminConfig.action || "Non Définie"}\``},
{ name: '**9・Anti-MassMention**', value: `**Actif**: \`${antimentionConfig.type === 'off' || !antimentionConfig.type ? '❌' : '✅'}\`** : **\`${antimentionConfig.type ? antimentionConfig.type: "indéterminé"}\`\n**Nombre: **\`${antimentionConfig.nombre || 'N/A'}\``},
{ name: '**10・Anti-Link**', value: `**Actif**: \`${antilinkConfig.status === 'off' || !antilinkConfig.status ? '❌' : '✅'}\`** : **\`${antilinkConfig.status ? antilinkConfig.status: "indéterminé"}\`\n **Type: **\`${antilinkConfig.type || "Non Définie"}\``},
{ name: '**11・Anti-Everyone**', value: `**Actif**: \`${antieveryoneConfig.status === 'off' || !antieveryoneConfig.status ? '❌' : '✅'}\`** : **\`${antieveryoneConfig.status ? antieveryoneConfig.status: "indéterminé"}\``},
{ name: '**12・Anti-Leak**', value: `**Actif**: \`${antileakConfig.status === 'off' || !antileakConfig.status ? '❌' : '✅'}\`** : **\`${antileakConfig.status ? antileakConfig.status: "indéterminé"}\``},
{ name: '**14・Anti-Join**', value: `**Actif**: \`${antijoinConfig.status === 'off' || !antijoinConfig.status ? '❌' : '✅'}\`** : **\`${antijoinConfig.status ? antijoinConfig.status: "indéterminé"}\``},
{ name: '**14・Creation-Limit**', value: `**Actif**: \`${guildData.creationLimit === 'off' || !guildData.creationLimit ? '❌' : '✅'}\`\n** temps **\`${guildData.creationLimit ? guildData.creationLimit : "indéterminé"}\``},
{ name: '**15・RaidPing**', value: `\`${RaidpingConfig || 'Non definie'}\``}
);
await i.update({ embeds: [embed2], components: [row] });
}
});
collector.on('end', collected => {
const disabledRow = new ActionRowBuilder()
.addComponents(button1.setDisabled(true),button2.setDisabled(true),on.setDisabled(true), desac.setDisabled(true) );
sentMessage.edit({ components: [disabledRow] });
});
},
};