diff options
author | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-05-19 21:46:47 +0100 |
---|---|---|
committer | Dinnerbone <dinnerbone@dinnerbone.com> | 2011-05-19 21:46:47 +0100 |
commit | 6319a19073b10bc5f2d16ac7ce104b5ced267cdc (patch) | |
tree | 3ac377816444512a5ef203e0e3a28a76cc49442d | |
parent | 480c1b987704687f0dfe9ae6d4a136b8d2071725 (diff) | |
download | craftbukkit-6319a19073b10bc5f2d16ac7ce104b5ced267cdc.tar craftbukkit-6319a19073b10bc5f2d16ac7ce104b5ced267cdc.tar.gz craftbukkit-6319a19073b10bc5f2d16ac7ce104b5ced267cdc.tar.lz craftbukkit-6319a19073b10bc5f2d16ac7ce104b5ced267cdc.tar.xz craftbukkit-6319a19073b10bc5f2d16ac7ce104b5ced267cdc.zip |
Possible fix for -nojline printing blank lines
3 files changed, 22 insertions, 14 deletions
diff --git a/src/main/java/net/minecraft/server/ThreadCommandReader.java b/src/main/java/net/minecraft/server/ThreadCommandReader.java index 0158e96a..670aff76 100644 --- a/src/main/java/net/minecraft/server/ThreadCommandReader.java +++ b/src/main/java/net/minecraft/server/ThreadCommandReader.java @@ -8,6 +8,7 @@ import java.io.InputStreamReader; import java.util.logging.Level; import java.util.logging.Logger; import jline.ConsoleReader; +import org.bukkit.craftbukkit.Main; // CraftBukkit end public class ThreadCommandReader extends Thread { @@ -22,16 +23,15 @@ public class ThreadCommandReader extends Thread { // CraftBukkit start ConsoleReader bufferedreader = this.server.reader; String s = null; - String jlineTerminalSetting = org.bukkit.craftbukkit.Main.jlineTerminalSetting; // CraftBukkit end try { while (!this.server.isStopped && MinecraftServer.isRunning(this.server)) { // CraftBukkit start - JLine disabling compatibility - if (jlineTerminalSetting != null && jlineTerminalSetting.equals("jline.UnsupportedTerminal")) { - s = bufferedreader.readLine(); - } else { + if (Main.useJline) { s = bufferedreader.readLine(">", null); + } else { + s = bufferedreader.readLine(); } if (s != null) { // CraftBukkit end diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java index 9f8708df..3ec19b46 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -12,7 +12,7 @@ import joptsimple.OptionSet; import net.minecraft.server.MinecraftServer; public class Main { - public static String jlineTerminalSetting; + public static boolean useJline = true; public static void main(String[] args) { // Todo: Installation script @@ -88,11 +88,14 @@ public class Main { } } else { try { + useJline = !"jline.UnsupportedTerminal".equals(System.getProperty("jline.terminal")); + if (options.has("nojline")) { System.setProperty("jline.terminal", "jline.UnsupportedTerminal"); System.setProperty("user.language", "en"); + useJline = false; } - jlineTerminalSetting = System.getProperty("jline.terminal"); + MinecraftServer.main(options); } catch (Throwable t) { t.printStackTrace(); diff --git a/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleHandler.java b/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleHandler.java index 43bc392f..111123f5 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleHandler.java +++ b/src/main/java/org/bukkit/craftbukkit/util/TerminalConsoleHandler.java @@ -5,6 +5,7 @@ import java.util.logging.ConsoleHandler; import java.util.logging.Level; import java.util.logging.Logger; import jline.ConsoleReader; +import org.bukkit.craftbukkit.Main; public class TerminalConsoleHandler extends ConsoleHandler { private final ConsoleReader reader; @@ -17,15 +18,19 @@ public class TerminalConsoleHandler extends ConsoleHandler { @Override public synchronized void flush() { try { - reader.printString(ConsoleReader.RESET_LINE + ""); - reader.flushConsole(); - super.flush(); - try { - reader.drawLine(); - } catch (Throwable ex) { - reader.getCursorBuffer().clearBuffer(); + if (Main.useJline) { + reader.printString(ConsoleReader.RESET_LINE + ""); + reader.flushConsole(); + super.flush(); + try { + reader.drawLine(); + } catch (Throwable ex) { + reader.getCursorBuffer().clearBuffer(); + } + reader.flushConsole(); + } else { + super.flush(); } - reader.flushConsole(); } catch (IOException ex) { Logger.getLogger(TerminalConsoleHandler.class.getName()).log(Level.SEVERE, null, ex); } |