Possible fix for -nojline printing blank lines

By: Dinnerbone <dinnerbone@dinnerbone.com>
This commit is contained in:
CraftBukkit/Spigot 2011-05-19 21:46:47 +01:00
parent e1a2b1f90a
commit 5f5de88a00
2 changed files with 18 additions and 10 deletions

View File

@ -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();

View File

@ -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);
}