Untitled

mail@pastecode.io avatar
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);
    },
};