Перейти к содержанию
Авторизация  
Karimdjanov95

Вызов войс команды

Рекомендуемые сообщения

Доброе утро, Уважаемые.

Хелпаните пожалуйста, как сделать вызов войс команды через "пробел".
У меня есть команда, вызываемая через html
 

<button value="Подтвердить" action="bypass -h voice_test" width=60 height=20" />

Я же хочу сделать так, с пробелом после команды:

<button value="Подтвердить" action="bypass -h voice_cmd test" width=60 height=20" />

 

Вот исходный код:
 

        else if (_command.startsWith("voice_")) {
            String command;
            String params = "";

            // ------------------------------ Parse command --------------------------------
            if (_command.indexOf(" ") != -1) {
                command = _command.substring(6, _command.indexOf(" "));
                params = _command.substring(_command.indexOf(" ") + 1);
            } else {
                command = _command.substring(6);
            }

            // ------------------------------ Execute command ------------------------------
            IVoicedCommandHandler vc = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command);

            if (vc == null) {
                return;
            }

            vc.useVoicedCommand(command, activeChar, params);
            return;
        }

 

Заранее благодарю.

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Пример: 


            String[] tmp = command.substring(6).split(" "); // там где .split(" "); в скобочках - разделительный знак, здесь стоит пробел, но всунуть можно любой
            String content = getPwHtm("bd/"+tmp[0]+""); 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, Rolo сказал:

Пример: 



            String[] tmp = command.substring(6).split(" "); // там где .split(" "); в скобочках - разделительный знак, здесь стоит пробел, но всунуть можно любой
            String content = getPwHtm("bd/"+tmp[0]+""); 

 

Не получается подогнать под мои исходы. (шаблон выше)
ps: исходники Lucera 1.7

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы хотите что бы команда вызывалась нажимая пробел? Just пробел?)

Изменено пользователем Tetris

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уже перерыл все исходники, ковырялся по поискам, безрезультатно. Кто знает, как сделать, помогите, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
       if(_command.startsWith("voice_cmd")){
            String[] commandSplit = _command.split(" ");
            String command, params;

	    if(!"voice_cmd".equalsIgnoreCase(commandSplit[0])){
                return;
            }
            
            if(commandSplit.length < 2){
                return;
            }

            command = commandSplit[1];
            params = _command.substring(commandSplit[0].length() + " ".length() + commandSplit[1].length() + " ".length());

            IVoicedCommandHandler vc = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command);

            if (vc == null) {
                return;
            }

            vc.useVoicedCommand(command, activeChar, params);
            return;
        }

 

1 час назад, Karimdjanov95 сказал:

Уже перерыл все исходники, ковырялся по поискам, безрезультатно. Кто знает, как сделать, помогите, пожалуйста.

Попробуй

Изменено пользователем Evolution
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 минут назад, Evolution сказал:

       if(_command.startsWith("voice_cmd")){
            String[] commandSplit = _command.split(" ");
            String command, params;

	    if(!"voice_cmd".equalsIgnoreCase(commandSplit[0])){
                return;
            }
            
            if(commandSplit.length < 2){
                return;
            }

            command = commandSplit[1];
            params = _command.substring(commandSplit[0].length() + " ".length() + commandSplit[1].length() + " ".length());

            IVoicedCommandHandler vc = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command);

            if (vc == null) {
                return;
            }

            vc.useVoicedCommand(command, activeChar, params);
            return;
        }

 

Попробуй

Компиляция прошла без ошибок, но при нажатии на кнопку

<button value="Подтвердить" action="bypass -h voice_cmd test" width=60 height=20 back="Lineworld-su.up6" fore="Lineworld-su.up6-6" />

ничего не происходит

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ты хоть не просто копирнул то?) вначале как у себя сделай else if

+воис команда есть такая test?

Изменено пользователем Evolution
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Evolution сказал:

Ты хоть не просто копирнул то?) вначале как у себя сделай else if

Нет конечно :D

