【问题标题】:Mentions in a rich embed are appearing as their string丰富嵌入中的提及显示为他们的字符串
【发布时间】:2019-11-28 04:46:00
【问题描述】:

我遇到了一个问题,即我的机器人在富嵌入中没有正确提及。它似乎根本无法标记用户。

提及最终看起来像......

<@601756839956447232>

应该 ping 用户并且看起来像......


  • 我尝试在消息中使用author.toString()
  • 我尝试过使用<@${author.id}>
  • 我尝试过使用@${author.tag}
  • 我尝试过使用${author}

所有这些尝试都会产生相同的结果。


这是我正在使用的代码...

var serv = message.guild
var author = message.author

var myInfo = new discord.RichEmbed()
    .setAuthor(`${serv.name}'s roles`,`${message.guild.iconURL}`)
    .addField(`Roles`, serv.roles.map(r => `${r}`).join(' | '),true)
    .setColor(0xffd000)
    .setFooter('Server Roles.')
    .setFooter(`Requested by @${author.tag}`,`${author.avatarURL}`)

message.channel.sendEmbed(myInfo);

我的主要目标是在嵌入消息中标记用户而不标记用户。 我的主要关注点是让https://imgur.com/a/hbgm1TXhttps://imgur.com/a/lB1Moh9,但 ping 实际上并不 ping 嵌入中的任何人。

【问题讨论】:

    标签: discord.js


    【解决方案1】:

    RichEmbeds (v11) 和 MessageEmbeds (v12) 的这些基于文本的属性支持提及...

    • 作者
    • 标题
    • 字段名称
    • 页脚

    这些甚至不支持任何降价...

    • 作者
    • 页脚

    由于页脚无法解析提及,它显示为您看到的字符串。此外,用户在嵌入的任何部分都不会收到通知。最后,TextChannel#sendEmbed() 方法已被弃用,并已在 Discord.js 的 v12 中删除;使用TextChannel#send()

    此代码将使用作者的标签,而不是尝试解析页脚中的提及。 如果您想在不 ping 用户的情况下使用用户的提及,可以将其放置在上面未列出的嵌入的任何部分。否则,他们的提及必须是消息内容的一部分。

    var myInfo = new discord.RichEmbed() // v11 only
      .setColor(...)
      .setAuthor(...)
      .addField(...)
      .setFooter(`Requested by ${message.author.tag}.`, message.author.displayAvatarURL);
    
    message.channel.send(myInfo)
      .catch(console.error);
    

    【讨论】:

    • 我的问题是,在嵌入中,在没有实际 ping 的情况下,提及没有标记用户。看起来像imgur.com/a/hbgm1TX
    • @SomePerson "由于页脚无法翻译提及,它显示为您看到的字符串。此外,用户将不会收到提及的通知在嵌入中。”无法在此答案中列出的嵌入属性中提及,也无法在嵌入中提及任何内容来 ping 用户。这些是 Discord API 中的限制。
    猜你喜欢
    • 2014-05-04
    • 2021-08-16
    • 2019-07-31
    • 1970-01-01
    • 2011-02-11
    • 2020-08-12
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    相关资源
    最近更新 更多