【问题标题】:Sending stickers in Discord.js V13在 Discord.js V13 中发送贴纸
【发布时间】:2021-11-14 12:06:36
【问题描述】:

我正在尝试转发通过 DM 发送到我的机器人的消息。 一切正常,除了发送贴纸。

每次我尝试发送带有贴纸的消息时,都会收到错误DiscordAPIError: Cannot use this sticker。

这是我的代码的一部分:

let userMessage = new discord.MessageEmbed().setDescription(message.content || "᲼")
let messageAttachment =
    message.attachments.size > 0 ? message.attachments.first().url : null
userMessage.setImage(messageAttachment)

let messagePayload = {
    content: null,
    embeds: [],
    stickers: null
}

messagePayload.content = `User <@${message.author.id}> said:`
messagePayload.embeds.push(userMessage)
messagePayload.stickers = message.stickers?.size > 0 ? [message.stickers.first()] : null
client.users.fetch(config.ids.me, false).then((user) => {
    user.send(messagePayload)
})

messagePayload 看起来像这样:

{
  content: 'User <@USERID> said:',
  embeds: [
    MessageEmbed {
      type: 'rich',
      title: null,
      description: '᲼',
      url: null,
      color: null,
      timestamp: null,
      fields: [],
      thumbnail: null,
      image: [Object],
      video: null,
      author: null,
      provider: null,
      footer: null
    }
  ],
  stickers: [
    Sticker {
      id: '749054660769218631',
      description: null,
      type: null,
      format: 'LOTTIE',
      name: 'Wave',
      packId: null,
      tags: null,
      available: null,
      guildId: null,
      user: null,
      sortValue: null
    }
  ]
}

在Docs 中关于发送贴纸,它只是说它必须是一个数组,要么是Sticker-Object,要么是Snowflake。由于我正在获取贴纸对象,因此我认为只需抓住它并将其传递给我的 messagePayload 就可以完成这项工作,但不知何故 API 不接受它。

discord.Intents.FLAGS.GUILD_EMOJIS_AND_STICKERS, 已设置,但它也不适用于标准贴纸(例如上面的 messagePayload)

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    事实证明,你只能从同一个公会内的公会发送贴纸。

    见Github Issue。

    【讨论】:

      猜你喜欢
      • 2021-10-17
      • 2022-01-20
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      • 2021-08-15
      • 2021-12-12
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多