Как стать автором
Обновить

Комментарии 13

для начала не плохо бы на гитхаб залить
Репозиторий проекта есть.
Название не самое удачное. JConsole — это известный инструмент, входящий в стандартную поставку JDK.
Спасибо за информацию, исправлю!
А вас не смущает, что в пакете поставки JDK уже есть утилита JConsole, которая выполняет совершенно другую роль? Перед прочтением статьи, было мнение, что статья будет именно про эту утилиту.
Спасибо за информацию, исправлю!
Посмотрел код, думаю, Вам будет полезно почитать вот такой туториал по SPI:
https://docs.oracle.com/javase/tutorial/ext/basics/spi.html «Система плагинов» из коробки =)

Сама консоль — это будет ядро с какой-то функцией-заглушкой, которая будет вызываться, если команда не была найдена. А все остальные команды будут подкладываться к приложению отдельным jar, в котором будет реализация SPI команд-хендлера.

Кода будет меньше, код будет чище, плагины и модульность проекта из коробки.

Спасибо за совет. Буду посмотреть.

К сожалению, было поставлено условие: никаких сторонних решений, все только свое.

Никогда не понимал подобных условий.

По-моему, их не поймет никто кроме тех, кто такие условия ставит.

А контекстный диалог она поддерживает? Например: «создай», «что создать?» «игрок» «имя?» «Иван» «игрок Иван создан». Как я из кода понял что нет. Т.е параметры команды надо знать заранее. А вообще насколько сложнее сделать поддержку контекстного диалога? Может кто-нибудь может привести пример удачной реализации?

В данном случае это лишь вопрос реализации Executable. То есть, теоретически это сделать можно как-нибудь вот так:


Executable exec =  (args) -> {
    System.out.println("Prompt: ");
    String command = readLine(); // будем предполагать, что такая функция реализована.
    ...
}

Я подумаю, как добавить поддержку таких комманд "из коробки".

мне представлялось это как-то так: каждая команда имеет диалоговые варианты, если пользователь дает один из приемлимых вариантов, обработка передается следующей команде, и так пока цепочка команд не будет выполнена. Если мы не даем команде подходящего уточнения, ввод зацикливается на команду, пока мы не дадим приемлимый параметр, либо не дадим отбой. Но все это в какие то синтаксические деревья уходит если вовремя не остановится. Так что я вообще не уверен в целесообразности такого подхода.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории