#Get a list of slash commands and text commands.
1 messages · Page 1 of 1 (latest)
Зависит от того, что именно нужно
Сразу сказать - ApplicationCommandType.Message - это контекстные команды в контекстных меню мообщений
А CommandService используется для текстовых команд
Да, они мне тоже нужны. У меня будет, так сказать смешанный тип команд.
Мне нужно получить список команд, чтобы их так сказать занести в базу данных. Для чего? Не думаю, что имеет смысл)
Да, мне больше для админки надо)
Если нужны просто модели команд без ID шников - то ваш вариант собсна нормальный вполне
Хм.. А возможно получить с ID?
Случайно не var discordCommands = (await client.GetGlobalApplicationCommandsAsync()); ?
Именно оно
Оно как раз коллекцию возвращает, и из нeё можно с помощью Linq вытянуть нужного типа
Ага, значит вариант правильный. Тогда вопрос, возможно ли получить при выполение команды (текстовой) её наименование?
var command = _commandService.Search(context, argPos);
`if (command.IsSuccess)
{
await _commandAccessExecuteCommand.CheckAccess(message.Author.Id, command.Commands[0].Command.Name, ApplicationCommandType.Message, CancellationToken);
}`
.Where(x => x.Type == )
Это я понимаю. И уже использую)
А вот тут я уже хз
Ни разу CommandService не юзал
client.MessageReceived += async message =>
message, а именно SocketMessage, содержит в себе сообщение. Я как-то могу получить эту команду? Просто, как-то делать костыль, который будет вытягивать её название, а потом, искать в бд по именни. Как по мне, легче получить её ID, но вопрос КАК!?
Один из вариантов использовать туже инструкцию сверху. GetGlobalApplicationCommandsAsync, но верное ли данное решение?
Вы немного путаете :))
Текстовые команды просто парсят текст из сообщения
А Application команды - они уже регистрируются и обрабатываются принципиально по другому
Стоп, так я выходит не могу текстовый команды получить с помощью: GetGlobalApplicationCommandsAsync?
Нет
Ух...
Этот метод вытягивает только слэш команды + user & message команды из контекстным меню
(которые во вкладке Приложения, если ПКМ сделать по сообщения/юзеру)
Эх, эх, эх.. Обидно...
Текстовые команды же существуют только на стороне бота
Ага, а насчёт SlashCommand, у них ограничение 200 на гильдию?
Что-то запамятовал, данный вопрос.
И без разницы, какого типа? Slash или message?
Ааа, понял
Спасибо.
Тогда, остается вопрос, как текстовые мне получать)
Только из комманд сервайса вытягивать как то
А так, как ID, им низя задать, буду Guid использовать.
Хорошо, а насчёт, как вытянуть команду из сообщения. Возможно?
Но, всё же за помощь, благодарю. Буду думать, как получить список текстовых команд)
CommandService.Commands как раз
щас бегло по докам чекнул - вроде как CommandService.Search() с содержанием сообщения, чекнуть, что результат IsSuccess,
И в свойстве Commands будут найденные команды и уже из них выбирать нужную
Да, благодарю. Я это и сделал.
Я думал, есть вариант более.. Что-ли приятный)
Но, спасибо.

✅