Much better console interaction. History, no more losing the command, colours, inline editing, etc. Shorter log output to console (but not to file).
This commit is contained in:
@@ -6,6 +6,9 @@ import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import java.util.logging.Handler; // CraftBukkit
|
||||
import jline.ConsoleReader;
|
||||
import org.bukkit.craftbukkit.util.ShortConsoleLogFormatter;
|
||||
import org.bukkit.craftbukkit.util.TerminalConsoleHandler;
|
||||
|
||||
public class ConsoleLogManager {
|
||||
|
||||
@@ -14,11 +17,12 @@ public class ConsoleLogManager {
|
||||
|
||||
public ConsoleLogManager() {}
|
||||
|
||||
public static void a() {
|
||||
// Craftbukkit - change of method signature!
|
||||
public static void a(ConsoleReader reader) {
|
||||
ConsoleLogFormatter consolelogformatter = new ConsoleLogFormatter();
|
||||
|
||||
a.setUseParentHandlers(false);
|
||||
ConsoleHandler consolehandler = new ConsoleHandler();
|
||||
ConsoleHandler consolehandler = new TerminalConsoleHandler(reader);
|
||||
|
||||
// CraftBukkit start
|
||||
for (Handler handler: global.getHandlers()) {
|
||||
@@ -26,7 +30,7 @@ public class ConsoleLogManager {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
consolehandler.setFormatter(consolelogformatter);
|
||||
consolehandler.setFormatter(new ShortConsoleLogFormatter()); // Craftbukkit
|
||||
a.addHandler(consolehandler);
|
||||
global.addHandler(consolehandler); // CraftBukkit
|
||||
|
||||
|
||||
@@ -15,10 +15,12 @@ import java.util.logging.Logger;
|
||||
// CraftBukkit start
|
||||
import java.io.PrintStream;
|
||||
import java.net.UnknownHostException;
|
||||
import jline.ConsoleReader;
|
||||
import joptsimple.OptionSet;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.LoggerOutputStream;
|
||||
import org.bukkit.craftbukkit.command.ColouredConsoleSender;
|
||||
import org.bukkit.craftbukkit.scheduler.CraftScheduler;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.world.WorldEvent;
|
||||
@@ -50,12 +52,21 @@ public class MinecraftServer implements Runnable, ICommandListener {
|
||||
public List<WorldServer> worlds = new ArrayList<WorldServer>();
|
||||
public CraftServer server;
|
||||
public OptionSet options;
|
||||
public ConsoleCommandSender console;
|
||||
public ColouredConsoleSender console;
|
||||
public ConsoleReader reader;
|
||||
// Craftbukkit end
|
||||
|
||||
public MinecraftServer(OptionSet options) { // CraftBukkit - adds argument OptionSet
|
||||
new ThreadSleepForever(this);
|
||||
this.options = options; // CraftBukkit
|
||||
|
||||
// CraftBukkit start
|
||||
this.options = options;
|
||||
try {
|
||||
this.reader = new ConsoleReader();
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(MinecraftServer.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
private boolean d() throws UnknownHostException { // CraftBukkit - added throws UnknownHostException
|
||||
@@ -64,7 +75,7 @@ public class MinecraftServer implements Runnable, ICommandListener {
|
||||
|
||||
threadcommandreader.setDaemon(true);
|
||||
threadcommandreader.start();
|
||||
ConsoleLogManager.a();
|
||||
ConsoleLogManager.a(reader); // Craftbukkit
|
||||
|
||||
// CraftBukkit start
|
||||
System.setOut(new PrintStream(new LoggerOutputStream(a, Level.INFO), true));
|
||||
|
||||
@@ -17,6 +17,7 @@ import org.bukkit.Location;
|
||||
import org.bukkit.command.ConsoleCommandSender;
|
||||
import org.bukkit.craftbukkit.CraftServer;
|
||||
import org.bukkit.craftbukkit.CraftWorld;
|
||||
import org.bukkit.craftbukkit.command.ColouredConsoleSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.Event.Type;
|
||||
@@ -48,7 +49,7 @@ public class ServerConfigurationManager {
|
||||
|
||||
public ServerConfigurationManager(MinecraftServer minecraftserver) {
|
||||
minecraftserver.server = new CraftServer(minecraftserver, this);
|
||||
minecraftserver.console = new ConsoleCommandSender(minecraftserver.server);
|
||||
minecraftserver.console = new ColouredConsoleSender(minecraftserver.server);
|
||||
server = minecraftserver.server;
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
34
src/main/java/net/minecraft/server/ThreadCommandReader.java
Normal file
34
src/main/java/net/minecraft/server/ThreadCommandReader.java
Normal file
@@ -0,0 +1,34 @@
|
||||
package net.minecraft.server;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import jline.ConsoleReader;
|
||||
|
||||
public class ThreadCommandReader extends Thread {
|
||||
|
||||
final MinecraftServer a;
|
||||
|
||||
public ThreadCommandReader(MinecraftServer minecraftserver) {
|
||||
this.a = minecraftserver;
|
||||
}
|
||||
|
||||
public void run() {
|
||||
// Craftbukkit start - whole method, nuked to oblivion! :o
|
||||
|
||||
try {
|
||||
ConsoleReader reader = a.reader;
|
||||
String line = null;
|
||||
|
||||
while ((!this.a.g) && (MinecraftServer.a(this.a)) && ((line = reader.readLine()) != null)) {
|
||||
this.a.a(line, (ICommandListener) this.a);
|
||||
}
|
||||
|
||||
} catch (IOException ex) {
|
||||
Logger.getLogger(ThreadCommandReader.class.getName()).log(Level.SEVERE, null, ex);
|
||||
}
|
||||
// Craftbukkit end
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user