gt:         p_71230_1_ = super.addServerInfoToCrashReport(p_71230_1_);
context: package net.minecraft.server.dedicated;
  
  import java.io.BufferedReader;
  import java.io.File;
  import java.io.IOException;
  import java.io.InputStreamReader;
  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 net.minecraft.command.ICommandSender;
  import net.minecraft.command.ServerCommand;
  import net.minecraft.crash.CrashReport;
  import net.minecraft.entity.player.EntityPlayer;
  import net.minecraft.network.rcon.IServer;
  import net.minecraft.network.rcon.RConThreadMain;
  import net.minecraft.network.rcon.RConThreadQuery;
  import net.minecraft.profiler.PlayerUsageSnooper;
  import net.minecraft.server.MinecraftServer;
  import net.minecraft.server.ServerEula;
  import net.minecraft.server.gui.MinecraftServerGui;
  import net.minecraft.server.management.PreYggdrasilConverter;
  import net.minecraft.server.management.ServerConfigurationManager;
  import net.minecraft.util.ChunkCoordinates;
  import net.minecraft.util.CryptManager;
  import net.minecraft.util.MathHelper;
  import net.minecraft.world.EnumDifficulty;
  import net.minecraft.world.World;
  import net.minecraft.world.WorldSettings;
  import net.minecraft.world.WorldType;
  import org.apache.logging.log4j.LogManager;
  import org.apache.logging.log4j.Logger;
  
  public class DedicatedServer extends MinecraftServer implements IServer
  {
      private static final Logger field_155771_h = LogManager.getLogger();
      private final List pendingCommandList = Collections.synchronizedList(new ArrayList());
      private RConThreadQuery theRConThreadQuery;
      private RConThreadMain theRConThreadMain;
      private PropertyManager settings;
      private ServerEula field_154332_n;
      private boolean canSpawnStructures;
      private WorldSettings.GameType gameType;
      private boolean guiIsEnabled;
      private static final String __OBFID = "CL_00001784";
  
      public DedicatedServer(File p_i1508_1_)
      {
          super(p_i1508_1_, Proxy.NO_PROXY);
          Thread var10001 = new Thread("Server Infinisleeper")
          {
              private static final String __OBFID = "CL_00001787";
              {
                  this.setDaemon(true);
                  this.start();
              }
              public void run()
              {
                  while (true)
                  {
                      try
                      {
                          while (true)
                          {
                              Thread.sleep(2147483647L);
                          }
                      }
                      catch (InterruptedException var2)
                      {
                          ;
                      }
                  }
              }
          };
      }
  
      /**
       * Initialises the server and starts it.
       */
      protected boolean startServer() throws IOException
      {
          Thread var1 = new Thread("Server console handler")
          {
              private static final String __OBFID = "CL_00001786";
              public void run()
              {
                  BufferedReader var1 = new BufferedReader(new InputStreamReader(System.in));
                  String var2;
  
                  try
                  {
                      while (!DedicatedServer.this.isServerStopped() && DedicatedServer.this.isServerRunning() && (var2 = var1.readLine()) != null)
                      {
                          DedicatedServer.this.addPendingCommand(var2, DedicatedServer.this);
                      }
                  }
                  catch (IOException var4)
                  {
                      DedicatedServer.field_155771_h.error("Exception handling console input", var4);
                  }
              }
          };
          var1.setDaemon(true);
          var1.start();
          field_155771_h.info("Starting minecraft server version 1.7.10");
  
          if (Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L)
          {
              field_155771_h.warn("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
          }
  
          field_155771_h.info("Loading properties");
          this.settings = new PropertyManager(new File("server.properties"));
          this.field_154332_n = new ServerEula(new File("eula.txt"));
  
          if (!this.field_154332_n.func_154346_a())
          {
              field_155771_h.info("You need to agree to the EULA in order to run the server. Go to eula.txt for more info.");
              this.field_154332_n.func_154348_b();
              return false;
          }
          else
          {
              if (this.isSinglePlayer())
              {
                  this.setHostname("127.0.0.1");
              }
              else
              {
                  this.setOnlineMode(this.settings.getBooleanProperty("online-mode", true));
                  this.setHostname(this.settings.getStringProperty("server-ip", ""));
              }
  
              this.setCanSpawnAnimals(this.settings.getBooleanProperty("spawn-animals", true));
              this.setCanSpawnNPCs(this.settings.getBooleanProperty("spawn-npcs", true));
              this.setAllowPvp(this.settings.getBooleanProperty("pvp", true));
              this.setAllowFlight(this.settings.getBooleanProperty("allow-flight", false));
              this.func_155759_m(this.settings.getStringProperty("resource-pack", ""));
              this.setMOTD(this.settings.getStringProperty("motd", "A Minecraft Server"));
              this.setForceGamemode(this.settings.getBooleanProperty("force-gamemode", false));
              this.func_143006_e(this.settings.getIntProperty("player-idle-timeout", 0));
  
              if (this.settings.getIntProperty("difficulty", 1) < 0)
              {
                  this.settings.setProperty("difficulty", Integer.valueOf(0));
              }
              else if (this.settings.getIntProperty("difficulty", 1) > 3)
              {
                  this.settings.setProperty("difficulty", Integer.valueOf(3));
              }
  
              this.canSpawnStructures = this.settings.getBooleanProperty("generate-structures", true);
              int var2 = this.settings.getIntProperty("gamemode", WorldSettings.GameType.SURVIVAL.getID());
              this.gameType = WorldSettings.getGameTypeById(var2);
              field_155771_h.info("Default game type: " + this.gameType);
              InetAddress var3 = null;
  
              if (this.getServerHostname().length() > 0)
              {
                  var3 = InetAddress.getByName(this.getServerHostname());
              }
  
              if (this.getServerPort() < 0)
              {
                  this.setServerPort(this.settings.getIntProperty("server-port", 25565));
              }
  
              field_155771_h.info("Generating keypair");
              this.setKeyPair(CryptManager.generateKeyPair());
              field_155771_h.info("Starting Minecraft server on " + (this.getServerHostname().length() == 0 ? "*" : this.getServerHostname()) + ":" + this.getServerPort());
  
              try
              {
                  this.func_147137_ag().addLanEndpoint(var3, this.getServerPort());
              }
              catch (IOException var16)
              {
                  field_155771_h.warn("**** FAILED TO BIND TO PORT!");
                  field_155771_h.warn("The exception was: {}", new Object[] {var16.toString()});
                  field_155771_h.warn("Perhaps a server is already running on that port?");
                  return false;
              }
  
              if (!this.isServerInOnlineMode())
              {
                  field_155771_h.warn("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
                  field_155771_h.warn("The server will make no attempt to authenticate usernames. Beware.");
                  field_155771_h.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.");
                  field_155771_h.warn("To change this, set \"online-mode\" to \"true\" in the server.properties file.");
              }
  
              if (this.func_152368_aE())
              {
                  this.func_152358_ax().func_152658_c();
              }
  
              if (!PreYggdrasilConverter.func_152714_a(this.settings))
              {
                  return false;
              }
              else
              {
                  this.func_152361_a(new DedicatedPlayerList(this));
                  long var4 = System.nanoTime();
  
                  if (this.getFolderName() == null)
                  {
                      this.setFolderName(this.settings.getStringProperty("level-name", "world"));
                  }
  
                  String var6 = this.settings.getStringProperty("level-seed", "");
                  String var7 = this.settings.getStringProperty("level-type", "DEFAULT");
                  String var8 = this.settings.getStringProperty("generator-settings", "");
                  long var9 = (new Random()).nextLong();
  
                  if (var6.length() > 0)
                  {
                      try
                      {
                          long var11 = Long.parseLong(var6);
  
                          if (var11 != 0L)
                          {
                              var9 = var11;
                          }
                      }
                      catch (NumberFormatException var15)
                      {
                          var9 = (long)var6.hashCode();
                      }
                  }
  
                  WorldType var17 = WorldType.parseWorldType(var7);
  
                  if (var17 == null)
                  {
                      var17 = WorldType.DEFAULT;
                  }
  
                  this.func_147136_ar();
                  this.isCommandBlockEnabled();
                  this.getOpPermissionLevel();
                  this.isSnooperEnabled();
                  this.setBuildLimit(this.settings.getIntProperty("max-build-height", 256));
                  this.setBuildLimit((this.getBuildLimit() + 8) / 16 * 16);
                  this.setBuildLimit(MathHelper.clamp_int(this.getBuildLimit(), 64, 256));
                  this.settings.setProperty("max-build-height", Integer.valueOf(this.getBuildLimit()));
                  field_155771_h.info("Preparing level \"" + this.getFolderName() + "\"");
                  this.loadAllWorlds(this.getFolderName(), this.getFolderName(), var9, var17, var8);
                  long var12 = System.nanoTime() - var4;
                  String var14 = String.format("%.3fs", new Object[] {Double.valueOf((double)var12 / 1.0E9D)});
                  field_155771_h.info("Done (" + var14 + ")! For help, type \"help\" or \"?\"");
  
                  if (this.settings.getBooleanProperty("enable-query", false))
                  {
                      field_155771_h.info("Starting GS4 status listener");
                      this.theRConThreadQuery = new RConThreadQuery(this);
                      this.theRConThreadQuery.startThread();
                  }
  
                  if (this.settings.getBooleanProperty("enable-rcon", false))
                  {
                      field_155771_h.info("Starting remote control listener");
                      this.theRConThreadMain = new RConThreadMain(this);
                      this.theRConThreadMain.startThread();
                  }
  
                  return true;
              }
          }
      }
  
      public boolean canStructuresSpawn()
      {
          return this.canSpawnStructures;
      }
  
      public WorldSettings.GameType getGameType()
      {
          return this.gameType;
      }
  
      public EnumDifficulty func_147135_j()
      {
          return EnumDifficulty.func_151523_a(this.settings.getIntProperty("difficulty", 1));
      }
  
      /**
       * Defaults to false.
       */
      public boolean isHardcore()
      {
          return this.settings.getBooleanProperty("hardcore", false);
      }
  
      /**
       * Called on exit from the main run() loop.
       */
      protected void finalTick(CrashReport p_71228_1_) {}
  
      /**
       * Adds the server info, including from theWorldServer, to the crash report.
       */
      public CrashReport addServerInfoToCrashReport(CrashReport p_71230_1_)
      {
  