mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-09 01:01:47 +02:00
grand commit que tutur attend ( marche pas le raidmode en dev)
sinon il y a pleins de truc comme les anti raid , des coorectif ect
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
|
||||
const { PermissionsBitField } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: 'addrole',
|
||||
description: 'Ajoute un rôle à un utilisateur.',
|
||||
usage: '+addrole @user/id <role>',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const botMember = await message.guild.members.fetch(client.user.id);
|
||||
const userMember = await message.guild.members.fetch(message.author.id);
|
||||
if (!botMember.permissions.has(PermissionsBitField.Flags.ManageRoles)) {
|
||||
return message.reply("Je n'est pas la permission de pouvoir donnée des role");
|
||||
}
|
||||
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
|
||||
if (!user) {
|
||||
return message.reply('Utilisateur non trouvé.');
|
||||
}
|
||||
|
||||
let role;
|
||||
if (message.mentions.roles.first()) {
|
||||
role = message.mentions.roles.first();
|
||||
} else if (args[1].match(/^<@&(\d+)>$/)) {
|
||||
const roleId = args[1].match(/^<@&(\d+)>$/)[1];
|
||||
role = message.guild.roles.cache.get(roleId);
|
||||
} else {
|
||||
role = message.guild.roles.cache.find(r => r.name.toLowerCase() === args[1].toLowerCase());
|
||||
}
|
||||
|
||||
if (!role) {
|
||||
return message.reply('Rôle non trouvé.');
|
||||
}
|
||||
|
||||
if (role.position >= (botMember.roles.highest ? botMember.roles.highest.position : 0)) {
|
||||
return message.reply('Je ne peux pas gérer ce rôle car il est plus haut ou égal à mon rôle le plus élevé.');
|
||||
}
|
||||
|
||||
const permlevel = await getPermissionLevel(user, client);
|
||||
if (role.permissions.has(PermissionsBitField.Flags.Administrator)&& permlevel < 10) {
|
||||
return message.reply('Le rôle que vous demandez est dangereux.');
|
||||
}
|
||||
const roleposition = role.position;
|
||||
const userroleposition = userMember.roles.highest.position;
|
||||
if (roleposition >= userroleposition && permlevel < 10) return message.reply('Vous ne pouvez pas supprimer un rôle plus élevé ou égal au vôtre.');
|
||||
|
||||
try {
|
||||
await user.roles.add(role, `addrole : ${message.author.username}`);
|
||||
message.reply(`Le rôle ${role} a été ajouté à ${user.user.tag}.`);
|
||||
} catch (error) {
|
||||
return message.reply('Une erreur est survenue lors de l\'ajout du rôle.');
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -15,6 +15,7 @@ module.exports = {
|
||||
const add = args[0] === "add";
|
||||
const del = args[0] === "del";
|
||||
const list = args[0] === "list";
|
||||
const preset = args[0] === "preset";
|
||||
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [botId], (err, row) => {
|
||||
@@ -66,7 +67,28 @@ module.exports = {
|
||||
.setDescription(data[guildId].badwords.join('\n') || 'Aucun mot interdit n\'est défini.')
|
||||
.setFooter({text: `Mots interdits | ${client.user.username}`})
|
||||
.setColor('#0099ff');
|
||||
try {
|
||||
message.channel.send({ embeds: [embed] });
|
||||
}catch (e) {
|
||||
message.reply("Je n'ai pas pu envoyer l'embed, vérifier mes permissions.")
|
||||
}
|
||||
} else if (preset) {
|
||||
const presetBadwords = [
|
||||
"connard", "salope", "encule", "pute", "pd", "Nique", "batard", "gueule", "enfoire", "creve", "degage", "Trou du cul","raclure", "connasse", "petasse", "pute", "suceur", "ordure", "con", "foutre", "merdeux", "pedale", "chibre"
|
||||
];
|
||||
presetBadwords.forEach(word => {
|
||||
if (!data[guildId].badwords.includes(word)) {
|
||||
data[guildId].badwords.push(word);
|
||||
}
|
||||
});
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [botId, JSON.stringify(data)], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
message.reply('Une erreur est survenue lors de la mise à jour de la base de données.');
|
||||
return;
|
||||
}
|
||||
});
|
||||
message.reply('La liste prédéfinie des mots interdits a été mise à jour.')
|
||||
} else {
|
||||
message.reply('Commande invalide. Utilisez `badword add [mot]`, `badword del [mot]` ou `badword list`.');
|
||||
}
|
||||
|
||||
+31
-23
@@ -1,18 +1,21 @@
|
||||
const { EmbedBuilder, User } = require("discord.js")
|
||||
const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
|
||||
const { getPermissionLevel2 } = require('../../fonction/getPermissionLevel');
|
||||
|
||||
module.exports = {
|
||||
name: 'ban',
|
||||
description: 'Ban a member',
|
||||
emote: '🚫',
|
||||
utilisation: 'ban <@member> [reason]',
|
||||
category: 'moderation',
|
||||
name: 'ban',
|
||||
description: 'Bannir un membre',
|
||||
emote: '🚫',
|
||||
utilisation: 'ban <@member> [reason]',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const userId = message.mentions.users.first()?.id
|
||||
|| args[0];
|
||||
|
||||
const user = await client.users.fetch(userId);
|
||||
async execute(message, args, client) {
|
||||
const userId = message.mentions.users.first()?.id || args[0];
|
||||
const guildId = message.guild.id;
|
||||
const user = await message.guild.members.fetch(userId).catch(error => {
|
||||
return null;
|
||||
});
|
||||
const author = await message.guild.members.fetch(message.author.id).catch(error => {
|
||||
return null;
|
||||
});
|
||||
if (!user) {
|
||||
return message.reply('Veuillez mentionner un utilisateur valide ou fournir un ID valide.');
|
||||
}
|
||||
@@ -23,23 +26,28 @@ module.exports = {
|
||||
if (user.id === client.user.id) {
|
||||
return message.reply('Vous ne pouvez pas me ban');
|
||||
}
|
||||
if (await getPermissionLevel(user, client) === 11) {
|
||||
const permissionMember = await getPermissionLevel2(user, client,guildId);
|
||||
if (permissionMember === 11) {
|
||||
return message.reply('Vous ne pouvez pas ban un membre buyer');
|
||||
}
|
||||
if (await getPermissionLevel(user, client) === 10) {
|
||||
if (permissionMember === 10) {
|
||||
return message.reply('Vous ne pouvez pas ban un membre owner');
|
||||
}
|
||||
if (await getPermissionLevel(message.author, client) !== 11 || await getPermissionLevel(message.author, client) !== 10) {
|
||||
if (await getPermissionLevel(user, client) >= await getPermissionLevel(message.author, client)) {
|
||||
const permissionAuthor = await getPermissionLevel2(message.author, client, guildId);
|
||||
if (permissionAuthor !== 11 && permissionAuthor !== 10) {
|
||||
if (permissionMember >= permissionAuthor) {
|
||||
return message.reply('Vous ne pouvez pas ban un membre avec une permission égale ou supérieure à la votre');
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await message.guild.members.ban(user, { reason: args.slice(1).join(' ')+` : ${message.author.tag}` || `Aucune raison spécifiée : ${message.author.tag}` });
|
||||
message.channel.send(`L'utilisateur ${user.username} a été banni.`);
|
||||
} catch {
|
||||
message.reply(`Une erreur s'est produite lors de la tentative de bannissement de ${user.username}.`);
|
||||
if(user.roles.highest.position >= author.roles.highest.position && permissionAuthor !== 11 && permissionAuthor !== 10) {
|
||||
return message.reply('Vous ne pouvez pas ban un membre avec un role égale ou supérieure à la votre');
|
||||
}
|
||||
},
|
||||
try {
|
||||
const reason = args.slice(1).join(' ') || `Aucune raison spécifiée : ${message.author.tag}`;
|
||||
await message.guild.members.ban(user, { reason: `${reason} : ${message.author.tag}` });
|
||||
message.channel.send(`L'utilisateur ${user.user.username} a été banni.`);
|
||||
} catch {
|
||||
message.reply(`Une erreur s'est produite lors de la tentative de bannissement de ${user.user.username}.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,30 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: 'baninfo',
|
||||
description: 'Affiche les informations d\'un utilisateur bannie',
|
||||
emote: '🚫',
|
||||
utilisation: 'baninfo [id]',
|
||||
category: 'gestion',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const userIdToCheck = args[0];
|
||||
const bans = await message.guild.bans.fetch();
|
||||
|
||||
const ban = bans.find(ban => ban.user.id === userIdToCheck);
|
||||
|
||||
if (!ban) {
|
||||
return message.reply('Cet utilisateur n\'est pas dans la liste des bannis.');
|
||||
}
|
||||
const banner = ban.executor;
|
||||
const reason = ban.reason || 'Raison non disponible';
|
||||
const banDate = ban.createdAt;
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle(`Informations sur l'utilisateur ${ban.user.tag}`)
|
||||
.setDescription(`**Raison: **\`${reason}\`\n**Bannie par: **${banner ? banner.tag : 'Inconnu'}\n**Date: **${banDate}`)
|
||||
.setColor('#0099ff');
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
},
|
||||
};
|
||||
@@ -9,25 +9,28 @@ module.exports = {
|
||||
async execute(message) {
|
||||
try {
|
||||
const bans = await message.guild.bans.fetch();
|
||||
const bansArray = Array.from(bans.values());
|
||||
const embeds = [];
|
||||
const maxPerPage = 10;
|
||||
let currentPage = 0;
|
||||
const maxPerPage = 15;
|
||||
let index = 0;
|
||||
|
||||
for (let i = 0; i < bans.size; i += maxPerPage) {
|
||||
for (let i = 0; i < bansArray.length; i += maxPerPage) {
|
||||
const page = bansArray.slice(i, i + maxPerPage).map((ban) => {
|
||||
const reason = ban.reason || 'Raison non disponible';
|
||||
const entry = `**${index + 1}.** ${ban.user.tag} - **Raison: **\`${reason}\``;
|
||||
index++;
|
||||
return entry;
|
||||
}).join('\n');
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Liste des utilisateurs bannis')
|
||||
.setDescription(page)
|
||||
.setColor('#ff0000');
|
||||
|
||||
bans.each((ban, index) => {
|
||||
if (index >= i && index < i + maxPerPage) {
|
||||
const reason = ban.reason || 'Raison non disponible';
|
||||
embed.addFields({ name: ban.user.tag, value: `Raison: ${reason}` });
|
||||
}
|
||||
});
|
||||
|
||||
embeds.push(embed);
|
||||
}
|
||||
|
||||
|
||||
embeds.push(embed);
|
||||
}
|
||||
|
||||
let currentPage = 0;
|
||||
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(
|
||||
@@ -41,27 +44,46 @@ module.exports = {
|
||||
.setStyle(ButtonStyle.Primary)
|
||||
);
|
||||
|
||||
await message.channel.send({ embeds: [embeds[currentPage]], components: [row] });
|
||||
const sentMessage = await message.channel.send({ embeds: [embeds[currentPage]], components: [row] });
|
||||
|
||||
const filter = i => i.customId === 'previous' || i.customId === 'next' && i.user.id === message.author.id;
|
||||
const collector = message.channel.createMessageComponentCollector({ filter, time: 60000 });
|
||||
const collector = sentMessage.createMessageComponentCollector({ filter, time: 60000 });
|
||||
|
||||
collector.on('collect', async i => {
|
||||
if (i.customId === 'previous') {
|
||||
currentPage = Math.max(currentPage - 1, 0);
|
||||
currentPage--;
|
||||
} else if (i.customId === 'next') {
|
||||
currentPage = Math.min(currentPage + 1, embeds.length - 1);
|
||||
currentPage++;
|
||||
}
|
||||
|
||||
await i.update({ embeds: [embeds[currentPage]], components: [row] });
|
||||
|
||||
if (currentPage < 0) {
|
||||
currentPage = 0;
|
||||
} else if (currentPage >= embeds.length) {
|
||||
currentPage = embeds.length - 1;
|
||||
}
|
||||
|
||||
const newEmbed = embeds[currentPage];
|
||||
const backButton = new ButtonBuilder()
|
||||
.setCustomId('previous')
|
||||
.setLabel('Précédent')
|
||||
.setStyle(ButtonStyle.Primary);
|
||||
|
||||
const nextButton = new ButtonBuilder()
|
||||
.setCustomId('next')
|
||||
.setLabel('Suivant')
|
||||
.setStyle(ButtonStyle.Primary);
|
||||
|
||||
const row = new ActionRowBuilder()
|
||||
.addComponents(backButton, nextButton);
|
||||
|
||||
await i.update({ embeds: [newEmbed], components: [row] });
|
||||
});
|
||||
|
||||
collector.on('end', collected => {
|
||||
message.channel.send('Navigation terminée.');
|
||||
sentMessage.edit({ components: [] });
|
||||
});
|
||||
} catch (error) {
|
||||
console.error('Erreur lors de la récupération des utilisateurs bannis:', error);
|
||||
message.reply('Une erreur est survenue lors de la récupération des utilisateurs bannis.');
|
||||
}
|
||||
},
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
const { PermissionsBitField } = require('discord.js');
|
||||
module.exports = {
|
||||
name: 'cmute',
|
||||
description: 'Mute un utilisateur dans un salon',
|
||||
emote: '🔇',
|
||||
utilisation: 'cmute <@utilisateur> ou cmute <ID>',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args) {
|
||||
|
||||
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
|
||||
if (!user) {
|
||||
return message.reply('Veuillez mentionner une utilisateur valide.');
|
||||
}
|
||||
if (user.id === message.author.id) {
|
||||
return message.reply("Vous ne pouvez pas vous mute");
|
||||
}
|
||||
await message.channel.permissionOverwrites.edit(user, { "SendMessages": false });
|
||||
message.reply(`${user} a bien été mute dans le salon : <#${message.channel.id}>`)
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,21 @@
|
||||
module.exports = {
|
||||
name: 'cunmute',
|
||||
description: 'Déverrouille l\'envoi de messages pour un utilisateur dans un salon',
|
||||
emote: '🔊',
|
||||
utilisation: 'cunmute <@utilisateur> ou cunmute <ID>',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args) {
|
||||
|
||||
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
|
||||
if (!user) {
|
||||
return message.reply('Veuillez mentionner une utilisateur valide.');
|
||||
}
|
||||
if (user.id === message.author.id) {
|
||||
return message.reply("Vous ne pouvez pas vous déverrouiller vous-même");
|
||||
}
|
||||
await message.channel.permissionOverwrites.delete(user.id).catch(error => {
|
||||
});
|
||||
message.reply(`${user} a bien été déverrouillé dans le salon : <#${message.channel.id}>`)
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,50 @@
|
||||
const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
|
||||
const { PermissionsBitField } = require('discord.js');
|
||||
|
||||
module.exports = {
|
||||
name: 'delrole',
|
||||
description: 'Supprime un rôle d\'un utilisateur.',
|
||||
usage: '+delrole <@user ou ID> <@role ou ID ou nom>',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const botMember = await message.guild.members.fetch(client.user.id);
|
||||
const userMember = await message.guild.members.fetch(message.author.id);
|
||||
if (!botMember.permissions.has(PermissionsBitField.Flags.ManageRoles)) {
|
||||
return message.reply("Je n'ai pas la permission de pouvoir supprimer des rôles");
|
||||
}
|
||||
const user = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
|
||||
if (!user) {
|
||||
return message.reply('Utilisateur non trouvé.');
|
||||
}
|
||||
|
||||
let role;
|
||||
if (message.mentions.roles.first()) {
|
||||
role = message.mentions.roles.first();
|
||||
} else if (args[1].match(/^<@&(\d+)>$/)) {
|
||||
const roleId = args[1].match(/^<@&(\d+)>$/)[1];
|
||||
role = message.guild.roles.cache.get(roleId);
|
||||
} else {
|
||||
role = message.guild.roles.cache.find(r => r.name.toLowerCase() === args[1].toLowerCase());
|
||||
}
|
||||
|
||||
if (!role) {
|
||||
return message.reply('Rôle non trouvé.');
|
||||
}
|
||||
|
||||
if (role.position >= (botMember.roles.highest ? botMember.roles.highest.position : 0)) {
|
||||
return message.reply('Je ne peux pas gérer ce rôle car il est plus haut ou égal à mon rôle le plus élevé.');
|
||||
}
|
||||
|
||||
const permlevel = await getPermissionLevel(user, client);
|
||||
const roleposition = role.position;
|
||||
const userroleposition = userMember.roles.highest.position;
|
||||
if (roleposition >= userroleposition && permlevel < 10) return message.reply('Vous ne pouvez pas supprimer un rôle plus élevé ou égal au vôtre.');
|
||||
try {
|
||||
await user.roles.remove(role, `delrole : ${message.author.username}`);
|
||||
message.reply(`Le rôle ${role} a été supprimé de ${user.user.tag}.`);
|
||||
} catch (error) {
|
||||
return message.reply('Une erreur est survenue lors de la suppression du rôle.');
|
||||
}
|
||||
},
|
||||
};
|
||||
+49
-38
@@ -1,42 +1,53 @@
|
||||
const { EmbedBuilder, User } = require("discord.js")
|
||||
const { getPermissionLevel } = require('../../fonction/getPermissionLevel');
|
||||
const { getPermissionLevel2 } = require('../../fonction/getPermissionLevel');
|
||||
|
||||
module.exports = {
|
||||
name: 'kick',
|
||||
aliases: ['expulse'],
|
||||
description: 'Kick a member',
|
||||
emote: '🚫',
|
||||
utilisation: 'kick <@member> [reason]',
|
||||
category: 'moderation',
|
||||
name: 'kick',
|
||||
description: 'Expluser un membre',
|
||||
emote: '🚫',
|
||||
utilisation: 'kick <@member> [reason]',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const member = message.mentions.members.first();
|
||||
const reason = args.slice(1).join(' ') || 'Aucune raison spécifiée';
|
||||
if (!member) {
|
||||
return message.reply('Veuillez mentionner un membre à kick');
|
||||
}
|
||||
if (member.id === message.author.id) {
|
||||
return message.reply('Vous ne pouvez pas vous kick vous même');
|
||||
}
|
||||
if (member.id === client.user.id) {
|
||||
return message.reply('Vous ne pouvez pas me kick');
|
||||
}
|
||||
if (await getPermissionLevel(member, client) === 11) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre buyer');
|
||||
}
|
||||
if (await getPermissionLevel(member, client) === 10) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre owner');
|
||||
}
|
||||
if (await getPermissionLevel(message.member, client) !== 11 || await getPermissionLevel(message.member, client) !== 10) {
|
||||
if (await getPermissionLevel(member, client) >= await getPermissionLevel(message.member, client)) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre avec une permission égale ou supérieure à la votre');
|
||||
}
|
||||
}
|
||||
|
||||
member.kick(`${reason} : ${message.author.tag}`).then(() => {
|
||||
message.reply(`${member.user.tag} a bien été kick`);
|
||||
}).catch((err) => {
|
||||
message.reply(`Une erreur est survenue lors du kick de ${member.user.tag}`);
|
||||
});
|
||||
},
|
||||
async execute(message, args, client) {
|
||||
const userId = message.mentions.users.first()?.id || args[0];
|
||||
const guildId = message.guild.id;
|
||||
const user = await message.guild.members.fetch(userId).catch(error => {
|
||||
return null;
|
||||
});
|
||||
const author = await message.guild.members.fetch(message.author.id).catch(error => {
|
||||
return null;
|
||||
});
|
||||
if (!user) {
|
||||
return message.reply('Veuillez mentionner un utilisateur valide ou fournir un ID valide.');
|
||||
}
|
||||
|
||||
if (user.id === message.author.id) {
|
||||
return message.reply('Vous ne pouvez pas vous kick vous même');
|
||||
}
|
||||
if (user.id === client.user.id) {
|
||||
return message.reply('Vous ne pouvez pas me kick');
|
||||
}
|
||||
const permissionMember = await getPermissionLevel2(user, client, guildId);
|
||||
if (permissionMember === 11) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre buyer');
|
||||
}
|
||||
if (permissionMember === 10) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre owner');
|
||||
}
|
||||
const permissionAuthor = await getPermissionLevel2(message.author, client, guildId);
|
||||
if (permissionAuthor !== 11 && permissionAuthor !== 10) {
|
||||
if (permissionMember >= permissionAuthor) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre avec une permission égale ou supérieure à la votre');
|
||||
}
|
||||
}
|
||||
if(user.roles.highest.position >= author.roles.highest.position && permissionAuthor !== 11 && permissionAuthor !== 10) {
|
||||
return message.reply('Vous ne pouvez pas kick un membre avec un role égale ou supérieure à la votre');
|
||||
}
|
||||
try {
|
||||
const reason = args.slice(1).join(' ') || `Aucune raison spécifiée : ${message.author.tag}`;
|
||||
await user.kick(reason);
|
||||
message.channel.send(`L'utilisateur ${user.user.username} a été kick.`);
|
||||
} catch {
|
||||
message.reply(`Une erreur s'est produite lors de la tentative de kick de ${user.user.username}.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,20 @@
|
||||
module.exports = {
|
||||
name: 'nickreset',
|
||||
description: 'Réinitialise le pseudo d\'un membre à son nom d\'utilisateur réel.',
|
||||
utilisation: 'nickreset [@member/memberID]',
|
||||
category: 'moderation',
|
||||
emote:'🛠️ ',
|
||||
async execute(message, args, client) {
|
||||
const member = message.mentions.members.first() || message.guild.members.cache.get(args[0]);
|
||||
|
||||
if (!member) {
|
||||
return message.reply('Veuillez mentionner un membre ou fournir un ID de membre valide.');
|
||||
}
|
||||
try {
|
||||
await member.setNickname(member.user.username);
|
||||
message.reply(`Le pseudo de ${member.user.tag} a été réinitialisé à son nom d'utilisateur réel.`);
|
||||
} catch (error) {
|
||||
message.reply('Une erreur s\'est produite lors de la tentative de réinitialisation du pseudo.');
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -72,6 +72,27 @@ module.exports = {
|
||||
}
|
||||
message.reply(reply);
|
||||
} else {
|
||||
let data = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT value FROM gestion WHERE id = ?', [message.client.user.id], (err, row) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
reject(err);
|
||||
}
|
||||
resolve(row ? JSON.parse(row.value) : {});
|
||||
});
|
||||
});
|
||||
data[message.guild.id] = data[message.guild.id] || {};
|
||||
data[message.guild.id].prisonlist = data[message.guild.id].prisonlist || [];
|
||||
const userIndex = data[message.guild.id].prisonlist.indexOf(users.id);
|
||||
if (userIndex !== -1) {
|
||||
data[message.guild.id].prisonlist.splice(userIndex, 1);
|
||||
db.run('INSERT OR REPLACE INTO gestion (id, value) VALUES (?, ?)', [message.client.user.id, JSON.stringify(data)], function(err) {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
return message.reply('Une erreur est survenue lors de la mise à jour de la liste des utilisateurs en prison.');
|
||||
}
|
||||
});
|
||||
}
|
||||
message.reply(`👮 <@${users.id}> est libéré de prison`);
|
||||
}
|
||||
} else if (args[0] === "list") {
|
||||
@@ -97,8 +118,6 @@ module.exports = {
|
||||
embed.addFields({ name: `${index + 1}`, value: `<@${userId}>`});
|
||||
});
|
||||
}
|
||||
|
||||
// Envoyer l'embed
|
||||
message.channel.send({ embeds: [embed] });
|
||||
}else {
|
||||
const users = message.mentions.users.first() || message.guild.members.cache.get(args[1])
|
||||
|
||||
@@ -7,7 +7,7 @@ module.exports = {
|
||||
description: 'Afficher tous les avertissements d\'un utilisateur',
|
||||
aliases: ['sanction'],
|
||||
category: 'moderation',
|
||||
utilisation: '+sanction @user/id',
|
||||
utilisation: 'sanction @user/id',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const user = message.mentions.users.first() || client.users.cache.get(args[0]);
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
module.exports = {
|
||||
name: 'unbanall',
|
||||
aliases: ['debannir-tous'],
|
||||
description: 'Débannit tous les membres bannis',
|
||||
emote: '🚫',
|
||||
utilisation: 'unbanall ',
|
||||
category: 'moderation',
|
||||
|
||||
async execute(message, args, client) {
|
||||
try {
|
||||
const sendmessage = await message.reply("Récupération de la liste des personnes bannies");
|
||||
const reason = args.slice(1).join(' ') || 'Aucune raison spécifiée';
|
||||
const bannedMembers = await message.guild.bans.fetch();
|
||||
if (bannedMembers.size === 0) {
|
||||
return sendmessage.edit('Il n\'y a aucun membre banni sur ce serveur.');
|
||||
}
|
||||
sendmessage.edit("Le unbanall est entrain d'etre effectué")
|
||||
let counter = 0;
|
||||
for (const user of bannedMembers.values()) {
|
||||
await message.guild.members.unban(user.user, `unbanall par ${message.author.tag} : ${reason}`);
|
||||
counter++;
|
||||
}
|
||||
|
||||
sendmessage.edit(`Tous les membres bannis ont été débannis. Nombre de membres débannis : \`${counter}\``);
|
||||
} catch (err) {
|
||||
message.reply(`Une erreur est survenue lors du débannissement des membres.`);
|
||||
}
|
||||
},
|
||||
};
|
||||
@@ -5,7 +5,7 @@ module.exports = {
|
||||
name: 'unwarn',
|
||||
description: 'Supprimer un avertissement d\'un utilisateur',
|
||||
category: 'moderation',
|
||||
utilisation: '+unwarn @user <warnid>',
|
||||
utilisation: 'unwarn @user <warnid>',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const user = message.mentions.users.first() || client.users.cache.get(args[0]);
|
||||
@@ -23,7 +23,6 @@ module.exports = {
|
||||
const warningId = parseInt(args[1]);
|
||||
if (!warningId) return message.reply("Veuillez mettre l'id du warn.");
|
||||
|
||||
// Supprimer l'avertissement de la base de données
|
||||
db.run('DELETE FROM warnings WHERE guildId = ? AND userId = ? AND warningId = ?', [message.guild.id, user.id, warningId], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
|
||||
@@ -5,14 +5,13 @@ module.exports = {
|
||||
name: 'warn',
|
||||
description: 'Ajouter un avertissement à un utilisateur',
|
||||
category: 'moderation',
|
||||
utilisation: '+warn @user <raison>',
|
||||
utilisation: 'warn @user <raison>',
|
||||
|
||||
async execute(message, args, client) {
|
||||
const user = message.mentions.users.first() || client.users.cache.get(args[0]);
|
||||
if (!user) return message.reply('Utilisateur non trouvé.');
|
||||
const reason = args.slice(1).join(' ') || 'pas de raison fournie';
|
||||
|
||||
// Récupérer le dernier warningId pour cette guilde et utilisateur
|
||||
let lastWarningId = await new Promise((resolve, reject) => {
|
||||
db.get('SELECT MAX(warningId) as lastWarningId FROM warnings WHERE guildId = ? AND userId = ?', [message.guild.id, user.id], (err, row) => {
|
||||
if (err) {
|
||||
@@ -23,10 +22,8 @@ module.exports = {
|
||||
});
|
||||
});
|
||||
|
||||
// Incrémenter le warningId pour le nouvel avertissement
|
||||
const newWarningId = lastWarningId + 1;
|
||||
|
||||
// Insérer l'avertissement dans la base de données
|
||||
db.run('INSERT INTO warnings (guildId, userId, warningId, reason, timestamp) VALUES (?, ?, ?, ?, ?)', [message.guild.id, user.id, newWarningId, reason, Date.now()], (err) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
|
||||
Reference in New Issue
Block a user