Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js DISCORD.JS如何获取邀请新成员的人的姓名?_Node.js_Discord_Discord.js - Fatal编程技术网

Node.js DISCORD.JS如何获取邀请新成员的人的姓名?

Node.js DISCORD.JS如何获取邀请新成员的人的姓名?,node.js,discord,discord.js,Node.js,Discord,Discord.js,我正在尝试将邀请新成员的用户的姓名添加到我的欢迎消息中! 你能帮我吗?我会在下面留下我的代码,如果你能帮我的话,谢谢你 client.on("guildMemberAdd", async (member) => { let guild = await client.guilds.cache.get("SERVER ID"); // SERVER ID let channel = await client.channels.cach

我正在尝试将邀请新成员的用户的姓名添加到我的欢迎消息中! 你能帮我吗?我会在下面留下我的代码,如果你能帮我的话,谢谢你

client.on("guildMemberAdd", async (member) => { 

    let guild = await client.guilds.cache.get("SERVER ID"); // SERVER ID
    let channel = await client.channels.cache.get("CHANNEL ID"); // CHANNEL ID
    let emoji = await member.guild.emojis.cache.find(emoji => emoji.name === "eba"); // NOME DO EMOJI
    if (guild != member.guild) {
      return console.log("Sem boas-vindas pra você! Sai daqui saco pela."); // MENSAGEM EXIBIDA NO CONSOLE
     } else {
        let embed = await new Discord.MessageEmbed()
       .setColor("#fcfcfc")
        .setAuthor(member.user.tag, member.user.displayAvatarURL())
        .setTitle(`:boom: Boas-vindas :boom:`)
        .setImage("https://media.tenor.com/images/c001d9d78724152f00eca4d8ed2e2b9c/tenor.gif")
        .setDescription(`**Olá ${member.user}!**\nBem-vindo(a) ao servidor **${guild.name}**!\nVocê é o membro **#${member.guild.memberCount}\n**Compartilhe nosso servidor! :heart:`)
        .setFooter("Servidor Espalha Lixo") // Set footer
        .setTimestamp();
  
      channel.send(embed);
    }
  });

这是有效的;查看此代码

    client.on('guildMemberAdd', member => { //guildMemberAdd event
  member.guild.fetchInvites().then(guildInvites => {
    // This is the *existing* invites for the guild.
    const ei = invites[member.guild.id];
    // Update the cached invites for the guild.
    invites[member.guild.id] = guildInvites;
    // Look through the invites, find the one for which the uses went up.
    const invite = guildInvites.find(i => ei.get(i.code).uses < i.uses);
    // This is just to simplify the message being sent below (inviter doesn't have a tag property)
    const inviter = client.users.get(invite.inviter.id);
    channel.send(`${member.user.tag} joined using invite code - ${invite.code} from ${inviter.tag}. Invite was used ${invite.uses} times since its creation.`);
  })
});
client.on('guildMemberAdd',member=>{//guildMemberAdd事件
然后(guildInvites=>{
//这是公会的“现有”邀请。
const ei=邀请[member.guild.id];
//更新公会的缓存邀请。
邀请[member.guild.id]=Guidinvites;
//浏览一下邀请函,找到使用量增加的邀请函。
const invite=guildInvites.find(i=>ei.get(i.code).uses
您可以在github上找到更多信息。
答案-
inviter.tag
from code

没有官方方法通过Discord的API来找出谁邀请了某人。人们要做的是存储现有邀请的列表,当有人加入时,将存储的列表与当前列表进行比较,找出哪个邀请的使用次数增加了

它不是完美的,可能会在大量用户加入的情况下进入大型服务器

《白痴指南》网站上有一个关于这个主题的很棒的指南: