From 5929b811ec26d886dcf9d77dc92fc476d41784c4 Mon Sep 17 00:00:00 2001 From: mworzala Date: Fri, 8 Sep 2023 07:30:39 -0400 Subject: [PATCH] return terminal --- build.gradle.kts | 3 ++ gradle/libs.versions.toml | 8 +++++ .../server/command/CommandParserImpl.java | 6 ++-- .../server/command/builder/Command.java | 2 +- .../manager/PacketListenerManager.java | 2 +- .../terminal/MinestomConsoleWriter.java | 36 ------------------- .../server/utils/debug/DebugUtils.java | 2 +- 7 files changed, 17 insertions(+), 42 deletions(-) delete mode 100644 src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java diff --git a/build.gradle.kts b/build.gradle.kts index 67a5e56ee..c7d9de262 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -64,6 +64,9 @@ dependencies { api(libs.bundles.hephaistos) implementation(libs.minestomData) + // Libraries required for the terminal + implementation(libs.bundles.terminal) + // Performance/data structures implementation(libs.caffeine) api(libs.fastutil) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1290f407c..647b18c1d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -18,6 +18,9 @@ flare = "2.0.1" gson = "2.10.1" jcTools = "4.0.1" +# Terminal +jline = "3.21.0" + # Quality junit-jupiter = "5.9.3" junit-platform = "1.9.3" @@ -65,6 +68,10 @@ flare-fastutil = { group = "space.vectrix.flare", name = "flare-fastutil", versi gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" } jcTools = { group = "org.jctools", name = "jctools-core", version.ref = "jcTools" } +# Terminal +jline = { group = "org.jline", name = "jline", version.ref = "jline" } +jline-jansi = { group = "org.jline", name = "jline-terminal-jansi", version.ref = "jline" } + # Code quality junit-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junit-jupiter" } junit-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit-jupiter" } @@ -90,6 +97,7 @@ adventure = ["adventure-api", "adventure-serializer-gson", "adventure-serializer junit = ["junit-api", "junit-engine", "junit-params", "junit-suite-api", "junit-suite-engine"] hephaistos = ["hephaistos-common", "hephaistos-gson"] logback = ["logback-core", "logback-classic"] +terminal = ["jline", "jline-jansi"] [plugins] diff --git a/src/main/java/net/minestom/server/command/CommandParserImpl.java b/src/main/java/net/minestom/server/command/CommandParserImpl.java index b50717623..9fc6b9a32 100644 --- a/src/main/java/net/minestom/server/command/CommandParserImpl.java +++ b/src/main/java/net/minestom/server/command/CommandParserImpl.java @@ -148,9 +148,9 @@ final class CommandParserImpl implements CommandParser { } } else { // Nothing left, yet we're still being asked to parse? There must be defaults then - Supplier defaultSupplier = node.argument().getDefaultValue(); + Function defaultSupplier = node.argument().getDefaultValue(); if (defaultSupplier != null) { - Object value = defaultSupplier.get(); + Object value = defaultSupplier.apply(sender); ArgumentResult argumentResult = new ArgumentResult.Success<>(value, ""); chain.append(new NodeResult(node, chain, argumentResult, argument.getSuggestionCallback())); // Add the default to the chain, and then carry on dealing with this node @@ -170,7 +170,7 @@ final class CommandParserImpl implements CommandParser { NodeResult error = null; for (Node child : node.next()) { - NodeResult childResult = parseNode(child, chain, reader); + NodeResult childResult = parseNode(sender, child, chain, reader); if (childResult.argumentResult instanceof ArgumentResult.Success) { // Assume that there is only one successful node for a given chain of arguments return childResult; diff --git a/src/main/java/net/minestom/server/command/builder/Command.java b/src/main/java/net/minestom/server/command/builder/Command.java index 842461025..dc4117542 100644 --- a/src/main/java/net/minestom/server/command/builder/Command.java +++ b/src/main/java/net/minestom/server/command/builder/Command.java @@ -41,7 +41,7 @@ import java.util.stream.Stream; */ public class Command { - public final static Logger LOGGER = LoggerFactory.getLogger(Command.class); + private final static Logger LOGGER = LoggerFactory.getLogger(Command.class); private final String name; private final String[] aliases; diff --git a/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java b/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java index 863a86eb9..dae1178bd 100644 --- a/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java +++ b/src/main/java/net/minestom/server/listener/manager/PacketListenerManager.java @@ -17,7 +17,7 @@ import java.util.concurrent.ConcurrentHashMap; public final class PacketListenerManager { - public final static Logger LOGGER = LoggerFactory.getLogger(PacketListenerManager.class); + private final static Logger LOGGER = LoggerFactory.getLogger(PacketListenerManager.class); private final ServerProcess serverProcess; private final Map, PacketListenerConsumer> listeners = new ConcurrentHashMap<>(); diff --git a/src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java b/src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java deleted file mode 100644 index 738c3d0ba..000000000 --- a/src/main/java/net/minestom/server/terminal/MinestomConsoleWriter.java +++ /dev/null @@ -1,36 +0,0 @@ -package net.minestom.server.terminal; - -import org.fusesource.jansi.AnsiConsole; -import org.tinylog.core.LogEntry; -import org.tinylog.writers.AbstractFormatPatternWriter; - -import java.util.Map; - -import static net.minestom.server.terminal.MinestomTerminal.reader; - -public final class MinestomConsoleWriter extends AbstractFormatPatternWriter { - public MinestomConsoleWriter(Map properties) { - super(properties); - } - - @Override - public void write(LogEntry logEntry) throws Exception { - String rendered = render(logEntry); - String formatted = TerminalColorConverter.format(rendered); - if (reader != null) { - reader.printAbove(formatted); - } else { - AnsiConsole.out().print(formatted); - } - } - - @Override - public void flush() { - // EMPTY - } - - @Override - public void close() { - // EMPTY - } -} diff --git a/src/main/java/net/minestom/server/utils/debug/DebugUtils.java b/src/main/java/net/minestom/server/utils/debug/DebugUtils.java index 0b6fc227d..26596b100 100644 --- a/src/main/java/net/minestom/server/utils/debug/DebugUtils.java +++ b/src/main/java/net/minestom/server/utils/debug/DebugUtils.java @@ -12,7 +12,7 @@ import org.slf4j.LoggerFactory; public final class DebugUtils { public static boolean INSIDE_TEST = PropertyUtils.getBoolean("minestom.inside-test", false); - public final static Logger LOGGER = LoggerFactory.getLogger(DebugUtils.class); + private final static Logger LOGGER = LoggerFactory.getLogger(DebugUtils.class); private static final String LINE_SEPARATOR = System.getProperty("line.separator");