【问题标题】:Can't send embed message on join无法在加入时发送嵌入消息
【发布时间】:2018-11-08 06:43:09
【问题描述】:

不知道为什么它不起作用,确切的代码在我的旧机器人上运行。代码:

client.on("guildMemberAdd", member => {
    const Discord = require("discord.js");
    const embed = new Discord.RichEmbed()
      .setTitle("**Please be sure to read our rules carefully thanks**")
      .setAuthor("Welcome to BACKUP")
      .setColor(3447003)
      .setDescription("Please enjoy your stay")
      .setThumbnail(message.author.avatarURL)
      client.channels.get('505107608391254030').send({embed});
  })
}

最让我困惑的是,如果我用这段代码替换该代码,它就可以正常工作。

client.on('guildMemberAdd', member => {
  member.guild.channels.get('505107608391254030').send("This works, but embed does not, fix it boi, line 102"); 
});

(关于不起作用的代码,我试过了:client.channels.get, member.channels.get, member.guild.channels.get, client.guild.channels.get

【问题讨论】:

  • 是否显示错误?
  • 完全没有错误。
  • member.guild.channels.get('id').send("test content", {embed})试试看是否发送
  • 没用,还是没有错误。
  • 您是否尝试过检查函数是否首先运行?尝试将console.log 放在顶部,然后声明Discord

标签: javascript node.js discord.js


【解决方案1】:

问题是当您找到频道时,client.channels.get 不是一种方法。 在这种情况下不起作用,原因我不知道

你必须使用client.guilds.get(GUILD_ID).channels.get(CHANNEL_ID).send({embed});

【讨论】:

  • 成功了,谢谢。现在它说 message 没有定义 lmao 我不知道如何定义它。
  • 你在哪里使用它? message 只会在 client.on("message") 中定义
  • .setThumbnail(message.author.avatarURL 行中,我寻求帮助的每个人都只说“您需要定义消息”,但我不知道如何在我的情况下定义它
  • 正如我在之前的评论中所说的'message 只会在 client.on("message")' 中定义。显然你在client.on("guildMemberAdd")member.user.avatarURL 会给你你想要的。稍微解释一下:message指的是发送的消息,但是如果有人添加到服务器,则没有消息发送。我们唯一的信息是添加的成员,从那里我们可以获取与该成员关联的用户对象,然后从那里获取属性
  • 我加入了一个 Discord 支持小组来尝试寻求帮助,我想多了,在发帖之前我将其命名为 member.user.avatarURL,但它不起作用,我尝试使用相同的方式更改嵌入作者图标member.user.avatarURL 并且成功了。所以我的问题是.setThumbnail(member.user.avatarURL 不起作用。但它适用于 .setAuthor
猜你喜欢
  • 1970-01-01
  • 2021-09-15
  • 2021-02-13
  • 2021-09-29
  • 2020-09-29
  • 2021-12-01
  • 2020-10-09
  • 2021-12-28
  • 2021-04-26
相关资源
最近更新 更多