mirror of
https://github.com/arthur-pbty/gestion.git
synced 2026-06-26 14:17:15 +02:00
role limit and blrank add
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
const db = require('quick.db');
|
||||
const GestionDb = new db.table('gestion');
|
||||
module.exports = {
|
||||
name: 'guildMemberUpdate',
|
||||
execute(oldMember, newMember) {
|
||||
const botId = newMember.client.user.id;
|
||||
const guildId = newMember.guild.id;
|
||||
|
||||
const limitedRoles = GestionDb.get(`${botId}.${guildId}.rolelimits`) || [];
|
||||
const blrank = GestionDb.get(`${botId}.${guildId}.blrank`) || {};
|
||||
|
||||
if (blrank[newMember.id]) {
|
||||
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
|
||||
addedRoles.forEach(async role => {
|
||||
try {
|
||||
await newMember.roles.remove(role);
|
||||
} catch (error) {
|
||||
console.error(`Erreur lors de la suppression du rôle <@&${role.id}> pour le membre ${newMember.user.tag}:`, error);
|
||||
}
|
||||
});
|
||||
return;
|
||||
}
|
||||
const addedRoles = newMember.roles.cache.filter(role => !oldMember.roles.cache.has(role.id));
|
||||
|
||||
addedRoles.forEach(async role => {
|
||||
const limitedRole = limitedRoles.find(r => r.id === role.id);
|
||||
if (limitedRole) {
|
||||
const memberCount = newMember.guild.members.cache.filter(m => m.roles.cache.has(role.id)).size;
|
||||
if (limitedRole.limit === 0) {
|
||||
try {
|
||||
await newMember.roles.remove(role);
|
||||
} catch (error) {
|
||||
console.error(`Erreur lors de la suppression du rôle <@&${role.id}> pour le membre ${newMember.user.tag}:`, error);
|
||||
}
|
||||
}
|
||||
if (memberCount > limitedRole.limit) {
|
||||
try {
|
||||
await newMember.roles.remove(role);
|
||||
} catch (error) {
|
||||
console.error(`Erreur lors de la suppression du rôle <@&${role.id}> pour le membre ${newMember.user.tag}:`, error);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user