Advertisement
TheBakkeseKing

DS Bot Modular / guildMemberAdd

Sep 1st, 2024
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. module.exports = {
  2.     name: "guildMemberAdd",
  3.     async execute(member) {
  4.      
  5.       // Inicializar la caché de invitaciones si no está definida
  6.       if (!member.client.inviteCache) {
  7.         member.client.inviteCache = new Map();
  8.       }
  9.  
  10.       if (!member.client.inviteCache.has(member.guild.id)) {
  11.         member.client.inviteCache.set(member.guild.id, new Map());
  12.       }
  13.  
  14.       // Obtener la caché de invitaciones antes de la entrada del miembro
  15.       const cachedInvites = member.client.inviteCache.get(member.guild.id);
  16.  
  17.       // Obtener todas las invitaciones actuales del servidor
  18.       const guildInvites = await member.guild.invites.fetch();
  19.  
  20.       // Obtener la invitación utilizada comparando el recuento de usos
  21.       const invite = guildInvites.find(i => cachedInvites.get(i.code) < i.uses);
  22.  
  23.       // Actualizar la caché con las invitaciones actuales
  24.       member.client.inviteCache.set(member.guild.id, new Map(guildInvites.map(inv => [inv.code, inv.uses])));
  25.  
  26.       if (invite) {
  27.         const discordId = member.id;
  28.         const invitacion = invite.code;
  29.         const discordIdInvitador = invite.inviter.id;
  30.  
  31.         // Procesar la invitación (guardar en la base de datos, enviar webhook, etc.)
  32.         console.log(`Nuevo miembro: ${member.user.tag} (${member.id}) se ha unido, Invitación utilizada: ${invitacion} por ${discordIdInvitador}`);
  33.       } else {
  34.         console.log(`Nuevo miembro: ${member.user.tag} (${member.id}) se ha unido, pero no se pudo determinar la invitación utilizada.`);
  35.       }
  36.     },
  37. };
  38.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement