【问题标题】:Why is it returning as ‘send’ of undefined?为什么它作为未定义的“发送”返回?
【发布时间】:2020-06-02 06:28:04
【问题描述】:

我像 guildMemberAdd 一样设置了下面的代码,它工作正常,但下面的代码却不行。

它给了我

TypeError:无法读取未定义的属性“发送”

当我定义了正确的频道时。我不知道为什么。

client.on("guildMemberRemove", function(message) {
  let guild = message.guild;
  let member = message;
  let memberCount = message.guild.memberCount
    let memmChannel = message.guild.channels.cache.find(channel => channel.name === "logs");
    const embed = new MessageEmbed()
      .setColor("#da7272")
      .setThumbnail(member.user.displayAvatarURL({ format: 'png', dynamic: true }))
      .setDescription(`${member.user} just left the lobby.\n\nMember Count: \`#${message.guild.memberCount}\``);

    memmChannel.send(embed);
});

【问题讨论】:

  • message.guild.channels.cache.find(channel => channel.name === "logs") 返回undefined。我猜这个谓词不匹配任何东西。
  • 如果我有一个名为 logs 的频道,它怎么会不匹配?
  • console.log(memmChannel) 有输出吗?

标签: javascript node.js bots discord discord.js


【解决方案1】:

这意味着机器人找不到任何名称为“日志”的频道。 我认为这是由于该成员不再在公会中。

您应该尝试记录您的message.guild,分析输出,并使用结果调整您的代码。比如使用公会id,如果存在就运行const guild = client.guilds.cache.get(GuildID)

如果您可以发送console.log(message.guild) 的输出,我想我应该可以帮助您解决问题:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-24
    • 2021-12-11
    • 2019-08-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    相关资源
    最近更新 更多