【发布时间】: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