所以这是我的代码,我一次又一次地收到同样的错误。顺便说一下,我正在使用v14,所以任何帮助都将是一个很大的帮助。。。
{
let embed = new EmbedBuilder(
interaction.message.embeds[0]
).setColor(0x00FF00)
.setFooter({
text: client.user.tag
});
interaction.message.edit({
embeds: [embed],
components: [],
});
let ap_user = interaction.guild.members.cache.then(
embed.footer.get(client.user.tag)
);
我得到的错误如下:
TypeError: Cannot read properties of undefined (reading 'get')
第一个问题是embed.footer
返回undefined
,而不是您想要的EmbeddedFooterData。我假设您想要embed.data.footer
,它应该返回APIEmbed对象的Footer属性。
接下来,embed.data.footer.get()
不存在。您需要.text
属性。您的代码在尝试做什么方面相当混乱,但它看起来就像您试图从用户的标签中获取User
类。我不建议那样做。
与其从tag
(User#tag
(开始,不如从id
(User#id
(开始。这样,如果用户更改了他们的标签,他们仍然可以被识别。请注意,tag
既是User#username
属性,也是和User#discriminator
属性。
因此,如果你试图从嵌入页脚中的用户ID中获取用户,它应该是这样的:
let ap_user = await interaction.guild.members.fetch(embed.data.footer);
如果您使用的是.fetch()
方法,那么它们就不必在缓存中。您可以用.cache.get()
替换.fetch()
,如果它们被缓存,也会有同样的效果。
您的代码的完整示例如下:
{
let embed = new EmbedBuilder(interaction.message.embeds[0])
.setColor(ox00FF00)
.setFooter({ text: client.user.id });
interaction.message.edit({
embeds: [embed],
components: [],
});
let ap_user = interaction.guild.members.fetch(embed.data.footer.text);
现在,我不能百分之百肯定这会奏效,但我对此很有信心。如果它不告诉我,我会尽力帮你解决的!
希望这能有所帮助!