Support asynchronous events; Addresses BUKKIT-1212

This commit is contained in:
Wesley Wolfe 2012-06-13 21:52:49 -05:00
parent f58e514192
commit ed6d4c7759
2 changed files with 9 additions and 3 deletions

View File

@ -14,7 +14,6 @@ import java.util.logging.Logger;
// CraftBukkit start
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.UnknownHostException;
import jline.console.ConsoleReader;
import joptsimple.OptionSet;
@ -83,6 +82,7 @@ public class MinecraftServer implements Runnable, ICommandListener, IMinecraftSe
public RemoteConsoleCommandSender remoteConsole;
public ConsoleReader reader;
public static int currentTick;
public final Thread primaryThread;
// CraftBukkit end
public MinecraftServer(OptionSet options) { // CraftBukkit - adds argument OptionSet
@ -106,6 +106,8 @@ public class MinecraftServer implements Runnable, ICommandListener, IMinecraftSe
}
}
Runtime.getRuntime().addShutdownHook(new ServerShutdownThread(this));
primaryThread = new ThreadServerApplication("Server thread", this); // Moved from main
// CraftBukkit end
}
@ -625,7 +627,7 @@ public class MinecraftServer implements Runnable, ICommandListener, IMinecraftSe
// CraftBukkit - remove gui
(new ThreadServerApplication("Server thread", minecraftserver)).start();
minecraftserver.primaryThread.start(); // CraftBukkit - let MinecraftServer construct the thread
} catch (Exception exception) {
log.log(Level.SEVERE, "Failed to start the minecraft server", exception);
}

View File

@ -1182,4 +1182,8 @@ public final class CraftServer implements Server {
public int getWaterAnimalSpawnLimit() {
return waterAnimalSpawn;
}
public boolean isPrimaryThread() {
return Thread.currentThread().equals(console.primaryThread);
}
}