const {
SlashCommandBuilder,
Client,
CommandInteraction,
} = require("discord.js");
const sqlite3 = require("sqlite3").verbose();
const { checkPerms } = require("../../functions");
const { error } = require("../../logger");
// Création ou ouverture de la base de données
const db = new sqlite3.Database("antieveryone.db");
// Création de la table si elle n'existe pas
db.run(`
CREATE TABLE IF NOT EXISTS antieveryone (
guild_id TEXT PRIMARY KEY,
enabled BOOLEAN
)
`);
module.exports = {
name: "anti-everyone",
description: "🚫 Prevent members from mentioning everyone or here",
/**
*
* @param {Client} bot
* @param {CommandInteraction} interaction
*/
async execute(bot, interaction) {
await interaction.deferReply();
await checkPerms(
"ManageRoles", // Vous pouvez ajuster les permissions nécessaires ici
interaction,
interaction.member,
interaction.deferred
);
try {
// Récupération de l'état actuel de l'anti-everyone dans la base de données
db.get("SELECT enabled FROM antieveryone WHERE guild_id = ?", interaction.guildId, (err, row) => {
if (err) {
error(err);
return interaction.reply({
content: "❌ An error has occurred, please try again later",
});
}
// Si aucune entrée pour ce serveur n'est trouvée, l'état par défaut est désactivé
const isEnabled = row ? row.enabled : false;
// Inverse l'état actuel
const newEnabled = !isEnabled;
// Mise à jour de l'entrée dans la base de données
db.run("INSERT OR REPLACE INTO antieveryone (guild_id, enabled) VALUES (?, ?)", [interaction.guildId, newEnabled], (err) => {
if (err) {
error(err);
return interaction.reply({
content: "❌ An error has occurred, please try again later",
});
}
const status = newEnabled ? "enabled" : "disabled";
interaction.editReply(`✅ Anti-everyone has been ${status}`);
});
});
} catch (err) {
error(err);
await interaction.reply({
content: "❌ An error has occurred, please try again later",
});
}
},
get data() {
return new SlashCommandBuilder()
.setName(this.name)
.setDescription(this.description);
},
};