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:
VALOU3336
2024-04-22 18:30:33 +02:00
parent d8912855ff
commit 9bd39c69ca
178 changed files with 9241 additions and 480 deletions
+33
View File
@@ -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);
}
});
}
+34
View File
@@ -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);
});
}
+40
View File
@@ -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] });
});
},
};
+44
View File
@@ -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);
}
});
}
+32
View File
@@ -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);
}
});
}