Jump to content
Sign in to follow this  
Karimdjanov95

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

Recommended Posts

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

Хелпаните пожалуйста, как сделать вызов войс команды через "пробел".
У меня есть команда, вызываемая через 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;
        }

 

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

Edited by Karimdjanov95

Share this post


Link to post
Share on other sites

Пример: 


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

 

Share this post


Link to post
Share on other sites
17 минут назад, Rolo сказал:

Пример: 



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

 

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

Edited by Karimdjanov95

Share this post


Link to post
Share on other sites

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

Edited by Tetris

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
       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 сказал:

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

Попробуй

Edited by Evolution
  • Upvote 1

Share this post


Link to post
Share on other sites
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" />

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

Edited by Karimdjanov95

Share this post


Link to post
Share on other sites

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

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

Edited by Evolution
  • Upvote 1

Share this post


Link to post
Share on other sites
1 минуту назад, Evolution сказал:

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

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

image.thumb.png.952e98860b11a98e15615e827ed99131.png

Share this post


Link to post
Share on other sites

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

image.thumb.png.2edc23be44421e0421316e5e81050a79.png

Edited by Evolution
  • Upvote 1

Share this post


Link to post
Share on other sites
1 минуту назад, Evolution сказал:

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

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

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

Edited by Karimdjanov95

Share this post


Link to post
Share on other sites

Мне нужно, что бы все команды работали по прежнему с "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" />

 

Edited by Karimdjanov95

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
2 минуты назад, Evolution сказал:

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

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

Edited by Karimdjanov95

Share this post


Link to post
Share on other sites
10 минут назад, Evolution сказал:

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

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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;
        }

 

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...