javascript - 如何使用 discord.js v13 为下拉菜单设置默认值
问题描述
我正在制作一个帮助命令,当您执行它时,会显示一个带有下拉菜单的嵌入以选择一个类别。代码工作得很好,但我只是想知道如何为下拉菜单设置默认值。任何人都可以帮助我吗?
我的代码是:
const helpEmbed = new Discord.MessageEmbed()
.setColor(696969)
.setTitle("No category selected")
const select = new Discord.MessageSelectMenu()
for (const category of categoriesFolders) {
const len = category.length;
if (fs.readdirSync(`./commands/${category}`).length < 1) {continue};
select.addOptions([{
label: uppercaseFirst(category.substring(0, len - '-commands'.length)),
value: category.substring(0, len - '-commands'.length)
}]);
}
const row = new Discord.MessageActionRow().addComponents(select);
const filter = (interaction) =>
interaction.isSelectMenu() &&
interaction.user.id === message.author.id;
const collector = message.channel.createMessageComponentCollector({
filter
})
collector.on('collect', async(collected) => {
const value = collected.values[0];
const embed = new Discord.MessageEmbed()
.setColor(696969)
const fls = fs.readdirSync(`./commands/${collected.values[0]}-commands`).filter(file => file.endsWith('.js'));
for (const cmd of fls) {
const command = require(`../${collected.values[0]}-commands/${cmd}`)
let val = `${command.name}`
embed.addField(val, command.description);
}
collected.message.edit({ embeds: [embed] }).catch(() => {});
await collected.deferUpdate();
})
message.channel.send({ embeds: [helpEmbed], components: [row] });
解决方案
要使下拉菜单值之一默认,您需要添加default
到您的值之一并将其设置为true
!
推荐阅读
- ios - 使用自定义标签栏图像和没有标签栏标题的插图时如何调整标签栏徽章位置?
- c++ - 如何将 32 字符(0/1)的序列转换为 32 位(uint32_t)?
- javascript - 将元素从Javascript中的for循环放入数组中
- java - 休眠查询不返回新数据
- ruby - 尝试安装 Ruby 调试器时出现错误
- julia - 如何在 Julia 中连接两个数据帧中的列和求和值?
- python - 如何安装 Spotipy 模块?
- mysql - 在生产环境中为 MySQL 数据库使用挂载卷
- java - 处理 3 中的碰撞检测
- java - 为什么创建 java DocumentBuilder 需要 2 个步骤,而不是 1 个步骤?