From ad284544e5dfafbfa5e2a8e8adea9a6a8752fbfe Mon Sep 17 00:00:00 2001 From: LOOHP Date: Wed, 24 Dec 2025 12:13:58 +0000 Subject: [PATCH] Fixed terminal integration --- pom.xml | 7 ------- src/main/java/com/loohp/limbo/Console.java | 23 ++++++++++------------ 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/pom.xml b/pom.xml index 66cf54e..2041b74 100644 --- a/pom.xml +++ b/pom.xml @@ -303,12 +303,5 @@ 3.30.5 compile - - jline - jline - 2.14.6 - compile - - diff --git a/src/main/java/com/loohp/limbo/Console.java b/src/main/java/com/loohp/limbo/Console.java index 5b4d56d..0fb6ebc 100644 --- a/src/main/java/com/loohp/limbo/Console.java +++ b/src/main/java/com/loohp/limbo/Console.java @@ -22,7 +22,6 @@ package com.loohp.limbo; import com.loohp.limbo.commands.CommandSender; import com.loohp.limbo.consolegui.ConsoleTextOutput; import com.loohp.limbo.utils.CustomStringUtils; -import jline.console.ConsoleReader; import net.kyori.adventure.audience.MessageType; import net.kyori.adventure.bossbar.BossBar; import net.kyori.adventure.identity.Identity; @@ -45,6 +44,7 @@ import org.jline.reader.LineReader.SuggestionType; import org.jline.reader.LineReaderBuilder; import org.jline.reader.ParsedLine; import org.jline.reader.UserInterruptException; +import org.jline.terminal.Size; import org.jline.terminal.Terminal; import org.jline.terminal.TerminalBuilder; @@ -76,7 +76,6 @@ public class Console implements CommandSender { private final Terminal terminal; private final LineReader tabReader; - private final ConsoleReader reader; private final InputStream in; @SuppressWarnings("unused") @@ -114,10 +113,6 @@ public class Console implements CommandSender { }) : err, this.logs)); this.err = System.err; - reader = new ConsoleReader(in, out); - reader.setExpandEvents(false); - reader.setHandleUserInterrupt(false); - terminal = TerminalBuilder.builder().streams(in, out).jansi(true).build(); tabReader = LineReaderBuilder.builder().terminal(terminal).completer(new Completer() { @Override @@ -129,7 +124,13 @@ public class Console implements CommandSender { } } }).build(); + tabReader.unsetOpt(LineReader.Option.INSERT_TAB); + tabReader.setVariable(LineReader.SECONDARY_PROMPT_PATTERN, ""); tabReader.setAutosuggestion(SuggestionType.NONE); + + if (terminal.getWidth() <= 0 || terminal.getHeight() <= 0) { + terminal.setSize(new Size(80, 24)); + } } @Override @@ -242,13 +243,9 @@ public class Console implements CommandSender { String date = new SimpleDateFormat("HH':'mm':'ss").format(new Date()); ConsoleTextOutput.appendText(ChatColor.stripColor("[" + date + " Info] " + message), true); logs.println(ChatColor.stripColor("[" + date + " Info] " + message)); - try { - reader.getOutput().append("[" + date + " Info] " + translateToConsole(message) + "\n"); - reader.getOutput().flush(); - } catch (IOException e) { - e.printStackTrace(); - } - unstashLine(); + terminal.writer().append("[").append(date).append(" Info] ").append(translateToConsole(message)).append("\n"); + terminal.writer().flush(); + unstashLine(); } protected void run() {