mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-09 09:02:05 +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,33 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'addinvite',
|
||||
description: 'Ajoute un nombre spécifique d\'invitations à un utilisateur.',
|
||||
emote: '📈',
|
||||
utilisation: 'addinvite [@user/id] <nombre>',
|
||||
category: 'invitation',
|
||||
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.');
|
||||
}
|
||||
const numberToAdd = parseInt(args[1], 10);
|
||||
if (isNaN(numberToAdd)) {
|
||||
return message.reply('Veuillez fournir un nombre valide.');
|
||||
}
|
||||
addInviteCount(message.guild.id, member.id, numberToAdd);
|
||||
message.reply(`${numberToAdd} invitations ont été ajoutées à ${member.user.tag}.`);
|
||||
},
|
||||
};
|
||||
|
||||
function addInviteCount(guildId, memberId, numberToAdd) {
|
||||
db.run(`INSERT INTO invitations (guild_id, member_id, invite_count)
|
||||
VALUES (?, ?, ?)
|
||||
ON CONFLICT(guild_id, member_id) DO UPDATE SET invite_count = invite_count + ?`,
|
||||
[guildId, memberId, numberToAdd, numberToAdd], function(err) {
|
||||
if (err) {
|
||||
return console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
module.exports = {
|
||||
name: 'invite',
|
||||
description: 'Affiche le nombre d\'invitations d\'un utilisateur.',
|
||||
emote: '📈',
|
||||
utilisation: 'invite [@user/id]',
|
||||
category: 'invitation',
|
||||
|
||||
async execute(message, args, client) {
|
||||
let memberId = message.mentions.users.first()?.id ||client.users.cache.get(args[0])?.id || message.author.id;
|
||||
|
||||
getInviteCount(message.guild.id, memberId, (inviteCount) => {
|
||||
const embed = new EmbedBuilder()
|
||||
.setColor('#0099ff')
|
||||
.setTitle('Nombre d\'invitations')
|
||||
.setDescription(`<@${memberId}> a invité ${inviteCount} personnes.`);
|
||||
|
||||
message.reply({ embeds: [embed] });
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
function getInviteCount(guildId, memberId, callback) {
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
db.get(`SELECT invite_count FROM invitations WHERE guild_id = ? AND member_id = ?`,
|
||||
[guildId, memberId], (err, row) => {
|
||||
if (err) {
|
||||
return console.error(err.message);
|
||||
}
|
||||
callback(row ? row.invite_count : 0);
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
const { EmbedBuilder } = require('discord.js');
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'inviteboard',
|
||||
description: 'Affiche les 10 personnes du serveur avec le plus d\'invitations.',
|
||||
emote: '📊',
|
||||
utilisation: 'inviteboard',
|
||||
category: 'invitation',
|
||||
async execute(message, args, client) {
|
||||
db.all(`SELECT member_id, invite_count FROM invitations WHERE guild_id = ? ORDER BY invite_count DESC LIMIT 10`, [message.guild.id], (err, rows) => {
|
||||
if (err) {
|
||||
console.error(err.message);
|
||||
return message.reply('Une erreur s\'est produite lors de la récupération des données d\'invitation.');
|
||||
}
|
||||
|
||||
if (rows.length === 0) {
|
||||
return message.reply('Aucune donnée d\'invitation disponible pour ce serveur.');
|
||||
}
|
||||
|
||||
let leaderboard = 'Top 10 des invitations:\n';
|
||||
rows.forEach((row, index) => {
|
||||
const member = message.guild.members.cache.get(row.member_id);
|
||||
if (member) {
|
||||
leaderboard += `${index + 1}. **${member.user.tag}**: \`${row.invite_count}\` invitations\n`;
|
||||
}
|
||||
});
|
||||
|
||||
const embed = new EmbedBuilder()
|
||||
.setTitle('Classement des invitations')
|
||||
.setDescription(leaderboard)
|
||||
.setThumbnail(message.guild.iconURL({ dynamic: true, size: 1024 }))
|
||||
.setFooter({text: `Invite leaderborder | ${client.user.username}`})
|
||||
.setColor('#0099ff');
|
||||
|
||||
message.channel.send({ embeds: [embed] });
|
||||
});
|
||||
},
|
||||
};
|
||||
@@ -0,0 +1,44 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'invitereset',
|
||||
aliases: ['resetinvite'],
|
||||
description: 'Réinitialise le compteur d\'invitations pour un utilisateur ou un serveur.',
|
||||
emote: '🔄',
|
||||
utilisation: 'invitereset [user|guild] [@user/id]',
|
||||
category: 'invitation',
|
||||
async execute(message, args, client) {
|
||||
if (args[0] === 'user') {
|
||||
const member = message.mentions.members.first() || message.guild.members.cache.get(args[1]);
|
||||
if (!member) {
|
||||
return message.reply('Veuillez mentionner un membre ou fournir un ID de membre valide.');
|
||||
}
|
||||
resetInviteCountForUser(message.guild.id, member.id);
|
||||
message.reply(`Le compteur d'invitations de ${member.user.tag} a été réinitialisé.`);
|
||||
} else if (args[0] === 'guild') {
|
||||
resetInviteCountForGuild(message.guild.id);
|
||||
message.reply(`Le compteur d'invitations pour le serveur ${message.guild.name} a été réinitialisé.`);
|
||||
} else {
|
||||
message.reply('Veuillez spécifier \`user\` ou \`guild\` pour réinitialiser le compteur d\'invitations.');
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
function resetInviteCountForUser(guildId, memberId) {
|
||||
db.run(`UPDATE invitations SET invite_count = 0 WHERE guild_id = ? AND member_id = ?`,
|
||||
[guildId, memberId], function(err) {
|
||||
if (err) {
|
||||
return console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function resetInviteCountForGuild(guildId) {
|
||||
db.run(`DELETE FROM invitations WHERE guild_id = ?`,
|
||||
[guildId], function(err) {
|
||||
if (err) {
|
||||
return console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
const sqlite3 = require('sqlite3').verbose();
|
||||
const db = new sqlite3.Database('myDatabase.db');
|
||||
|
||||
module.exports = {
|
||||
name: 'removeinvite',
|
||||
description: 'Retire un nombre spécifique d\'invitations d\'un utilisateur.',
|
||||
emote: '📈',
|
||||
utilisation: 'removeinvite [@user/id] <nombre>',
|
||||
category: 'invitation',
|
||||
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.');
|
||||
}
|
||||
const numberToRemove = parseInt(args[1], 10);
|
||||
if (isNaN(numberToRemove)) {
|
||||
return message.reply('Veuillez fournir un nombre valide.');
|
||||
}
|
||||
removeInviteCount(message.guild.id, member.id, numberToRemove);
|
||||
message.reply(`${numberToRemove} invitations ont été retirées de ${member.user.tag}.`);
|
||||
},
|
||||
};
|
||||
function removeInviteCount(guildId, memberId, numberToRemove) {
|
||||
db.run(`INSERT INTO invitations (guild_id, member_id, invite_count)
|
||||
VALUES (?, ?, 0)
|
||||
ON CONFLICT(guild_id, member_id) DO UPDATE SET invite_count = invite_count - ?`,
|
||||
[guildId, memberId, numberToRemove], function(err) {
|
||||
if (err) {
|
||||
return console.error(err.message);
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user