image.thumb.png.952e98860b11a98e15615e827ed99131.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так ты взамен верхнему своему вставляй епрст.

image.thumb.png.2edc23be44421e0421316e5e81050a79.png

Изменено пользователем Evolution
  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Evolution сказал:

так ты взамен верхнему своему вставляй епрст.

так и он мне нужен)), да и даже если взамен поставить, такая-же фигня.

Мне нужен как обычный "voice_" так и "voice_cmd"

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Мне нужно, что бы все команды работали по прежнему с "voice_"
и сделать меню в html, что бы команды можно было вводить, т.е.

<td align=center><font color=ff0000>Ввведите команду:</font></td><td align=center><edit var="code" width=180 height=10></td>
  
<button value="Подтвердить" action="bypass -h voice_cmd $code" width=60 height=20 back="Lineworld-su.up6" fore="Lineworld-su.up6-6" />

 

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Karimdjanov95 сказал:

Мне нужно, что бы все команды работали по прежнему, с "voice_"
и сделать меню в html, что бы команды можно было вводить, т.е.


<td align=center><font color=ff0000>Ввведите команду:</font></td><td align=center><edit var="code" width=180 height=10></td>
  
<button value="Подтвердить" action="bypass -h voice_cmd $code" width=60 height=20 back="Lineworld-su.up6" fore="Lineworld-su.up6-6" />

 

ну, так в cmd тогда делай код а не тут.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Evolution сказал:

ну, так в cmd тогда делай код а не тут.

Так его изначально не было,  voice_cmd я сам создал продублировав сам voice_

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 минут назад, Evolution сказал:

ну, так в cmd тогда делай код а не тут.

и даже, если его вписать в сам "voice_" - такая же батва. Кнопка не реагирует.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, Karimdjanov95 сказал:

и даже, если его вписать в сам "voice_" - такая же батва. Кнопка не реагирует.

все else if с воис командами удали и эту вставь.
Если прилетает "voice_cmd test" то выполняем команду test. Если приходит что-то иное типо "voice_start param1 param2" то выполняется start с параметрами param1 и param2 соответсвенно. 

else if(_command.startsWith("voice_")){
            String[] commandSplit = _command.split(" ");
            String command, params = "";

            if("voice_cmd".equalsIgnoreCase(commandSplit[0])){
                if(commandSplit.length < 2){
                    return;
                }

                command = commandSplit[1];
                params = _command.substring(commandSplit[0].length() + " ".length() + commandSplit[1].length());
            } else {
                if (_command.indexOf(" ") != -1) {
                    command = _command.substring(6, _command.indexOf(" "));
                    params = _command.substring(_command.indexOf(" ") + 1);
                } else {
                    command = _command.substring(6);
                }
            }

            IVoicedCommandHandler vc = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command);

            if (vc == null) {
                return;
            }

            vc.useVoicedCommand(command, activeChar, params);
            return;
        }

 

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Evolution сказал:

все else if с воис командами удали и эту вставь.
Если прилетает "voice_cmd test" то выполняем команду test. Если приходит что-то иное типо "voice_start param1 param2" то выполняется start с параметрами param1 и param2 соответсвенно. 


else if(_command.startsWith("voice_")){
            String[] commandSplit = _command.split(" ");
            String command, params = "";

            if("voice_cmd".equalsIgnoreCase(commandSplit[0])){
                if(commandSplit.length < 2){
                    return;
                }

                command = commandSplit[1];
                params = _command.substring(commandSplit[0].length() + " ".length() + commandSplit[1].length());
            } else {
                if (_command.indexOf(" ") != -1) {
                    command = _command.substring(6, _command.indexOf(" "));
                    params = _command.substring(_command.indexOf(" ") + 1);
                } else {
                    command = _command.substring(6);
                }
            }

            IVoicedCommandHandler vc = VoicedCommandHandler.getInstance().getVoicedCommandHandler(command);

            if (vc == null) {
                return;
            }

            vc.useVoicedCommand(command, activeChar, params);
            return;
        }

 

Работает ^_^. Спасибо большое ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...