mirror of
https://github.com/Melledy/LunarCore.git
synced 2025-12-13 22:04:36 +01:00
Replace console with a jline implementation
This commit is contained in:
@@ -79,6 +79,9 @@ dependencies {
|
|||||||
implementation group: 'de.bwaldvogel', name: 'mongo-java-server', version: '1.44.0'
|
implementation group: 'de.bwaldvogel', name: 'mongo-java-server', version: '1.44.0'
|
||||||
implementation group: 'de.bwaldvogel', name: 'mongo-java-server-h2-backend', version: '1.44.0'
|
implementation group: 'de.bwaldvogel', name: 'mongo-java-server-h2-backend', version: '1.44.0'
|
||||||
|
|
||||||
|
implementation group: 'org.jline', name: 'jline', version: '3.23.0'
|
||||||
|
implementation group: 'org.jline', name: 'jline-terminal-jansi', version: '3.23.0'
|
||||||
|
|
||||||
protobuf files('proto/')
|
protobuf files('proto/')
|
||||||
|
|
||||||
compileOnly 'org.projectlombok:lombok:1.18.30'
|
compileOnly 'org.projectlombok:lombok:1.18.30'
|
||||||
|
|||||||
@@ -2,6 +2,11 @@ package emu.lunarcore;
|
|||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
|
||||||
|
import org.jline.reader.EndOfFileException;
|
||||||
|
import org.jline.reader.LineReaderBuilder;
|
||||||
|
import org.jline.reader.UserInterruptException;
|
||||||
|
import org.jline.reader.impl.LineReaderImpl;
|
||||||
|
import org.jline.terminal.TerminalBuilder;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
@@ -146,15 +151,26 @@ public class LunarRail {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Server console
|
// Server console
|
||||||
|
|
||||||
private static void startConsole() {
|
private static void startConsole() {
|
||||||
String input;
|
try {
|
||||||
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
|
LineReaderImpl reader = (LineReaderImpl) LineReaderBuilder.builder()
|
||||||
while ((input = br.readLine()) != null) {
|
.terminal(TerminalBuilder.terminal())
|
||||||
|
.build();
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
String input = reader.readLine("> ");
|
||||||
|
if (input == null || input.length() == 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
LunarRail.getCommandManager().invoke(null, input);
|
LunarRail.getCommandManager().invoke(null, input);
|
||||||
}
|
}
|
||||||
|
} catch (UserInterruptException | EndOfFileException e) {
|
||||||
|
// CTRL + C / CTRL + D
|
||||||
|
System.exit(0);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
LunarRail.getLogger().error("Console error:", e);
|
LunarRail.getLogger().error("Terminal error: ", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,10 +11,9 @@ import emu.lunarcore.LunarRail;
|
|||||||
import emu.lunarcore.game.player.Player;
|
import emu.lunarcore.game.player.Player;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
|
import it.unimi.dsi.fastutil.objects.Object2ObjectMap;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||||
import lombok.AccessLevel;
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
|
||||||
@Getter(AccessLevel.PRIVATE)
|
@Getter
|
||||||
public class CommandManager {
|
public class CommandManager {
|
||||||
private Object2ObjectMap<String, CommandHandler> labels;
|
private Object2ObjectMap<String, CommandHandler> labels;
|
||||||
private Object2ObjectMap<String, CommandHandler> commands;
|
private Object2ObjectMap<String, CommandHandler> commands;
|
||||||
|
|||||||
Reference in New Issue
Block a user