discord.js ошибка загрузки API командной строки с косой чертой

#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. Привет, извините, но я уже исправил ошибку, прежде чем вы ответили на это. Но спасибо за ответ!