diff options
Diffstat (limited to 'src/main/java/net/minecraft/server/DedicatedServer.java')
-rw-r--r-- | src/main/java/net/minecraft/server/DedicatedServer.java | 472 |
1 files changed, 0 insertions, 472 deletions
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java deleted file mode 100644 index 83f2dad5..00000000 --- a/src/main/java/net/minecraft/server/DedicatedServer.java +++ /dev/null @@ -1,472 +0,0 @@ -package net.minecraft.server; - -import java.io.File; -import java.io.IOException; -import java.net.InetAddress; -import java.net.Proxy; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Random; -import java.util.concurrent.Callable; - -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; - -// CraftBukkit start -import java.io.PrintStream; -import org.apache.logging.log4j.Level; - -import org.bukkit.craftbukkit.LoggerOutputStream; -import org.bukkit.event.server.ServerCommandEvent; -// CraftBukkit end - -public class DedicatedServer extends MinecraftServer implements IMinecraftServer { - - private static final Logger i = LogManager.getLogger(); - private final List j = Collections.synchronizedList(new ArrayList()); - private RemoteStatusListener k; - private RemoteControlListener l; - public PropertyManager propertyManager; // CraftBukkit - private -> public - private EULA n; - private boolean generateStructures; - private EnumGamemode p; - private boolean q; - - // CraftBukkit start - Signature changed - public DedicatedServer(joptsimple.OptionSet options) { - super(options, Proxy.NO_PROXY); - // super(file1, Proxy.NO_PROXY); - // CraftBukkit end - new ThreadSleepForever(this, "Server Infinisleeper"); - } - - protected boolean init() throws java.net.UnknownHostException { // CraftBukkit - throws UnknownHostException - ThreadCommandReader threadcommandreader = new ThreadCommandReader(this, "Server console handler"); - - threadcommandreader.setDaemon(true); - threadcommandreader.start(); - - // CraftBukkit start - TODO: handle command-line logging arguments - java.util.logging.Logger global = java.util.logging.Logger.getLogger(""); - global.setUseParentHandlers(false); - for (java.util.logging.Handler handler : global.getHandlers()) { - global.removeHandler(handler); - } - global.addHandler(new org.bukkit.craftbukkit.util.ForwardLogHandler()); - - final org.apache.logging.log4j.core.Logger logger = ((org.apache.logging.log4j.core.Logger) LogManager.getRootLogger()); - for (org.apache.logging.log4j.core.Appender appender : logger.getAppenders().values()) { - if (appender instanceof org.apache.logging.log4j.core.appender.ConsoleAppender) { - logger.removeAppender(appender); - } - } - - new Thread(new org.bukkit.craftbukkit.util.TerminalConsoleWriterThread(System.out, this.reader)).start(); - - System.setOut(new PrintStream(new LoggerOutputStream(logger, Level.INFO), true)); - System.setErr(new PrintStream(new LoggerOutputStream(logger, Level.WARN), true)); - // CraftBukkit end - - i.info("Starting minecraft server version 1.7.10"); - if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L) { - i.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\""); - } - - i.info("Loading properties"); - this.propertyManager = new PropertyManager(this.options); // CraftBukkit - CLI argument support - this.n = new EULA(new File("eula.txt")); - if (!this.n.a()) { - i.info("You need to agree to the EULA in order to run the server. Go to eula.txt for more info."); - this.n.b(); - return false; - } else { - if (this.N()) { - this.c("127.0.0.1"); - } else { - this.setOnlineMode(this.propertyManager.getBoolean("online-mode", true)); - this.c(this.propertyManager.getString("server-ip", "")); - } - - this.setSpawnAnimals(this.propertyManager.getBoolean("spawn-animals", true)); - this.setSpawnNPCs(this.propertyManager.getBoolean("spawn-npcs", true)); - this.setPvP(this.propertyManager.getBoolean("pvp", true)); - this.setAllowFlight(this.propertyManager.getBoolean("allow-flight", false)); - this.setTexturePack(this.propertyManager.getString("resource-pack", "")); - this.setMotd(this.propertyManager.getString("motd", "A Minecraft Server")); - this.setForceGamemode(this.propertyManager.getBoolean("force-gamemode", false)); - this.setIdleTimeout(this.propertyManager.getInt("player-idle-timeout", 0)); - if (this.propertyManager.getInt("difficulty", 1) < 0) { - this.propertyManager.setProperty("difficulty", Integer.valueOf(0)); - } else if (this.propertyManager.getInt("difficulty", 1) > 3) { - this.propertyManager.setProperty("difficulty", Integer.valueOf(3)); - } - - this.generateStructures = this.propertyManager.getBoolean("generate-structures", true); - int gamemode = this.propertyManager.getInt("gamemode", EnumGamemode.SURVIVAL.getId()); // CraftBukkit - Unique name to avoid stomping on logger - - this.p = WorldSettings.a(gamemode); // CraftBukkit - Use new name - i.info("Default game type: " + this.p); - InetAddress inetaddress = null; - - if (this.getServerIp().length() > 0) { - inetaddress = InetAddress.getByName(this.getServerIp()); - } - - if (this.L() < 0) { - this.setPort(this.propertyManager.getInt("server-port", 25565)); - } - - i.info("Generating keypair"); - this.a(MinecraftEncryption.b()); - i.info("Starting Minecraft server on " + (this.getServerIp().length() == 0 ? "*" : this.getServerIp()) + ":" + this.L()); - - try { - this.ai().a(inetaddress, this.L()); - } catch (Throwable ioexception) { // CraftBukkit - IOException -> Throwable - i.warn("**** FAILED TO BIND TO PORT!"); - i.warn("The exception was: {}", new Object[] { ioexception.toString()}); - i.warn("Perhaps a server is already running on that port?"); - return false; - } - - this.a((PlayerList) (new DedicatedPlayerList(this))); // CraftBukkit - - if (!this.getOnlineMode()) { - i.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!"); - i.warn("The server will make no attempt to authenticate usernames. Beware."); - i.warn("While this makes the game possible to play without internet access, it also opens up the ability for hackers to connect with any username they choose."); - i.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file."); - } - - if (this.aE()) { - this.getUserCache().c(); - } - - if (!NameReferencingFileConverter.a(this.propertyManager)) { - return false; - } else { - // this.a((PlayerList) (new DedicatedPlayerList(this))); // CraftBukkit - moved up - this.convertable = new WorldLoaderServer(server.getWorldContainer()); // CraftBukkit - moved from MinecraftServer constructor - long j = System.nanoTime(); - - if (this.O() == null) { - this.k(this.propertyManager.getString("level-name", "world")); - } - - String s = this.propertyManager.getString("level-seed", ""); - String s1 = this.propertyManager.getString("level-type", "DEFAULT"); - String s2 = this.propertyManager.getString("generator-settings", ""); - long k = (new Random()).nextLong(); - - if (s.length() > 0) { - try { - long l = Long.parseLong(s); - - if (l != 0L) { - k = l; - } - } catch (NumberFormatException numberformatexception) { - k = (long) s.hashCode(); - } - } - - WorldType worldtype = WorldType.getType(s1); - - if (worldtype == null) { - worldtype = WorldType.NORMAL; - } - - this.at(); - this.getEnableCommandBlock(); - this.l(); - this.getSnooperEnabled(); - this.c(this.propertyManager.getInt("max-build-height", 256)); - this.c((this.getMaxBuildHeight() + 8) / 16 * 16); - this.c(MathHelper.a(this.getMaxBuildHeight(), 64, 256)); - this.propertyManager.setProperty("max-build-height", Integer.valueOf(this.getMaxBuildHeight())); - i.info("Preparing level \"" + this.O() + "\""); - this.a(this.O(), this.O(), k, worldtype, s2); - long i1 = System.nanoTime() - j; - String s3 = String.format("%.3fs", new Object[] { Double.valueOf((double) i1 / 1.0E9D)}); - - i.info("Done (" + s3 + ")! For help, type \"help\" or \"?\""); - if (this.propertyManager.getBoolean("enable-query", false)) { - i.info("Starting GS4 status listener"); - this.k = new RemoteStatusListener(this); - this.k.a(); - } - - if (this.propertyManager.getBoolean("enable-rcon", false)) { - i.info("Starting remote control listener"); - this.l = new RemoteControlListener(this); - this.l.a(); - this.remoteConsole = new org.bukkit.craftbukkit.command.CraftRemoteConsoleCommandSender(); // CraftBukkit - } - - // CraftBukkit start - if (this.server.getBukkitSpawnRadius() > -1) { - i.info("'settings.spawn-radius' in bukkit.yml has been moved to 'spawn-protection' in server.properties. I will move your config for you."); - this.propertyManager.properties.remove("spawn-protection"); - this.propertyManager.getInt("spawn-protection", this.server.getBukkitSpawnRadius()); - this.server.removeBukkitSpawnRadius(); - this.propertyManager.savePropertiesFile(); - } - // CraftBukkit end - - return true; - } - } - } - - // CraftBukkit start - public PropertyManager getPropertyManager() { - return this.propertyManager; - } - // CraftBukkit end - - public boolean getGenerateStructures() { - return this.generateStructures; - } - - public EnumGamemode getGamemode() { - return this.p; - } - - public EnumDifficulty getDifficulty() { - return EnumDifficulty.getById(this.propertyManager.getInt("difficulty", 1)); - } - - public boolean isHardcore() { - return this.propertyManager.getBoolean("hardcore", false); - } - - protected void a(CrashReport crashreport) {} - - public CrashReport b(CrashReport crashreport) { - crashreport = super.b(crashreport); - crashreport.g().a("Is Modded", (Callable) (new CrashReportModded(this))); - crashreport.g().a("Type", (Callable) (new CrashReportType(this))); - return crashreport; - } - - protected void t() { - System.exit(0); - } - - public void v() { // CraftBukkit - protected -> public (decompile error?) - super.v(); - this.aB(); - } - - public boolean getAllowNether() { - return this.propertyManager.getBoolean("allow-nether", true); - } - - public boolean getSpawnMonsters() { - return this.propertyManager.getBoolean("spawn-monsters", true); - } - - public void a(MojangStatisticsGenerator mojangstatisticsgenerator) { - mojangstatisticsgenerator.a("whitelist_enabled", Boolean.valueOf(this.aC().getHasWhitelist())); - mojangstatisticsgenerator.a("whitelist_count", Integer.valueOf(this.aC().getWhitelisted().length)); - super.a(mojangstatisticsgenerator); - } - - public boolean getSnooperEnabled() { - return this.propertyManager.getBoolean("snooper-enabled", true); - } - - public void issueCommand(String s, ICommandListener icommandlistener) { - this.j.add(new ServerCommand(s, icommandlistener)); - } - - public void aB() { - while (!this.j.isEmpty()) { - ServerCommand servercommand = (ServerCommand) this.j.remove(0); - - // CraftBukkit start - ServerCommand for preprocessing - ServerCommandEvent event = new ServerCommandEvent(this.console, servercommand.command); - this.server.getPluginManager().callEvent(event); - servercommand = new ServerCommand(event.getCommand(), servercommand.source); - - // this.getCommandHandler().a(servercommand.source, servercommand.command); // Called in dispatchServerCommand - this.server.dispatchServerCommand(this.console, servercommand); - // CraftBukkit end - } - } - - public boolean X() { - return true; - } - - public DedicatedPlayerList aC() { - return (DedicatedPlayerList) super.getPlayerList(); - } - - public int a(String s, int i) { - return this.propertyManager.getInt(s, i); - } - - public String a(String s, String s1) { - return this.propertyManager.getString(s, s1); - } - - public boolean a(String s, boolean flag) { - return this.propertyManager.getBoolean(s, flag); - } - - public void a(String s, Object object) { - this.propertyManager.setProperty(s, object); - } - - public void a() { - this.propertyManager.savePropertiesFile(); - } - - public String b() { - File file1 = this.propertyManager.c(); - - return file1 != null ? file1.getAbsolutePath() : "No settings file"; - } - - public void aD() { - ServerGUI.a(this); - this.q = true; - } - - public boolean ak() { - return this.q; - } - - public String a(EnumGamemode enumgamemode, boolean flag) { - return ""; - } - - public boolean getEnableCommandBlock() { - return this.propertyManager.getBoolean("enable-command-block", false); - } - - public int getSpawnProtection() { - return this.propertyManager.getInt("spawn-protection", super.getSpawnProtection()); - } - - public boolean a(World world, int i, int j, int k, EntityHuman entityhuman) { - if (world.worldProvider.dimension != 0) { - return false; - } else if (this.aC().getOPs().isEmpty()) { - return false; - } else if (this.aC().isOp(entityhuman.getProfile())) { - return false; - } else if (this.getSpawnProtection() <= 0) { - return false; - } else { - ChunkCoordinates chunkcoordinates = world.getSpawn(); - int l = MathHelper.a(i - chunkcoordinates.x); - int i1 = MathHelper.a(k - chunkcoordinates.z); - int j1 = Math.max(l, i1); - - return j1 <= this.getSpawnProtection(); - } - } - - public int l() { - return this.propertyManager.getInt("op-permission-level", 4); - } - - public void setIdleTimeout(int i) { - super.setIdleTimeout(i); - this.propertyManager.setProperty("player-idle-timeout", Integer.valueOf(i)); - this.a(); - } - - public boolean m() { - return this.propertyManager.getBoolean("broadcast-rcon-to-ops", true); - } - - public boolean at() { - return this.propertyManager.getBoolean("announce-player-achievements", true); - } - - protected boolean aE() { - boolean flag = false; - - int i; - - for (i = 0; !flag && i <= 2; ++i) { - if (i > 0) { - // CraftBukkit - Fix decompiler stomping on field - DedicatedServer.i.warn("Encountered a problem while converting the user banlist, retrying in a few seconds"); - this.aG(); - } - - flag = NameReferencingFileConverter.a((MinecraftServer) this); - } - - boolean flag1 = false; - - for (i = 0; !flag1 && i <= 2; ++i) { - if (i > 0) { - // CraftBukkit - Fix decompiler stomping on field - DedicatedServer.i.warn("Encountered a problem while converting the ip banlist, retrying in a few seconds"); - this.aG(); - } - - flag1 = NameReferencingFileConverter.b((MinecraftServer) this); - } - - boolean flag2 = false; - - for (i = 0; !flag2 && i <= 2; ++i) { - if (i > 0) { - // CraftBukkit - Fix decompiler stomping on field - DedicatedServer.i.warn("Encountered a problem while converting the op list, retrying in a few seconds"); - this.aG(); - } - - flag2 = NameReferencingFileConverter.c((MinecraftServer) this); - } - - boolean flag3 = false; - - for (i = 0; !flag3 && i <= 2; ++i) { - if (i > 0) { - // CraftBukkit - Fix decompiler stomping on field - DedicatedServer.i.warn("Encountered a problem while converting the whitelist, retrying in a few seconds"); - this.aG(); - } - - flag3 = NameReferencingFileConverter.d((MinecraftServer) this); - } - - boolean flag4 = false; - - for (i = 0; !flag4 && i <= 2; ++i) { - if (i > 0) { - // CraftBukkit - Fix decompiler stomping on field - DedicatedServer.i.warn("Encountered a problem while converting the player save files, retrying in a few seconds"); - this.aG(); - } - - flag4 = NameReferencingFileConverter.a(this, this.propertyManager); - } - - return flag || flag1 || flag2 || flag3 || flag4; - } - - private void aG() { - try { - Thread.sleep(5000L); - } catch (InterruptedException interruptedexception) { - ; - } - } - - public PlayerList getPlayerList() { - return this.aC(); - } - - static Logger aF() { - return i; - } -} |