X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=src%2Fkaka%2Fcakelight%2FConsole.java;h=873dac145e687d926aa197550853525609f65365;hb=9f2bc172dfe8fbb62e8b7a58120e165722a198aa;hp=cf72cceca85c97b3c9c97a96f449e3be3c5540e1;hpb=2b49e4e255f8591fb730f88e71b6b006008ccd3d;p=kaka%2Fcakelight.git diff --git a/src/kaka/cakelight/Console.java b/src/kaka/cakelight/Console.java index cf72cce..873dac1 100644 --- a/src/kaka/cakelight/Console.java +++ b/src/kaka/cakelight/Console.java @@ -11,18 +11,18 @@ import java.util.Map; public class Console extends Thread { private CakeLight cakelight; private Configuration config; - private BufferedReader reader; private Map commands = new HashMap<>(); private List commandList = new ArrayList<>(); - public static void start(CakeLight cakelight, Configuration config) { - new Console(cakelight, config).start(); + public static Console start(CakeLight cakelight, Configuration config) { + Console console = new Console(cakelight, config); + console.start(); + return console; } private Console(CakeLight cakelight, Configuration config) { this.cakelight = cakelight; this.config = config; - reader = new BufferedReader(new InputStreamReader(System.in)); register(new HelpCommand()); register(Commands.quit()); register(Commands.video()); @@ -32,6 +32,7 @@ public class Console extends Thread { register(Commands.saturation()); register(Commands.ambientMode()); register(Commands.twoColorNoiseMode()); + register(Commands.sunriseMode()); } public CakeLight getCakelight() { @@ -69,27 +70,30 @@ public class Console extends Thread { @Override public void run() { - while (true) { - System.out.print("> "); - try { - String input = reader.readLine(); - String[] splitInput = input.split("\\s+", 2); - String name = splitInput[0]; - String[] args = splitInput.length == 2 - ? splitInput[1].split("\\s+") - : new String[]{}; + try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))) { + while (true) { + System.out.print("> "); + String input = reader.readLine(); + handleInput(input); + } + } catch (IOException e) { + System.out.println("Error reading from command line"); + } + } - Command cmd = commands.get(name); - if (cmd != null) { - cmd.activate(this, args); - } else { - out("no command named '" + name + "'"); - } - } catch (IOException e) { - System.out.println("Error reading from command line"); - break; - } - } + void handleInput(String input) { + String[] splitInput = input.split("\\s+", 2); + String name = splitInput[0]; + String[] args = splitInput.length == 2 + ? splitInput[1].split("\\s+") + : new String[]{}; + + Command cmd = commands.get(name); + if (cmd != null) { + cmd.activate(this, args); + } else { + out("no command named '" + name + "'"); + } } void out(String text) {