当用户加入公会时如何发送嵌入?

How do I send a embed when a user joins the guild?

我正在制作一个 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)
  }

代码中的一个非常小的错误。

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);

应该可以。