diff --git a/src/main/java/net/minecraft/server/ThreadCommandReader.java b/src/main/java/net/minecraft/server/ThreadCommandReader.java index 821cf66016..09505ff600 100644 --- a/src/main/java/net/minecraft/server/ThreadCommandReader.java +++ b/src/main/java/net/minecraft/server/ThreadCommandReader.java @@ -4,6 +4,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import static org.bukkit.craftbukkit.Main.*; + public class ThreadCommandReader extends Thread { final MinecraftServer server; @@ -13,13 +15,19 @@ public class ThreadCommandReader extends Thread { } public void run() { + // CraftBukkit start + if (!useConsole) { + return; + } + // CraftBukkit end + jline.ConsoleReader bufferedreader = this.server.reader; // CraftBukkit String s = null; try { // CraftBukkit start - JLine disabling compatibility while (!this.server.isStopped && MinecraftServer.isRunning(this.server)) { - if (org.bukkit.craftbukkit.Main.useJline) { + if (useJline) { s = bufferedreader.readLine(">", null); } else { s = bufferedreader.readLine(); diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java index 6f69bd7bdd..8b2c93e225 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java @@ -105,6 +105,10 @@ public final class CraftServer implements Server { this.serverVersion = CraftServer.class.getPackage().getImplementationVersion(); Bukkit.setServer(this); + + if (!Main.useConsole) { + getLogger().info("Console input is disabled due to --noconsole command argument"); + } configuration = YamlConfiguration.loadConfiguration(getConfigFile()); configuration.options().copyDefaults(true); diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java index 68b9abd289..4c3bb0c3a4 100644 --- a/src/main/java/org/bukkit/craftbukkit/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/Main.java @@ -13,6 +13,7 @@ import net.minecraft.server.MinecraftServer; public class Main { public static boolean useJline = true; + public static boolean useConsole = true; public static void main(String[] args) { // Todo: Installation script @@ -93,6 +94,8 @@ public class Main { .describedAs("Yml file"); acceptsAll(asList("nojline"), "Disables jline and emulates the vanilla console"); + + acceptsAll(asList("noconsole"), "Disables the console"); acceptsAll(asList("v", "version"), "Show the CraftBukkit Version"); } @@ -123,6 +126,10 @@ public class Main { System.setProperty("user.language", "en"); useJline = false; } + + if (options.has("noconsole")) { + useConsole = false; + } MinecraftServer.main(options); } catch (Throwable t) {