#discord #discord.js
#Discord #discord.js
Вопрос:
Я пытаюсь создать /config <subcommand>
систему для своего бота, но она выдает ошибку с телом команды slash. Вот текущее тело, которое у меня есть для команды
name: 'config',
description: "The config system for the bot",
userPermissions: ['MANAGE_GUILD'],
options: [
{
name: 'prefix',
description: "Set a different prefifor the server",
type: "SUB_COMMAND",
options: [
{name: "new-prefix", description: "The new prefix that you want to set", type: "STRING", required: true}
]
}
]
Ошибка
DiscordAPIError[50035]: Invalid Form Body
0.options[0].options[0].type[NUMBER_TYPE_COERCE]: Value "STRING" is not int.
0.options[0].type[NUMBER_TYPE_COERCE]: Value "SUB_COMMAND" is not int.
Я никогда раньше не сталкивался с этой ошибкой
Ответ №1:
Поскольку вы используете необработанный json для регистрации своих команд, тип ваших параметров должен быть целым числом, а не строкой.
Почему? Потому что Discord API принимает целые числа, а не строки.
Каждый тип имеет связанный идентификатор integer, как описано здесь, который вы должны использовать вместо строк.
В вашем случае type: "SUB_COMMAND"
должно быть type: 1
Почему типы параметров документируются как строки в discord.js документы? Потому что они сделали это строками для улучшения читаемости кода. Библиотека «преобразует» эти строки в int перед запросом API. Но в этом случае вы используете необработанный json.
Вы можете проверить, есть ли другие варианты команд приложения, указанные в документации разработчика Discord
Комментарии:
1. Зачем дважды указывать ссылку на документацию?
2. Привет, извините, но я уже исправил ошибку, прежде чем вы ответили на это. Но спасибо за ответ!