消息 Select 菜单有效,但它仍然提供 "this interaction failed"
Message Select menu works but it still gives "this interaction failed"
我正在使用消息 select 菜单为我的机器人制作帮助命令。我让整个工作正常,但只出现 1 个问题,它说“此交互失败”,即使它有效。我可以忽略它并使用该机器人,但我不喜欢它每次都显示的事实,如果有人能告诉我如何修复它会很好。这是代码
let menu = new Discord.MessageSelectMenu()
.setCustomId("menu")
.setPlaceholder("Help commands...")
.addOptions(
[
{
label: "Fun commands",
description: "Commands to timepass",
value: "fun",
},
{
label: "Server commands",
description: "Commands to get info about server",
value: "serverinfo",
},
{
label: "DANGEROUS COMMANDS",
description: "Commands to be abused",
value: "abuseanddanger",
},
{
label: "User commands",
description: "Commands to get info about user",
value: "usercommands",
},
{
label: "Bot commands",
description: "Commands to get info about bot",
value: "botinfo",
}, {
label: "Utility commands",
description: "Commands to avoid manual work",
value: "utility",
},
{
label: "Additional commands",
description: "Commands not for use for functionality ",
value: "extra",
}
]
)```
```if (message.content.toLowerCase() === prefix + "help") {
let row = new Discord.MessageActionRow()
.addComponents(menu)
let helpEmb = new Discord.MessageEmbed()
.setTitle("Shadow Help")
.setColor("GREEN")
.setImage("https://i.imgur.com/MImCgPp.png")
message.channel.send({ embeds: [helpEmb], components: [row] }).then((msg) => {
let collector = message.channel.createMessageComponentCollector({ componentType: "SELECT_MENU", customId: "menu" });
collector.on("collect", (collected) => {
let value = collected.values[0]
if (value === "fun") {
msg.edit({ embeds: [funEmb] })
}
if (value === "serverinfo") {
msg.edit({ embeds: [serverEmb] })
}
if (value === "abuseanddanger") {
msg.edit({ embeds: [abuseEmb] })
}
if (value === "usercommands") {
msg.edit({ embeds: [userEmb] })
}
if (value === "botinfo") {
msg.edit({ embeds: [botEmb] })
}
if (value === "extra") {
msg.edit({ embeds: [extraEmb] })
}
if (value === "utility") {
msg.edit({ embeds: [utilityEmb] })
}
})
})
let abuseEmb = new Discord.MessageEmbed()
.setTitle("DANGEROUS COMMANDS")
.setColor("RED")
.setDescription(
"These commands are dangerous and can be abused. Use them at your own risk."
)
let botEmb = new Discord.MessageEmbed()
.setTitle("Bot commands")
.setColor("BLUE")
.setDescription(
"Commands of bot ."
)
let extraEmb = new Discord.MessageEmbed()
.setTitle("Additional commands")
.setColor("YELLOW")
.setDescription(
"Some additional commands")
let funEmb = new Discord.MessageEmbed()
.setTitle("Fun commands")
.setColor("YELLOW")
.setDescription("Fun commands")
let serverEmb = new Discord.MessageEmbed()
.setTitle("Server commands")
.setColor("BLUE")
.setDescription("General commands of server")
let userEmb = new Discord.MessageEmbed()
.setTitle("User commands")
.setColor("YELLOW")
.setDescription("User commands")
let utilityEmb = new Discord.MessageEmbed()
.setTitle("Utility commands")
.setColor("ORANGE")
.setDescription("Utility commands")
}
})
错误发生是因为当您点击MessageSelectMenu
时,它没有被回复。所以你所要做的就是将你的代码更改为:
let menu = new Discord.MessageSelectMenu()
.setCustomId("menu")
.setPlaceholder("Help commands...")
.addOptions(
[
{
label: "Fun commands",
description: "Commands to timepass",
value: "fun",
},
{
label: "Server commands",
description: "Commands to get info about server",
value: "serverinfo",
},
{
label: "DANGEROUS COMMANDS",
description: "Commands to be abused",
value: "abuseanddanger",
},
{
label: "User commands",
description: "Commands to get info about user",
value: "usercommands",
},
{
label: "Bot commands",
description: "Commands to get info about bot",
value: "botinfo",
}, {
label: "Utility commands",
description: "Commands to avoid manual work",
value: "utility",
},
{
label: "Additional commands",
description: "Commands not for use for functionality ",
value: "extra",
}
]
)```
```if (message.content.toLowerCase() === prefix + "help") {
let row = new Discord.MessageActionRow()
.addComponents(menu)
let helpEmb = new Discord.MessageEmbed()
.setTitle("Shadow Help")
.setColor("GREEN")
.setImage("https://i.imgur.com/MImCgPp.png")
message.channel.send({ embeds: [helpEmb], components: [row] }).then((msg) => {
let collector = message.channel.createMessageComponentCollector({ componentType: "SELECT_MENU", customId: "menu" });
collector.on("collect", (collected) => {
let value = collected.values[0]
if (value === "fun") {
collected.update({ embeds: [funEmb] })
}
if (value === "serverinfo") {
collected.update({ embeds: [serverEmb] })
}
if (value === "abuseanddanger") {
collected.update({ embeds: [abuseEmb] })
}
if (value === "usercommands") {
collected.update({ embeds: [userEmb] })
}
if (value === "botinfo") {
collected.update({ embeds: [botEmb] })
}
if (value === "extra") {
collected.update({ embeds: [extraEmb] })
}
if (value === "utility") {
collected.update({ embeds: [utilityEmb] })
}
})
})
let abuseEmb = new Discord.MessageEmbed()
.setTitle("DANGEROUS COMMANDS")
.setColor("RED")
.setDescription(
"These commands are dangerous and can be abused. Use them at your own risk."
)
let botEmb = new Discord.MessageEmbed()
.setTitle("Bot commands")
.setColor("BLUE")
.setDescription(
"Commands of bot ."
)
let extraEmb = new Discord.MessageEmbed()
.setTitle("Additional commands")
.setColor("YELLOW")
.setDescription(
"Some additional commands")
let funEmb = new Discord.MessageEmbed()
.setTitle("Fun commands")
.setColor("YELLOW")
.setDescription("Fun commands")
let serverEmb = new Discord.MessageEmbed()
.setTitle("Server commands")
.setColor("BLUE")
.setDescription("General commands of server")
let userEmb = new Discord.MessageEmbed()
.setTitle("User commands")
.setColor("YELLOW")
.setDescription("User commands")
let utilityEmb = new Discord.MessageEmbed()
.setTitle("Utility commands")
.setColor("ORANGE")
.setDescription("Utility commands")
}
})
我正在使用消息 select 菜单为我的机器人制作帮助命令。我让整个工作正常,但只出现 1 个问题,它说“此交互失败”,即使它有效。我可以忽略它并使用该机器人,但我不喜欢它每次都显示的事实,如果有人能告诉我如何修复它会很好。这是代码
let menu = new Discord.MessageSelectMenu()
.setCustomId("menu")
.setPlaceholder("Help commands...")
.addOptions(
[
{
label: "Fun commands",
description: "Commands to timepass",
value: "fun",
},
{
label: "Server commands",
description: "Commands to get info about server",
value: "serverinfo",
},
{
label: "DANGEROUS COMMANDS",
description: "Commands to be abused",
value: "abuseanddanger",
},
{
label: "User commands",
description: "Commands to get info about user",
value: "usercommands",
},
{
label: "Bot commands",
description: "Commands to get info about bot",
value: "botinfo",
}, {
label: "Utility commands",
description: "Commands to avoid manual work",
value: "utility",
},
{
label: "Additional commands",
description: "Commands not for use for functionality ",
value: "extra",
}
]
)```
```if (message.content.toLowerCase() === prefix + "help") {
let row = new Discord.MessageActionRow()
.addComponents(menu)
let helpEmb = new Discord.MessageEmbed()
.setTitle("Shadow Help")
.setColor("GREEN")
.setImage("https://i.imgur.com/MImCgPp.png")
message.channel.send({ embeds: [helpEmb], components: [row] }).then((msg) => {
let collector = message.channel.createMessageComponentCollector({ componentType: "SELECT_MENU", customId: "menu" });
collector.on("collect", (collected) => {
let value = collected.values[0]
if (value === "fun") {
msg.edit({ embeds: [funEmb] })
}
if (value === "serverinfo") {
msg.edit({ embeds: [serverEmb] })
}
if (value === "abuseanddanger") {
msg.edit({ embeds: [abuseEmb] })
}
if (value === "usercommands") {
msg.edit({ embeds: [userEmb] })
}
if (value === "botinfo") {
msg.edit({ embeds: [botEmb] })
}
if (value === "extra") {
msg.edit({ embeds: [extraEmb] })
}
if (value === "utility") {
msg.edit({ embeds: [utilityEmb] })
}
})
})
let abuseEmb = new Discord.MessageEmbed()
.setTitle("DANGEROUS COMMANDS")
.setColor("RED")
.setDescription(
"These commands are dangerous and can be abused. Use them at your own risk."
)
let botEmb = new Discord.MessageEmbed()
.setTitle("Bot commands")
.setColor("BLUE")
.setDescription(
"Commands of bot ."
)
let extraEmb = new Discord.MessageEmbed()
.setTitle("Additional commands")
.setColor("YELLOW")
.setDescription(
"Some additional commands")
let funEmb = new Discord.MessageEmbed()
.setTitle("Fun commands")
.setColor("YELLOW")
.setDescription("Fun commands")
let serverEmb = new Discord.MessageEmbed()
.setTitle("Server commands")
.setColor("BLUE")
.setDescription("General commands of server")
let userEmb = new Discord.MessageEmbed()
.setTitle("User commands")
.setColor("YELLOW")
.setDescription("User commands")
let utilityEmb = new Discord.MessageEmbed()
.setTitle("Utility commands")
.setColor("ORANGE")
.setDescription("Utility commands")
}
})
错误发生是因为当您点击MessageSelectMenu
时,它没有被回复。所以你所要做的就是将你的代码更改为:
let menu = new Discord.MessageSelectMenu()
.setCustomId("menu")
.setPlaceholder("Help commands...")
.addOptions(
[
{
label: "Fun commands",
description: "Commands to timepass",
value: "fun",
},
{
label: "Server commands",
description: "Commands to get info about server",
value: "serverinfo",
},
{
label: "DANGEROUS COMMANDS",
description: "Commands to be abused",
value: "abuseanddanger",
},
{
label: "User commands",
description: "Commands to get info about user",
value: "usercommands",
},
{
label: "Bot commands",
description: "Commands to get info about bot",
value: "botinfo",
}, {
label: "Utility commands",
description: "Commands to avoid manual work",
value: "utility",
},
{
label: "Additional commands",
description: "Commands not for use for functionality ",
value: "extra",
}
]
)```
```if (message.content.toLowerCase() === prefix + "help") {
let row = new Discord.MessageActionRow()
.addComponents(menu)
let helpEmb = new Discord.MessageEmbed()
.setTitle("Shadow Help")
.setColor("GREEN")
.setImage("https://i.imgur.com/MImCgPp.png")
message.channel.send({ embeds: [helpEmb], components: [row] }).then((msg) => {
let collector = message.channel.createMessageComponentCollector({ componentType: "SELECT_MENU", customId: "menu" });
collector.on("collect", (collected) => {
let value = collected.values[0]
if (value === "fun") {
collected.update({ embeds: [funEmb] })
}
if (value === "serverinfo") {
collected.update({ embeds: [serverEmb] })
}
if (value === "abuseanddanger") {
collected.update({ embeds: [abuseEmb] })
}
if (value === "usercommands") {
collected.update({ embeds: [userEmb] })
}
if (value === "botinfo") {
collected.update({ embeds: [botEmb] })
}
if (value === "extra") {
collected.update({ embeds: [extraEmb] })
}
if (value === "utility") {
collected.update({ embeds: [utilityEmb] })
}
})
})
let abuseEmb = new Discord.MessageEmbed()
.setTitle("DANGEROUS COMMANDS")
.setColor("RED")
.setDescription(
"These commands are dangerous and can be abused. Use them at your own risk."
)
let botEmb = new Discord.MessageEmbed()
.setTitle("Bot commands")
.setColor("BLUE")
.setDescription(
"Commands of bot ."
)
let extraEmb = new Discord.MessageEmbed()
.setTitle("Additional commands")
.setColor("YELLOW")
.setDescription(
"Some additional commands")
let funEmb = new Discord.MessageEmbed()
.setTitle("Fun commands")
.setColor("YELLOW")
.setDescription("Fun commands")
let serverEmb = new Discord.MessageEmbed()
.setTitle("Server commands")
.setColor("BLUE")
.setDescription("General commands of server")
let userEmb = new Discord.MessageEmbed()
.setTitle("User commands")
.setColor("YELLOW")
.setDescription("User commands")
let utilityEmb = new Discord.MessageEmbed()
.setTitle("Utility commands")
.setColor("ORANGE")
.setDescription("Utility commands")
}
})