LibAC/src/main/java/dev/zontreck/ariaslib/terminal/ConsolePrompt.java

37 lines
902 B
Java

package dev.zontreck.ariaslib.terminal;
import dev.zontreck.ariaslib.events.CommandEvent;
import dev.zontreck.ariaslib.util.DelayedExecutorService;
import dev.zontreck.eventsbus.Bus;
import java.io.Console;
import java.lang.reflect.InvocationTargetException;
public class ConsolePrompt extends Task {
public static final Console console = System.console();
public ConsolePrompt() {
super("ConsolePrompt", true);
}
@Override
public void run() {
// Print a prompt
console.printf("\n" + Terminal.PREFIX + " > ");
String commandInput = console.readLine();
CommandEvent event = new CommandEvent(commandInput);
try {
if (!Bus.Post(event)) {
DelayedExecutorService.getInstance().schedule(new ConsolePrompt(), 2);
}
} catch (InvocationTargetException e) {
throw new RuntimeException(e);
} catch (IllegalAccessException e) {
throw new RuntimeException(e);
}
}
}