Karimdjanov95 10 Опубликовано 28 марта, 2021 (изменено) Доброе утро, Уважаемые. Хелпаните пожалуйста, как сделать вызов войс команды через "пробел". У меня есть команда, вызываемая через 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; } Заранее благодарю. Изменено 28 марта, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Rolo 279 Опубликовано 28 марта, 2021 Пример: String[] tmp = command.substring(6).split(" "); // там где .split(" "); в скобочках - разделительный знак, здесь стоит пробел, но всунуть можно любой String content = getPwHtm("bd/"+tmp[0]+""); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 28 марта, 2021 (изменено) 17 минут назад, Rolo сказал: Пример: String[] tmp = command.substring(6).split(" "); // там где .split(" "); в скобочках - разделительный знак, здесь стоит пробел, но всунуть можно любой String content = getPwHtm("bd/"+tmp[0]+""); Не получается подогнать под мои исходы. (шаблон выше) ps: исходники Lucera 1.7 Изменено 28 марта, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 28 марта, 2021 up, помогите Please! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 Up! Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Tetris 4 Опубликовано 29 марта, 2021 (изменено) Вы хотите что бы команда вызывалась нажимая пробел? Just пробел?) Изменено 29 марта, 2021 пользователем Tetris Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 Уже перерыл все исходники, ковырялся по поискам, безрезультатно. Кто знает, как сделать, помогите, пожалуйста. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 29 марта, 2021 (изменено) 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 сказал: Уже перерыл все исходники, ковырялся по поискам, безрезультатно. Кто знает, как сделать, помогите, пожалуйста. Попробуй Изменено 29 марта, 2021 пользователем Evolution 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 (изменено) 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" /> ничего не происходит Изменено 29 марта, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 29 марта, 2021 (изменено) Ты хоть не просто копирнул то?) вначале как у себя сделай else if +воис команда есть такая test? Изменено 29 марта, 2021 пользователем Evolution 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 1 минуту назад, Evolution сказал: Ты хоть не просто копирнул то?) вначале как у себя сделай else if Нет конечно Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 29 марта, 2021 (изменено) так ты взамен верхнему своему вставляй епрст. Изменено 29 марта, 2021 пользователем Evolution 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 (изменено) 1 минуту назад, Evolution сказал: так ты взамен верхнему своему вставляй епрст. так и он мне нужен)), да и даже если взамен поставить, такая-же фигня. Мне нужен как обычный "voice_" так и "voice_cmd" Изменено 29 марта, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 (изменено) Мне нужно, что бы все команды работали по прежнему с "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" /> Изменено 29 марта, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 29 марта, 2021 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 тогда делай код а не тут. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 (изменено) 2 минуты назад, Evolution сказал: ну, так в cmd тогда делай код а не тут. Так его изначально не было, voice_cmd я сам создал продублировав сам voice_ Изменено 29 марта, 2021 пользователем Karimdjanov95 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 10 минут назад, Evolution сказал: ну, так в cmd тогда делай код а не тут. и даже, если его вписать в сам "voice_" - такая же батва. Кнопка не реагирует. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Evolution 243 Опубликовано 29 марта, 2021 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; } 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Karimdjanov95 10 Опубликовано 29 марта, 2021 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; } Работает . Спасибо большое )) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты