Untitled
unknown
javascript
a year ago
2.7 kB
2
Indexable
Never
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); }, };