mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-03 15:07:26 +02:00
add log event , message delete , message update , vocal and role
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
const { Events, EmbedBuilder } = require("discord.js");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
module.exports = {
|
||||
name: Events.VoiceStateUpdate,
|
||||
once: false,
|
||||
async execute(oldState, newState, client) {
|
||||
// Ignorer les changements de salon vocal pour les bots
|
||||
if (oldState.member.user.bot || newState.member.user.bot) return;
|
||||
|
||||
// Récupérer les données de configuration des logs pour le serveur
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
|
||||
// Vérifier si le serveur a un canal de logs configuré pour les salons vocaux
|
||||
if (!data[oldState.guild.id] || !data[oldState.guild.id].vocallog) return;
|
||||
|
||||
const logChannelId = data[oldState.guild.id].vocallog;
|
||||
const logChannel = client.channels.cache.get(logChannelId);
|
||||
|
||||
if (!logChannel) return;
|
||||
|
||||
const joinedVoiceChannel = newState.channel;
|
||||
const leftVoiceChannel = oldState.channel;
|
||||
|
||||
if (joinedVoiceChannel) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setDescription(`${newState.member.user.tag} a rejoint le salon vocal <#${joinedVoiceChannel.id}>`)
|
||||
.setTimestamp();
|
||||
|
||||
try {
|
||||
await logChannel.send({ embeds: [embed] });
|
||||
} catch (error) {
|
||||
}
|
||||
} else if (leftVoiceChannel) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setDescription(`${oldState.member.user.tag} a quitté le salon vocal <#${leftVoiceChannel.id}>`)
|
||||
.setTimestamp();
|
||||
|
||||
try {
|
||||
await logChannel.send({ embeds: [embed] });
|
||||
} catch (error) {
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -1,11 +1,33 @@
|
||||
const {Events} = require("discord.js")
|
||||
|
||||
const {Events , EmbedBuilder} = require("discord.js")
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
module.exports = {
|
||||
name: Events.MessageDelete,
|
||||
once: false,
|
||||
async execute(message, client) {
|
||||
if (message.author.bot) return;
|
||||
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
if (!data[message.guild.id]) {
|
||||
data[message.guild.id] = {};
|
||||
}
|
||||
const deletedEmbed = new EmbedBuilder()
|
||||
.setColor('#ff0000')
|
||||
.setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL({ dynamic: true })})
|
||||
.setDescription( `<#${message.channel.id}> -` + message.content)
|
||||
.setTimestamp(message.createdAt);
|
||||
const logChannelId = data[message.guild.id].messagelog;
|
||||
const logChannel = client.channels.cache.get(logChannelId);
|
||||
if (logChannel) {
|
||||
try {await logChannel.send({ embeds: [deletedEmbed] });} catch (error) {}
|
||||
}
|
||||
client.snipes.set(message.channel.id, {
|
||||
content: message.content,
|
||||
author: message.author.id,
|
||||
|
||||
@@ -0,0 +1,40 @@
|
||||
const { Events, EmbedBuilder } = require("discord.js");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
module.exports = {
|
||||
name: Events.MessageUpdate,
|
||||
once: false,
|
||||
async execute(oldMessage, newMessage, client) {
|
||||
if (oldMessage.author.bot || !oldMessage.content) return;
|
||||
|
||||
const editedEmbed = new EmbedBuilder()
|
||||
.setColor('#FFA500')
|
||||
.setAuthor({ name: oldMessage.author.tag, iconURL: oldMessage.author.displayAvatarURL({ dynamic: true })})
|
||||
.setDescription(`Message édité dans <#${oldMessage.channel.id}> :\nAvant : ${oldMessage.content}\nAprès : ${newMessage.content}`)
|
||||
.setTimestamp(oldMessage.editedAt);
|
||||
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
if (!data[oldMessage.guild.id] || !data[oldMessage.guild.id].messagelog) return;
|
||||
|
||||
const logChannelId = data[oldMessage.guild.id].messagelog;
|
||||
const logChannel = client.channels.cache.get(logChannelId);
|
||||
|
||||
if (logChannel) {
|
||||
try {
|
||||
await logChannel.send({ embeds: [editedEmbed] });
|
||||
} catch (error) {
|
||||
console.error(`Erreur lors de l'envoi de l'embed dans le logChannel : ${error}`);
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,61 @@
|
||||
const { Events, EmbedBuilder } = require("discord.js");
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
module.exports = {
|
||||
name: Events.GuildMemberUpdate,
|
||||
once: false,
|
||||
async execute(oldMember, newMember, client) {
|
||||
if (oldMember.user.bot || newMember.user.bot) return;
|
||||
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
|
||||
if (!data[newMember.guild.id] || !data[newMember.guild.id].rolelog) return;
|
||||
|
||||
const logChannelId = data[newMember.guild.id].rolelog;
|
||||
const logChannel = client.channels.cache.get(logChannelId);
|
||||
|
||||
if (!logChannel) return;
|
||||
|
||||
const oldRoles = oldMember.roles.cache;
|
||||
const newRoles = newMember.roles.cache;
|
||||
|
||||
const addedRoles = newRoles.filter(role => !oldRoles.has(role.id));
|
||||
const removedRoles = oldRoles.filter(role => !newRoles.has(role.id));
|
||||
|
||||
|
||||
// Si des rôles ont été ajoutés
|
||||
if (addedRoles.size > 0) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor('#00FF00')
|
||||
.setAuthor({ name: newMember.user.username, iconURL: newMember.user.displayAvatarURL({ dynamic: true })})
|
||||
.setDescription(`${newMember.user.username} a gagné les rôles suivants : ${addedRoles.map(role => `<@&${role.id}>`).join(', ')}`)
|
||||
.setTimestamp();
|
||||
|
||||
try {
|
||||
await logChannel.send({ embeds: [embed] });
|
||||
} catch (error) {
|
||||
}
|
||||
}
|
||||
|
||||
if (removedRoles.size > 0) {
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor('#FF0000')
|
||||
.setAuthor({ name: newMember.user.username, iconURL: newMember.user.displayAvatarURL({ dynamic: true })})
|
||||
.setDescription(`${newMember.user.tag} a perdu les rôles suivants : ${removedRoles.map(role => `<@&${role.id}>`).join(', ')}`)
|
||||
.setTimestamp();
|
||||
|
||||
try {
|
||||
await logChannel.send({ embeds: [embed] });
|
||||
} catch (error) {
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user