我有这个投票命令,它创建了一个新的MessageEmbed,然后我希望机器人用4个表情对投票做出反应,以便能够在投票中投票。问题是当我使用回复()
函数进行交互时,机器人崩溃并给我这个错误:DiscordAPIError:交互已经被确认。
我试图获取回复,但似乎不起作用。代码如下:
const { SlashCommandBuilder } = require('@discordjs/builders');
module.exports = {
data: new SlashCommandBuilder()
.setName('poll')
.setDescription('Make a poll, (and you get to choose the options) ;)')
.addStringOption((option) =>
option
.setName('title')
.setDescription('The title of the poll embed.')
.setRequired(true)
)
.addStringOption((option) =>
option
.setName('option1')
.setDescription('1st option for the poll.')
.setRequired(true)
)
.addStringOption((option) =>
option
.setName('option2')
.setDescription('2nd option for the poll.')
.setRequired(true)
)
.addStringOption((option) =>
option
.setName('option3')
.setDescription('3rd option for the poll.')
.setRequired(false)
)
.addStringOption((option) =>
option
.setName('option4')
.setDescription('4th option for the poll.')
.setRequired(false)
)
async execute(client, interaction, Discord) {
let pollEmbed;
if (interaction.options.get('option3') && interaction.options.get('option4')) {
pollEmbed = new Discord.MessageEmbed()
.setColor('RANDOM')
.setTitle(interaction.options.get('title').value)
.setAuthor(`Poll by: ${interaction.user.username}`)
.setDescription(
`:regional_indicator_a: - ${interaction.options.get('option1').value}\n
:regional_indicator_b: - ${interaction.options.get('option2').value}\n
:regional_indicator_c: - ${interaction.options.get('option3').value}\n
:regional_indicator_d: - ${interaction.options.get('option4').value}`
)
.setTimestamp();
}
if (!interaction.options.get('option3') && !interaction.options.get('option4')) {
pollEmbed = new Discord.MessageEmbed()
.setColor('RANDOM')
.setTitle(interaction.options.get('title').value)
.setAuthor(`Poll by: ${interaction.user.username}`)
.setDescription(
`:regional_indicator_a: - ${interaction.options.get('option1').value}\n
:regional_indicator_b: - ${interaction.options.get('option2').value}\n`
)
.setTimestamp();
}
if (interaction.options.get('option3') && !interaction.options.get('option4')) {
pollEmbed = new Discord.MessageEmbed()
.setColor('RANDOM')
.setTitle(interaction.options.get('title').value)
.setAuthor(`Poll by: ${interaction.user.username}`)
.setDescription(
`:regional_indicator_a: - ${interaction.options.get('option1').value}\n
:regional_indicator_b: - ${interaction.options.get('option2').value}\n
:regional_indicator_c: - ${interaction.options.get('option3').value}\n`
)
.setTimestamp();
}
if (!interaction.options.get('option3') && interaction.options.get('option4'))
return interaction.reply('You have to put option 3 before option 4!');
message = interaction.reply({ embeds: [pollEmbed], fetchReply: true });
await message.react(':regional_indicator_a:');
await message.react(':regional_indicator_b:');
await message.react(':regional_indicator_c:');
await message.react(':regional_indicator_d:');
}
};
非常感谢。
你忘了等待你的互动。回复。
应该是这样的
js prettyprint-override">message = await interaction.reply({ embeds: [pollEmbed], fetchReply: true });
把这个回复留在这里供将来参考,另一个可能导致不一致错误的问题是:交互已经被确认,如果你有两个机器人实例同时运行,例如在某处的远程服务器和本地开发服务器上。
我做了一个bot,如果你输入一个命令,它会发送一个消息,如果你对那个消息做出反应,它会发送另一个消息,但是如果我再次运行这个命令,并对第一个消息做出反应,它会发送两次消息,我该如何修复它呢? null null
jd.showToast(OBJECT) 显示消息提示框 OBJECT 参数说明: 参数 类型 必填 说明 title String 是 提示的内容 icon String 否 图标,有效值 "success", "loading", "none" image String 否 自定义图标的本地路径,image 的优先级高于 icon duration Number 否 提示的延迟时间,单位毫秒,
时间线 8.14 投递 —— 8.19 笔试(行测) —— 8.23 一面 —— 8.25 二面 —— 9.1 三面 —— 9.8 offer意向 一面 / 业务面:40min 为什么选择双修这个方向? 期望自己3年后成为一个怎样的设计师? 你觉得一个好的交互设计师应该是什么样子的?...可以总结一下上述应该具备的3个特征 你觉得你过往的经历当中,你见过的你认为很优秀的交互设计师,或者说你认为可以
我是个新来的反应者,不懂什么。我有两个组件:父函数组件和子类组件。假设,从FC我需要从useState钩子传递非常简单的数组。当构造函数中的类内组件尝试注销道具时,结果是空数组。但在组件中成功渲染数组项。如果我不使用-useState钩子并将现有的array-console.log(props)结果传递给该数组。为什么会这样?我认为它与异步操作有关,但如果需要在基于props的构造函数中定义初始状
我的react组件的构造函数被调用了两次,但我不知道为什么。我正在使用react redux存储我的应用程序的语言。我有一个基于浏览器语言设置默认语言的函数。LoginPage是第一个获得render的组件,因此我在其构造函数中调用了我的函数。基本上,它所做的就是比较并分派一个动作。当我用redux开发工具检查我的状态时,我看到它被调度了两次。我在构造函数中打印了虚拟数据,它也打印了两次。 登录页
所以我在让我的自动角色发挥作用方面遇到了一个小问题,我一直在尝试通过消息对其进行排序。js和在reactionrole中。js,但它仍然给出了同样的问题,想知道是否有人可以帮助将不胜感激,因为我已经通过教程查看了它,除了一些差异,由于不同的文本/细节,它没有帮助 此外,如果这有助于避免错误,我将使用命令处理程序V2 反应角色。js message.js