mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-04 15:56:42 +02:00
52 lines
2.1 KiB
JavaScript
52 lines
2.1 KiB
JavaScript
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 status = row.status;
|
|
if (status === 'on'){
|
|
const parameter = row.parametre;
|
|
const roleSoutien = row.roleID;
|
|
const messageSoutien = row.message;
|
|
let messagesSoutien = Array.isArray(messageSoutien) ? messageSoutien : JSON.parse(messageSoutien);
|
|
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
|
const hasRole = newPresence.member.roles.cache.has(roleSoutien);
|
|
|
|
if (parameter === 'inclus') {
|
|
const isStatusMatched = messagesSoutien.some(message => newPresence.activities[0].state.includes(message));
|
|
if (isStatusMatched && !hasRole) {
|
|
newPresence.member.roles.add(role);
|
|
} else if (!isStatusMatched && hasRole) {
|
|
newPresence.member.roles.remove(role);
|
|
}
|
|
} else if (parameter === 'fix') {
|
|
const hasRole = newPresence.member.roles.cache.has(roleSoutien);
|
|
const isStatusExactMatch = messagesSoutien.includes(newPresence.activities[0].state);
|
|
|
|
if (isStatusExactMatch && !hasRole) {
|
|
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
|
//ajouter le rôle
|
|
if (role) {
|
|
newPresence.member.roles.add(role);
|
|
}
|
|
} else if (!isStatusExactMatch && hasRole) {
|
|
// Supprimer le rôle
|
|
const role = newPresence.guild.roles.cache.find(role => role.id === roleSoutien);
|
|
if (role) {
|
|
newPresence.member.roles.remove(role);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}; |