Я делаю команду справки для своего бота с меню выбора сообщений. У меня все работает нормально, но появляется только 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")
}
})
Да, это работает. Тысм!