这个错误通常表示你的代码在处理单选按钮时出现了问题。错误的原因是在InteractionCollector答案收集器向用户发送了一个按钮组,但用户已经点击了其中一个按钮,然后InteractionCollector又试图发送相同的按钮组,这会导致错误。
一个解决方案是在InteractionCollector回调函数中加上“acknowledge”方法,以告诉Discord.js收到了用户的响应,如下所示:
const collector = interaction.channel.createMessageComponentCollector({
componentType: 'BUTTON',
time: 15000
});
collector.on('collect', i => {
i.deferUpdate();
// 处理收集到的数据
// 在这里加上下面这句话
collector.stop('interaction_acknowledged');
});
collector.on('end', collected => {
// 在这里检查是否有相应的按钮被点击
console.log(`Collected ${collected.size} interactions.`);
});
这个解决方案会在用户点击按钮后自动停止收集器并发送“interaction_acknowledged”消息到控制台中,避免再次发送相同的按钮组导致错误的发生。