【问题标题】:How do I send a embed when a user joins the guild? [duplicate]当用户加入公会时如何发送嵌入? [复制]
【发布时间】:2021-09-09 13:18:09
【问题描述】:

我正在制作一个 Discord Bot,它会以热烈的欢迎方式迎接用户,无需设置。

我想让它做什么:我想让它找到一个名为“welcome”的频道并向其发送嵌入

实际做什么:它不发送任何内容。我的帮助命令使用相同的东西,但它在 GuildMemberAdd 事件中不起作用

这是我的代码:

client.on("guildMemberAdd", (member) => {
  try {
  let embed = new Discord.MessageEmbed;
  embed.setTitle(`Welcome, ${member.username}!`)
  embed.setAuthor(message.author.username, message.author.avatarURL)
  embed.setDescription('We hope you enjoy your stay!')
  console.log(`New User "${member.user.username}" has joined "${member.guild.name}"` );
  const channel = member.guild.channels.cache.find(c => c.name === "welcome").id
  channel.send(embed);
  } catch(err) {
    console.log(err)
  }

【问题讨论】:

    标签: discord discord.js bots


    【解决方案1】:

    代码中的一个很小的错误。

    const channel = member.guild.channels.cache.find(c => c.name === "welcome").id
    channel.send(embed);
    

    如果您阅读代码,则 const channel 基本上是频道的 id 而不是频道。您不能向 id 发送任何内容。

    改成:

    const channel = member.guild.channels.cache.find(c => c.name === "welcome");
    channel.send(embed);
    

    应该可以。

    【讨论】:

    • 这可能是因为他们没有发出 guildMember 事件而不是那个
    • 那会很搞笑,因为如果他们想在 guildMemberAdd 事件发出时发送一些东西,他们必须加入服务器或通过代码发出事件。
    • 糟糕,我愚蠢的自己忘记打开服务器成员意图。我也忘了修复其他东西。谢谢大家的帮助!
    • @FireyJS 如果这个答案对你有用,请将其标记为答案,或者如果您使用其他方法解决了您的问题,您可以自己发布答案并标记它!
    猜你喜欢
    • 2021-04-24
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2018-05-11
    • 2020-10-03
    • 1970-01-01
    相关资源
    最近更新 更多