PageRenderTime 60ms CodeModel.GetById 21ms RepoModel.GetById 1ms app.codeStats 0ms

/mcp/temp/src/minecraft_server/net/minecraft/server/MinecraftServer.java

https://bitbucket.org/vkorolik/twoleanfour-client
Java | 743 lines | 680 code | 60 blank | 3 comment | 63 complexity | 51f8f3ce36ac6abe79f1bb61a7fe2d2c MD5 | raw file
  1. // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
  2. // Jad home page: http://www.kpdus.com/jad.html
  3. // Decompiler options: packimports(3) braces deadcode fieldsfirst
  4. package net.minecraft.server;
  5. import java.io.File;
  6. import java.io.IOException;
  7. import java.net.InetAddress;
  8. import java.net.UnknownHostException;
  9. import java.util.ArrayList;
  10. import java.util.Collections;
  11. import java.util.HashMap;
  12. import java.util.Iterator;
  13. import java.util.List;
  14. import java.util.Random;
  15. import java.util.Set;
  16. import java.util.logging.Level;
  17. import java.util.logging.Logger;
  18. import net.minecraft.src.AnvilSaveConverter;
  19. import net.minecraft.src.AnvilSaveHandler;
  20. import net.minecraft.src.AxisAlignedBB;
  21. import net.minecraft.src.ChunkCoordinates;
  22. import net.minecraft.src.ChunkProviderServer;
  23. import net.minecraft.src.ConsoleCommandHandler;
  24. import net.minecraft.src.ConsoleLogManager;
  25. import net.minecraft.src.ConvertProgressUpdater;
  26. import net.minecraft.src.EntityTracker;
  27. import net.minecraft.src.ICommandListener;
  28. import net.minecraft.src.ISaveFormat;
  29. import net.minecraft.src.IServer;
  30. import net.minecraft.src.IUpdatePlayerListBox;
  31. import net.minecraft.src.MathHelper;
  32. import net.minecraft.src.NetworkListenThread;
  33. import net.minecraft.src.Packet;
  34. import net.minecraft.src.Packet4UpdateTime;
  35. import net.minecraft.src.PropertyManager;
  36. import net.minecraft.src.RConConsoleSource;
  37. import net.minecraft.src.RConThreadMain;
  38. import net.minecraft.src.RConThreadQuery;
  39. import net.minecraft.src.ServerCommand;
  40. import net.minecraft.src.ServerConfigurationManager;
  41. import net.minecraft.src.ServerGUI;
  42. import net.minecraft.src.StatList;
  43. import net.minecraft.src.ThreadCommandReader;
  44. import net.minecraft.src.ThreadServerApplication;
  45. import net.minecraft.src.ThreadServerSleep;
  46. import net.minecraft.src.Vec3D;
  47. import net.minecraft.src.WorldInfo;
  48. import net.minecraft.src.WorldManager;
  49. import net.minecraft.src.WorldProvider;
  50. import net.minecraft.src.WorldServer;
  51. import net.minecraft.src.WorldServerMulti;
  52. import net.minecraft.src.WorldSettings;
  53. import net.minecraft.src.WorldType;
  54. public class MinecraftServer
  55. implements Runnable, ICommandListener, IServer
  56. {
  57. public static Logger field_6038_a = Logger.getLogger("Minecraft");
  58. public static HashMap field_6037_b = new HashMap();
  59. private String field_40030_s;
  60. private int field_40029_t;
  61. public NetworkListenThread field_6036_c;
  62. public PropertyManager field_6035_d;
  63. public WorldServer field_6034_e[];
  64. public long field_40027_f[];
  65. public long field_40028_g[][];
  66. public ServerConfigurationManager field_6033_f;
  67. private ConsoleCommandHandler field_22005_o;
  68. private boolean field_6025_n;
  69. public boolean field_6032_g;
  70. int field_9014_h;
  71. public String field_9013_i;
  72. public int field_9012_j;
  73. private List field_9010_p;
  74. private List field_6023_p;
  75. public EntityTracker field_6028_k[];
  76. public boolean field_6027_l;
  77. public boolean field_6026_m;
  78. public boolean field_44002_p;
  79. public boolean field_9011_n;
  80. public boolean field_27005_o;
  81. public String field_35014_p;
  82. public int field_48081_t;
  83. private long field_48074_E;
  84. private long field_48075_F;
  85. private long field_48076_G;
  86. private long field_48077_H;
  87. public long field_48080_u[];
  88. public long field_48079_v[];
  89. public long field_48078_w[];
  90. public long field_48082_x[];
  91. private RConThreadQuery field_40032_y;
  92. private RConThreadMain field_40031_z;
  93. public MinecraftServer()
  94. {
  95. field_40027_f = new long[100];
  96. field_6025_n = true;
  97. field_6032_g = false;
  98. field_9014_h = 0;
  99. field_9010_p = new ArrayList();
  100. field_6023_p = Collections.synchronizedList(new ArrayList());
  101. field_6028_k = new EntityTracker[3];
  102. field_48080_u = new long[100];
  103. field_48079_v = new long[100];
  104. field_48078_w = new long[100];
  105. field_48082_x = new long[100];
  106. new ThreadServerSleep(this);
  107. }
  108. private boolean func_6008_d()
  109. throws UnknownHostException
  110. {
  111. field_22005_o = new ConsoleCommandHandler(this);
  112. ThreadCommandReader threadcommandreader = new ThreadCommandReader(this);
  113. threadcommandreader.setDaemon(true);
  114. threadcommandreader.start();
  115. ConsoleLogManager.func_641_a();
  116. field_6038_a.info("Starting minecraft server version 1.2.5");
  117. if(Runtime.getRuntime().maxMemory() / 1024L / 1024L < 512L)
  118. {
  119. field_6038_a.warning("To start the server with more ram, launch it as \"java -Xmx1024M -Xms1024M -jar minecraft_server.jar\"");
  120. }
  121. field_6038_a.info("Loading properties");
  122. field_6035_d = new PropertyManager(new File("server.properties"));
  123. field_40030_s = field_6035_d.func_720_a("server-ip", "");
  124. field_6027_l = field_6035_d.func_724_a("online-mode", true);
  125. field_6026_m = field_6035_d.func_724_a("spawn-animals", true);
  126. field_44002_p = field_6035_d.func_724_a("spawn-npcs", true);
  127. field_9011_n = field_6035_d.func_724_a("pvp", true);
  128. field_27005_o = field_6035_d.func_724_a("allow-flight", false);
  129. field_35014_p = field_6035_d.func_720_a("motd", "A Minecraft Server");
  130. field_35014_p.replace('\247', '$');
  131. InetAddress inetaddress = null;
  132. if(field_40030_s.length() > 0)
  133. {
  134. inetaddress = InetAddress.getByName(field_40030_s);
  135. }
  136. field_40029_t = field_6035_d.func_722_a("server-port", 25565);
  137. field_6038_a.info((new StringBuilder()).append("Starting Minecraft server on ").append(field_40030_s.length() != 0 ? field_40030_s : "*").append(":").append(field_40029_t).toString());
  138. try
  139. {
  140. field_6036_c = new NetworkListenThread(this, inetaddress, field_40029_t);
  141. }
  142. catch(IOException ioexception)
  143. {
  144. field_6038_a.warning("**** FAILED TO BIND TO PORT!");
  145. field_6038_a.log(Level.WARNING, (new StringBuilder()).append("The exception was: ").append(ioexception.toString()).toString());
  146. field_6038_a.warning("Perhaps a server is already running on that port?");
  147. return false;
  148. }
  149. if(!field_6027_l)
  150. {
  151. field_6038_a.warning("**** SERVER IS RUNNING IN OFFLINE/INSECURE MODE!");
  152. field_6038_a.warning("The server will make no attempt to authenticate usernames. Beware.");
  153. field_6038_a.warning("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.");
  154. field_6038_a.warning("To change this, set \"online-mode\" to \"true\" in the server.settings file.");
  155. }
  156. field_6033_f = new ServerConfigurationManager(this);
  157. field_6028_k[0] = new EntityTracker(this, 0);
  158. field_6028_k[1] = new EntityTracker(this, -1);
  159. field_6028_k[2] = new EntityTracker(this, 1);
  160. long l = System.nanoTime();
  161. String s = field_6035_d.func_720_a("level-name", "world");
  162. String s1 = field_6035_d.func_720_a("level-seed", "");
  163. String s2 = field_6035_d.func_720_a("level-type", "DEFAULT");
  164. long l1 = (new Random()).nextLong();
  165. if(s1.length() > 0)
  166. {
  167. try
  168. {
  169. long l2 = Long.parseLong(s1);
  170. if(l2 != 0L)
  171. {
  172. l1 = l2;
  173. }
  174. }
  175. catch(NumberFormatException numberformatexception)
  176. {
  177. l1 = s1.hashCode();
  178. }
  179. }
  180. WorldType worldtype = WorldType.func_46049_a(s2);
  181. if(worldtype == null)
  182. {
  183. worldtype = WorldType.field_48457_b;
  184. }
  185. field_48081_t = field_6035_d.func_722_a("max-build-height", 256);
  186. field_48081_t = ((field_48081_t + 8) / 16) * 16;
  187. field_48081_t = MathHelper.func_41051_a(field_48081_t, 64, 256);
  188. field_6035_d.func_40657_a("max-build-height", Integer.valueOf(field_48081_t));
  189. field_6038_a.info((new StringBuilder()).append("Preparing level \"").append(s).append("\"").toString());
  190. func_6017_c(new AnvilSaveConverter(new File(".")), s, l1, worldtype);
  191. long l3 = System.nanoTime() - l;
  192. String s3 = String.format("%.3fs", new Object[] {
  193. Double.valueOf((double)l3 / 1000000000D)
  194. });
  195. field_6038_a.info((new StringBuilder()).append("Done (").append(s3).append(")! For help, type \"help\" or \"?\"").toString());
  196. if(field_6035_d.func_724_a("enable-query", false))
  197. {
  198. field_6038_a.info("Starting GS4 status listener");
  199. field_40032_y = new RConThreadQuery(this);
  200. field_40032_y.func_40402_a();
  201. }
  202. if(field_6035_d.func_724_a("enable-rcon", false))
  203. {
  204. field_6038_a.info("Starting remote control listener");
  205. field_40031_z = new RConThreadMain(this);
  206. field_40031_z.func_40402_a();
  207. }
  208. return true;
  209. }
  210. private void func_6017_c(ISaveFormat p_6017_1_, String p_6017_2_, long p_6017_3_, WorldType p_6017_5_)
  211. {
  212. if(p_6017_1_.func_22102_a(p_6017_2_))
  213. {
  214. field_6038_a.info("Converting map!");
  215. p_6017_1_.func_22101_a(p_6017_2_, new ConvertProgressUpdater(this));
  216. }
  217. field_6034_e = new WorldServer[3];
  218. field_40028_g = new long[field_6034_e.length][100];
  219. int i = field_6035_d.func_722_a("gamemode", 0);
  220. i = WorldSettings.func_35037_a(i);
  221. field_6038_a.info((new StringBuilder()).append("Default game type: ").append(i).toString());
  222. boolean flag = field_6035_d.func_724_a("generate-structures", true);
  223. WorldSettings worldsettings = new WorldSettings(p_6017_3_, i, flag, false, p_6017_5_);
  224. AnvilSaveHandler anvilsavehandler = new AnvilSaveHandler(new File("."), p_6017_2_, true);
  225. for(int j = 0; j < field_6034_e.length; j++)
  226. {
  227. byte byte0 = 0;
  228. if(j == 1)
  229. {
  230. byte0 = -1;
  231. }
  232. if(j == 2)
  233. {
  234. byte0 = 1;
  235. }
  236. if(j == 0)
  237. {
  238. field_6034_e[j] = new WorldServer(this, anvilsavehandler, p_6017_2_, byte0, worldsettings);
  239. } else
  240. {
  241. field_6034_e[j] = new WorldServerMulti(this, anvilsavehandler, p_6017_2_, byte0, worldsettings, field_6034_e[0]);
  242. }
  243. field_6034_e[j].func_4072_a(new WorldManager(this, field_6034_e[j]));
  244. field_6034_e[j].field_804_l = field_6035_d.func_722_a("difficulty", 1);
  245. field_6034_e[j].func_21116_a(field_6035_d.func_724_a("spawn-monsters", true), field_6026_m);
  246. field_6034_e[j].func_22081_n().func_35500_d(i);
  247. field_6033_f.func_618_a(field_6034_e);
  248. }
  249. char c = '\304';
  250. long l = System.currentTimeMillis();
  251. for(int k = 0; k < 1; k++)
  252. {
  253. field_6038_a.info((new StringBuilder()).append("Preparing start region for level ").append(k).toString());
  254. WorldServer worldserver = field_6034_e[k];
  255. ChunkCoordinates chunkcoordinates = worldserver.func_22078_l();
  256. for(int i1 = -c; i1 <= c && field_6025_n; i1 += 16)
  257. {
  258. for(int j1 = -c; j1 <= c && field_6025_n; j1 += 16)
  259. {
  260. long l1 = System.currentTimeMillis();
  261. if(l1 < l)
  262. {
  263. l = l1;
  264. }
  265. if(l1 > l + 1000L)
  266. {
  267. int k1 = (c * 2 + 1) * (c * 2 + 1);
  268. int i2 = (i1 + c) * (c * 2 + 1) + (j1 + 1);
  269. func_6019_a("Preparing spawn area", (i2 * 100) / k1);
  270. l = l1;
  271. }
  272. worldserver.field_20911_y.func_376_d(chunkcoordinates.field_22216_a + i1 >> 4, chunkcoordinates.field_528_b + j1 >> 4);
  273. while(worldserver.func_6156_d() && field_6025_n) ;
  274. }
  275. }
  276. }
  277. func_6011_e();
  278. }
  279. private void func_6019_a(String p_6019_1_, int p_6019_2_)
  280. {
  281. field_9013_i = p_6019_1_;
  282. field_9012_j = p_6019_2_;
  283. field_6038_a.info((new StringBuilder()).append(p_6019_1_).append(": ").append(p_6019_2_).append("%").toString());
  284. }
  285. private void func_6011_e()
  286. {
  287. field_9013_i = null;
  288. field_9012_j = 0;
  289. }
  290. private void func_6012_f()
  291. {
  292. field_6038_a.info("Saving chunks");
  293. for(int i = 0; i < field_6034_e.length; i++)
  294. {
  295. WorldServer worldserver = field_6034_e[i];
  296. worldserver.func_485_a(true, null);
  297. worldserver.func_30006_w();
  298. }
  299. }
  300. private void func_6013_g()
  301. {
  302. field_6038_a.info("Stopping server");
  303. if(field_6033_f != null)
  304. {
  305. field_6033_f.func_617_d();
  306. }
  307. for(int i = 0; i < field_6034_e.length; i++)
  308. {
  309. WorldServer worldserver = field_6034_e[i];
  310. if(worldserver != null)
  311. {
  312. func_6012_f();
  313. }
  314. }
  315. }
  316. public void func_6016_a()
  317. {
  318. field_6025_n = false;
  319. }
  320. public void run()
  321. {
  322. try
  323. {
  324. if(func_6008_d())
  325. {
  326. long l = System.currentTimeMillis();
  327. long l1 = 0L;
  328. while(field_6025_n)
  329. {
  330. long l2 = System.currentTimeMillis();
  331. long l3 = l2 - l;
  332. if(l3 > 2000L)
  333. {
  334. field_6038_a.warning("Can't keep up! Did the system time change, or is the server overloaded?");
  335. l3 = 2000L;
  336. }
  337. if(l3 < 0L)
  338. {
  339. field_6038_a.warning("Time ran backwards! Did the system time change?");
  340. l3 = 0L;
  341. }
  342. l1 += l3;
  343. l = l2;
  344. if(field_6034_e[0].func_22084_q())
  345. {
  346. func_6018_h();
  347. l1 = 0L;
  348. } else
  349. {
  350. while(l1 > 50L)
  351. {
  352. l1 -= 50L;
  353. func_6018_h();
  354. }
  355. }
  356. Thread.sleep(1L);
  357. }
  358. } else
  359. {
  360. while(field_6025_n)
  361. {
  362. func_6021_b();
  363. try
  364. {
  365. Thread.sleep(10L);
  366. }
  367. catch(InterruptedException interruptedexception)
  368. {
  369. interruptedexception.printStackTrace();
  370. }
  371. }
  372. }
  373. }
  374. catch(Throwable throwable1)
  375. {
  376. throwable1.printStackTrace();
  377. field_6038_a.log(Level.SEVERE, "Unexpected exception", throwable1);
  378. while(field_6025_n)
  379. {
  380. func_6021_b();
  381. try
  382. {
  383. Thread.sleep(10L);
  384. }
  385. catch(InterruptedException interruptedexception1)
  386. {
  387. interruptedexception1.printStackTrace();
  388. }
  389. }
  390. try
  391. {
  392. func_6013_g();
  393. field_6032_g = true;
  394. }
  395. catch(Throwable throwable2)
  396. {
  397. throwable2.printStackTrace();
  398. }
  399. finally
  400. {
  401. System.exit(0);
  402. }
  403. break MISSING_BLOCK_LABEL_346;
  404. }
  405. try
  406. {
  407. func_6013_g();
  408. field_6032_g = true;
  409. }
  410. catch(Throwable throwable)
  411. {
  412. throwable.printStackTrace();
  413. }
  414. finally
  415. {
  416. System.exit(0);
  417. }
  418. break MISSING_BLOCK_LABEL_346;
  419. Exception exception2;
  420. exception2;
  421. try
  422. {
  423. func_6013_g();
  424. field_6032_g = true;
  425. }
  426. catch(Throwable throwable3)
  427. {
  428. throwable3.printStackTrace();
  429. }
  430. finally
  431. {
  432. System.exit(0);
  433. }
  434. throw exception2;
  435. }
  436. private void func_6018_h()
  437. {
  438. long l = System.nanoTime();
  439. ArrayList arraylist = new ArrayList();
  440. for(Iterator iterator = field_6037_b.keySet().iterator(); iterator.hasNext();)
  441. {
  442. String s = (String)iterator.next();
  443. int j1 = ((Integer)field_6037_b.get(s)).intValue();
  444. if(j1 > 0)
  445. {
  446. field_6037_b.put(s, Integer.valueOf(j1 - 1));
  447. } else
  448. {
  449. arraylist.add(s);
  450. }
  451. }
  452. for(int i = 0; i < arraylist.size(); i++)
  453. {
  454. field_6037_b.remove(arraylist.get(i));
  455. }
  456. AxisAlignedBB.func_703_a();
  457. Vec3D.func_761_a();
  458. field_9014_h++;
  459. for(int j = 0; j < field_6034_e.length; j++)
  460. {
  461. long l1 = System.nanoTime();
  462. if(j == 0 || field_6035_d.func_724_a("allow-nether", true))
  463. {
  464. WorldServer worldserver = field_6034_e[j];
  465. if(field_9014_h % 20 == 0)
  466. {
  467. field_6033_f.func_28169_a(new Packet4UpdateTime(worldserver.func_22080_k()), worldserver.field_4272_q.field_6165_g);
  468. }
  469. worldserver.func_22077_g();
  470. while(worldserver.func_6156_d()) ;
  471. worldserver.func_459_b();
  472. }
  473. field_40028_g[j][field_9014_h % 100] = System.nanoTime() - l1;
  474. }
  475. field_6036_c.func_715_a();
  476. field_6033_f.func_637_b();
  477. for(int k = 0; k < field_6028_k.length; k++)
  478. {
  479. field_6028_k[k].func_607_a();
  480. }
  481. for(int i1 = 0; i1 < field_9010_p.size(); i1++)
  482. {
  483. ((IUpdatePlayerListBox)field_9010_p.get(i1)).func_690_a();
  484. }
  485. try
  486. {
  487. func_6021_b();
  488. }
  489. catch(Exception exception)
  490. {
  491. field_6038_a.log(Level.WARNING, "Unexpected exception while parsing console command", exception);
  492. }
  493. field_40027_f[field_9014_h % 100] = System.nanoTime() - l;
  494. field_48080_u[field_9014_h % 100] = Packet.field_48099_n - field_48074_E;
  495. field_48074_E = Packet.field_48099_n;
  496. field_48079_v[field_9014_h % 100] = Packet.field_48100_o - field_48075_F;
  497. field_48075_F = Packet.field_48100_o;
  498. field_48078_w[field_9014_h % 100] = Packet.field_48101_l - field_48076_G;
  499. field_48076_G = Packet.field_48101_l;
  500. field_48082_x[field_9014_h % 100] = Packet.field_48102_m - field_48077_H;
  501. field_48077_H = Packet.field_48102_m;
  502. }
  503. public void func_6010_a(String p_6010_1_, ICommandListener p_6010_2_)
  504. {
  505. field_6023_p.add(new ServerCommand(p_6010_1_, p_6010_2_));
  506. }
  507. public void func_6021_b()
  508. {
  509. ServerCommand servercommand;
  510. for(; field_6023_p.size() > 0; field_22005_o.func_22114_a(servercommand))
  511. {
  512. servercommand = (ServerCommand)field_6023_p.remove(0);
  513. }
  514. }
  515. public void func_6022_a(IUpdatePlayerListBox p_6022_1_)
  516. {
  517. field_9010_p.add(p_6022_1_);
  518. }
  519. public static void main(String p_main_0_[])
  520. {
  521. StatList.func_27092_a();
  522. try
  523. {
  524. MinecraftServer minecraftserver = new MinecraftServer();
  525. if(!java.awt.GraphicsEnvironment.isHeadless() && (p_main_0_.length <= 0 || !p_main_0_[0].equals("nogui")))
  526. {
  527. ServerGUI.func_46_a(minecraftserver);
  528. }
  529. (new ThreadServerApplication("Server thread", minecraftserver)).start();
  530. }
  531. catch(Exception exception)
  532. {
  533. field_6038_a.log(Level.SEVERE, "Failed to start the minecraft server", exception);
  534. }
  535. }
  536. public File func_6009_a(String p_6009_1_)
  537. {
  538. return new File(p_6009_1_);
  539. }
  540. public void func_2_b(String p_2_1_)
  541. {
  542. field_6038_a.info(p_2_1_);
  543. }
  544. public void func_25002_c(String p_25002_1_)
  545. {
  546. field_6038_a.warning(p_25002_1_);
  547. }
  548. public String func_1_c()
  549. {
  550. return "CONSOLE";
  551. }
  552. public WorldServer func_28004_a(int p_28004_1_)
  553. {
  554. if(p_28004_1_ == -1)
  555. {
  556. return field_6034_e[1];
  557. }
  558. if(p_28004_1_ == 1)
  559. {
  560. return field_6034_e[2];
  561. } else
  562. {
  563. return field_6034_e[0];
  564. }
  565. }
  566. public EntityTracker func_28003_b(int p_28003_1_)
  567. {
  568. if(p_28003_1_ == -1)
  569. {
  570. return field_6028_k[1];
  571. }
  572. if(p_28003_1_ == 1)
  573. {
  574. return field_6028_k[2];
  575. } else
  576. {
  577. return field_6028_k[0];
  578. }
  579. }
  580. public int func_40011_a(String p_40011_1_, int p_40011_2_)
  581. {
  582. return field_6035_d.func_722_a(p_40011_1_, p_40011_2_);
  583. }
  584. public String func_40023_a(String p_40023_1_, String p_40023_2_)
  585. {
  586. return field_6035_d.func_720_a(p_40023_1_, p_40023_2_);
  587. }
  588. public void func_40017_a(String p_40017_1_, Object p_40017_2_)
  589. {
  590. field_6035_d.func_40657_a(p_40017_1_, p_40017_2_);
  591. }
  592. public void func_40019_c()
  593. {
  594. field_6035_d.func_721_b();
  595. }
  596. public String func_40013_e()
  597. {
  598. File file = field_6035_d.func_40656_c();
  599. if(file != null)
  600. {
  601. return file.getAbsolutePath();
  602. } else
  603. {
  604. return "No settings file";
  605. }
  606. }
  607. public String func_40009_f()
  608. {
  609. return field_40030_s;
  610. }
  611. public int func_40022_g()
  612. {
  613. return field_40029_t;
  614. }
  615. public String func_40014_h()
  616. {
  617. return field_35014_p;
  618. }
  619. public String func_40012_i()
  620. {
  621. return "1.2.5";
  622. }
  623. public int func_40018_j()
  624. {
  625. return field_6033_f.func_35481_g();
  626. }
  627. public int func_40015_k()
  628. {
  629. return field_6033_f.func_35480_h();
  630. }
  631. public String[] func_40016_l()
  632. {
  633. return field_6033_f.func_40575_d();
  634. }
  635. public String func_40024_m()
  636. {
  637. return field_6035_d.func_720_a("level-name", "world");
  638. }
  639. public String func_40020_n()
  640. {
  641. return "";
  642. }
  643. public void func_40010_o()
  644. {
  645. }
  646. public String func_40008_d(String p_40008_1_)
  647. {
  648. RConConsoleSource.field_40005_a.func_40002_a();
  649. field_22005_o.func_22114_a(new ServerCommand(p_40008_1_, RConConsoleSource.field_40005_a));
  650. return RConConsoleSource.field_40005_a.func_40003_b();
  651. }
  652. public boolean func_40021_p()
  653. {
  654. return false;
  655. }
  656. public void func_40007_e(String p_40007_1_)
  657. {
  658. field_6038_a.log(Level.SEVERE, p_40007_1_);
  659. }
  660. public void func_40006_f(String p_40006_1_)
  661. {
  662. if(func_40021_p())
  663. {
  664. field_6038_a.log(Level.INFO, p_40006_1_);
  665. }
  666. }
  667. public String[] func_40026_q()
  668. {
  669. return (String[])field_6033_f.func_40574_f().toArray(new String[0]);
  670. }
  671. public String[] func_40025_r()
  672. {
  673. return (String[])field_6033_f.func_40576_e().toArray(new String[0]);
  674. }
  675. public String func_52003_getServerModName()
  676. {
  677. return "vanilla";
  678. }
  679. public static boolean func_6015_a(MinecraftServer p_6015_0_)
  680. {
  681. return p_6015_0_.field_6025_n;
  682. }
  683. }