NodeJS 不一致菜单选择交互失败

llmtgqce  于 2023-03-17  发布在  Node.js
关注(0)|答案(1)|浏览(184)

我试图创建一个带有特定选项的菜单,但当我试图选择其中一个选项时,它说交互失败。这是我第一次在discord上使用菜单,我试图按照文档操作,但我似乎找不到我做错了什么。

const mvpCollector = interaction.channel.createMessageComponentCollector({
                  componentType: 'SELECT_MENU',
                  time: 30000,
                });
                
                mvpCollector.on('collect', async (menuInteraction) => {
                  const mvp = menuInteraction.values[0];
                  
                  if (!team1.has(mvp) && !team2.has(mvp)) {
                    interaction.followUp({content: `${mvp} wasn't in the game!`});
                  } else {
                    mapBanendEmbed.addFields({name: 'MVP', value: `${mvp}`});
                
                    interaction.followUp({
                      embeds: [mapBanendEmbed],
                      components: []
                    });
                  }
                });
                
                mvpCollector.on('end', async (collected) => {
                  if (collected.size === 0) {
                    interaction.followUp({content: 'No MVP was selected.'});
                  }
                });

当从选择菜单中选择一个用户作为MVP时,它应该编辑一个嵌入并将该用户设置为字段中的MVP,但它只是给我一个交互失败错误。

q43xntqr

q43xntqr1#

组件类型在v14中已更改。请在创建收集器时使用此选项:

const { ComponentType } = require('discord.js');

const mvpCollector = interaction.channel.createMessageComponentCollector({
  componentType: ComponentType.SelectMenu, // This line changed
  time: 30000,
});

此外,如果您试图编辑原始消息,我认为您会希望使用.update()而不是.followUp()

相关问题