首页 > 解决方案 > 无法读取未定义的属性“邀请者”

问题描述

我收到一个Cannot read the property 'inviter' of undefined错误,我不太清楚为什么。这是我的代码:

Client.on('guildMemberAdd', async (member) => {
  const cachedInvites = GuildInvites.get(member.guild.id);
  const nweInvites = await member.guild.fetchInvites();

  GuildInvites.set(member.guild.id, nweInvites);
  try {
    const usedInvites = nweInvites.find(
      (inv) => cachedInvites.get(inv.code) < inv.uses
    );
    const embed = new Discord.MessageEmbed()
      .setDescription(
        `${member.user.tag} is the ${member.guild.memberCount}th member. \nInvited by ${usedInvites.inviter.username} \nNumber of uses: ${usedInvites.uses}`
      )
      .setTimestamp()
      .setColor('YELLOW');

    const WelcomeChannel = member.guild.channels.cache.find(
      (channel) => channel.id === '704908658068422698'
    );
    WelcomeChannel.send(embed).catch((err) => {
      console.log(err);
    });
  } catch (err) {
    console.log(err);
  }
});

Client.login();

我正在尝试创建一个邀请经理机器人。任何帮助将不胜感激,谢谢!

标签: node.jsdiscord.js

解决方案


您可以做的是通过保护您的代码来管理这种情况。

try {
  const usedInvites = nweInvites.find(
    (inv) => cachedInvites.get(inv.code) < inv.uses
  );

  if (!usedInvites) {
    return;
  }

  const embed = new Discord.MessageEmbed()
    .setDescription(
      `${member.user.tag} is the ${member.guild.memberCount}th member. \nInvited by ${usedInvites.inviter.username} \nNumber of uses: ${usedInvites.uses}`
    )
    .setTimestamp()
    .setColor('YELLOW');

  const WelcomeChannel = member.guild.channels.cache.find(
    (channel) => channel.id === '704908658068422698'
  );
  WelcomeChannel.send(embed).catch((err) => {
    console.log(err);
  });
}

我补充说:if (!usedInvites) return;但你可以做任何你需要的动作。


推荐阅读