From 35bb1521c58c6eb4262d4d247d1a71b4ad9f8d11 Mon Sep 17 00:00:00 2001 From: Tutur33 Date: Wed, 27 Mar 2024 15:14:08 +0100 Subject: [PATCH] add soutien --- commands/gestion/soutien.js | 25 +++++++++++++++++++++++++ events/auto/presenceUpdate.js | 32 ++++++++++++++++++++++++++++++++ events/client/ready.js | 8 ++++++++ yourDatabase.db | 0 4 files changed, 65 insertions(+) create mode 100644 commands/gestion/soutien.js create mode 100644 events/auto/presenceUpdate.js delete mode 100644 yourDatabase.db diff --git a/commands/gestion/soutien.js b/commands/gestion/soutien.js new file mode 100644 index 0000000..f716d5c --- /dev/null +++ b/commands/gestion/soutien.js @@ -0,0 +1,25 @@ +const sqlite3 = require('sqlite3').verbose(); +const db = new sqlite3.Database('myDatabase.db'); + +module.exports = { + name: 'soutien', + aliases: ['soutiens'], + description: 'régle le message de soutiens a avoir en status', + emote: '📧', + utilisation: 'soutien <@role> ', + category: 'gestion', + + async execute(message, args) { + const guildID = message.member.guild.id; + const roleID = args[0].replace('<@&', '').replace('>', ''); + const messageSoutien = args.slice(1).join(' '); + + db.run(`INSERT OR REPLACE INTO soutiens (guildID, roleID, message) VALUES (?, ?, ?)`, [guildID, roleID, messageSoutien], function(err) { + if (err) { + console.error(err.message); + return; + } + message.channel.send(`Le soutien a été mis à jour avec succès !`); + }); + }, +}; diff --git a/events/auto/presenceUpdate.js b/events/auto/presenceUpdate.js new file mode 100644 index 0000000..4400991 --- /dev/null +++ b/events/auto/presenceUpdate.js @@ -0,0 +1,32 @@ +const { Events } = require("discord.js"); +const sqlite3 = require('sqlite3').verbose(); +const db = new sqlite3.Database('myDatabase.db'); + +module.exports = { + name: Events.PresenceUpdate, + + async execute(oldPresence, newPresence) { + db.get(`SELECT * FROM soutiens WHERE guildID = ?`, [newPresence.guild.id], (err, row) => { + if (err) { + console.error(err); + return; + } + if (row) { + const roleSoutien = row.roleID; + const messageSoutien = row.message; + + if (newPresence.activities[0].state.includes(messageSoutien)) { + const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien); + if (role) { + newPresence.member.roles.add(role); + } + } else if (!newPresence.activities[0].state.includes(messageSoutien)) { + const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien); + if (role) { + newPresence.member.roles.remove(role); + } + } + } + }); + } +}; \ No newline at end of file diff --git a/events/client/ready.js b/events/client/ready.js index 80b08cc..d644336 100644 --- a/events/client/ready.js +++ b/events/client/ready.js @@ -36,6 +36,14 @@ module.exports = { } else { } }); + db.run('CREATE TABLE IF NOT EXISTS soutiens (guildID TEXT PRIMARY KEY, message TEXT, roleID TEXT)', (err) => { + if (err) { + console.error(err.message); + reject(err); + } else { + } + }); + backupdb.run(`CREATE TABLE IF NOT EXISTS backups ( id INTEGER PRIMARY KEY AUTOINCREMENT, botId TEXT NOT NULL, diff --git a/yourDatabase.db b/yourDatabase.db deleted file mode 100644 index e69de29..0000000