Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const { EmbedBuilder, WebhookClient } = require("discord.js");
- const { query, insert } = require('../../Functions/Metodos/database');
- const webhook = new WebhookClient({
- url: "",
- });
- module.exports = {
- name: "guildMemberAdd",
- async execute(member) {
- // Inicializar la caché de invitaciones si no está definida
- if (!member.client.inviteCache) {
- member.client.inviteCache = new Map();
- }
- if (!member.client.inviteCache.has(member.guild.id)) {
- member.client.inviteCache.set(member.guild.id, new Map());
- }
- // Obtener la caché de invitaciones antes de la entrada del miembro
- const cachedInvites = member.client.inviteCache.get(member.guild.id);
- // Obtener todas las invitaciones actuales del servidor
- const guildInvites = await member.guild.invites.fetch();
- // Obtener la invitación utilizada comparando el recuento de usos
- const invite = guildInvites.find(i => cachedInvites.get(i.code) < i.uses);
- // Actualizar la caché con las invitaciones actuales
- member.client.inviteCache.set(member.guild.id, new Map(guildInvites.map(inv => [inv.code, inv.uses])));
- if (invite) {
- const invitacion = invite.code;
- try {
- // Recuperar el comercial que creó la invitación
- const [comercial] = await query('Sentencia SQL SELECT', [invitacion]);
- const discordIdInvitador = comercial ? comercial.DiscordIDuser : invite.inviter.id;
- // Comprobar si el usuario ya existe en la base de datos
- const results = await query('Sentencia SQL SELECT', [member.id]);
- if (results.length > 0) {
- console.log(`El usuario ${member.user.tag} (${member.id}) ya está registrado en la base de datos.`);
- } else {
- // Insertar los datos en la base de datos
- const insertId = await insert('Sentencia SQL INSERT', [member.id, discordIdInvitador, invitacion]);
- console.log('Nuevo registro añadido a la base de datos:', insertId);
- }
- // Enviar mensaje de bienvenida en el canal de bienvenida
- const welcomeChannel = member.guild.channels.cache.find(channel => channel.name === "recibidor");
- if (welcomeChannel) {
- welcomeChannel.send(`:green_circle: <@${member.id}> (${member.id}) - Invitado por <@${discordIdInvitador}> (${discordIdInvitador}) -> ${member.guild.memberCount} miembros.`);
- }
- console.log(`Nuevo miembro: ${member.user.tag} (${member.id}) se ha unido, Invitación utilizada: ${invitacion} por ${discordIdInvitador}`);
- } catch (error) {
- console.error('Error al interactuar con la base de datos:', error);
- }
- } else {
- console.log(`Nuevo miembro: ${member.user.tag} (${member.id}) se ha unido, pero no se pudo determinar la invitación utilizada.`);
- }
- },
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement