Advertisement
Guest User

Untitled

a guest
Jan 19th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.88 KB | None | 0 0
  1. package net.minecraft.client;
  2.  
  3. import java.net.UnknownHostException;
  4. import java.util.concurrent.ScheduledThreadPoolExecutor;
  5. import java.util.concurrent.ThreadPoolExecutor;
  6.  
  7. import net.minecraft.client.gui.Gui;
  8. import net.minecraft.client.gui.GuiScreen;
  9. import net.minecraft.client.multiplayer.ServerData;
  10. import net.minecraft.client.network.OldServerPinger;
  11. import net.minecraft.client.renderer.texture.DynamicTexture;
  12. import net.minecraft.util.EnumChatFormatting;
  13. import net.minecraft.util.ResourceLocation;
  14.  
  15. import org.lwjgl.opengl.GL11;
  16.  
  17. import com.google.common.util.concurrent.ThreadFactoryBuilder;
  18.  
  19. public class ApiInfo
  20. {
  21. private static final ThreadPoolExecutor tpe = new ScheduledThreadPoolExecutor(5, (new ThreadFactoryBuilder()).setNameFormat("Server Pinger #%d").setDaemon(true).build());
  22. private final Minecraft mc;
  23. private ServerData data;
  24. private OldServerPinger pinger = new OldServerPinger();
  25. private ResourceLocation icon;
  26. private DynamicTexture dt;
  27. private long last = 0;
  28. private static final String __OBFID = "CL_10000817";
  29.  
  30. public ApiInfo(String defaultName, String ip)
  31. {
  32. this.data = new ServerData(defaultName, ip);
  33. this.mc = Minecraft.getMinecraft();
  34. this.icon = new ResourceLocation("servers/" + ip + "/icon");
  35. this.dt = (DynamicTexture)this.mc.getTextureManager().getTexture(this.icon);
  36. }
  37.  
  38. public void pre_init()
  39. {
  40. init(true);
  41. }
  42.  
  43. private void init(boolean init)
  44. {
  45. if (init)
  46. {
  47. this.data.field_78841_f = true;
  48. this.data.pingToServer = -2L;
  49. this.data.serverMOTD = "";
  50. this.data.populationInfo = "???";
  51. }
  52. tpe.submit(new Runnable()
  53. {
  54. private static final String __OBFID = "CL_0000818";
  55. public void run()
  56. {
  57. try
  58. {
  59. ApiInfo.this.pinger.func_147224_a(ApiInfo.this.data);
  60. }
  61. catch (UnknownHostException var2)
  62. {
  63. ApiInfo.this.data.pingToServer = -1L;
  64. ApiInfo.this.data.serverMOTD = EnumChatFormatting.DARK_RED + "Can\'t resolve hostname";
  65. }
  66. catch (Exception var3)
  67. {
  68. ApiInfo.this.data.pingToServer = -1L;
  69. ApiInfo.this.data.serverMOTD = EnumChatFormatting.DARK_RED + "Can\'t connect to server.";
  70. }
  71. }
  72. });
  73. }
  74.  
  75. public void refresh()
  76. {
  77. long now = System.currentTimeMillis();
  78. if (now - last > 5000L)
  79. {
  80. last = now;
  81. init(false);
  82. }
  83. pinger.func_147223_a();
  84. }
  85.  
  86. public void close()
  87. {
  88. pinger.func_147226_b();
  89. }
  90.  
  91. public String getPopulation()
  92. {
  93. return data.populationInfo;
  94. }
  95. public String getVersion()
  96. {
  97. return data.gameVersion;
  98. }
  99.  
  100. public String getMOTD()
  101. {
  102. return data.serverMOTD;
  103. }
  104.  
  105. public String getName()
  106. {
  107. return data.serverName;
  108. }
  109.  
  110. public long getPing()
  111. {
  112. return data.pingToServer;
  113. }
  114.  
  115. public boolean getAcceptedTextures()
  116. {
  117. return data.field_78841_f;
  118. }
  119.  
  120. public void drawIconPing(GuiScreen gui, int x, int y, boolean with_status)
  121. {
  122.  
  123. byte dx = 0;
  124. int dy = 0;
  125. String status = "";
  126.  
  127. if (data.field_78841_f && data.pingToServer != -2L)
  128. {
  129. if (this.data.pingToServer < 0L)
  130. dy = 5;
  131. else if (data.pingToServer < 150L)
  132. dy = 0;
  133. else if (data.pingToServer < 300L)
  134. dy = 1;
  135. else if (data.pingToServer < 600L)
  136. dy = 2;
  137. else if (data.pingToServer < 1000L)
  138. dy = 3;
  139. else
  140. dy = 4;
  141. if (data.pingToServer < 0L)
  142. status = "(no connection)";
  143. else
  144. status = this.data.pingToServer + "ms";
  145. }
  146. else
  147. {
  148. dx = 1;
  149. dy = (int)(Minecraft.getSystemTime() / 100L);
  150. if (dy > 4)
  151. dy = 8 - dy;
  152. status = "Pinging...";
  153. }
  154. int decay = !with_status ? 0 : mc.fontRenderer.getStringWidth(status) + 5;
  155. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  156. mc.getTextureManager().bindTexture(Gui.icons);
  157. Gui.func_146110_a(x + decay, y, (float)(dx * 10), (float)(176 + dy * 8), 10, 8, 256.0F, 256.0F);
  158. if (with_status)
  159. gui.drawString(mc.fontRenderer, status, x, y, 0xffffff);
  160. }
  161.  
  162. public void drawIconPing2(Gui gui, int x, int y, boolean with_status)
  163. {
  164.  
  165. byte dx = 0;
  166. int dy = 0;
  167. String status = "";
  168.  
  169. if (data.field_78841_f && data.pingToServer != -2L)
  170. {
  171. if (this.data.pingToServer < 0L)
  172. dy = 5;
  173. else if (data.pingToServer < 150L)
  174. dy = 0;
  175. else if (data.pingToServer < 300L)
  176. dy = 1;
  177. else if (data.pingToServer < 600L)
  178. dy = 2;
  179. else if (data.pingToServer < 1000L)
  180. dy = 3;
  181. else
  182. dy = 4;
  183. if (data.pingToServer < 0L)
  184. status = "(no connection)";
  185. else
  186. status = this.data.pingToServer + "ms";
  187. }
  188. else
  189. {
  190. dx = 1;
  191. dy = (int)(Minecraft.getSystemTime() / 100L);
  192. if (dy > 4)
  193. dy = 8 - dy;
  194. status = "Pinging...";
  195. }
  196. int decay = !with_status ? 0 : mc.fontRenderer.getStringWidth(status) + 5;
  197. GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
  198. mc.getTextureManager().bindTexture(Gui.icons);
  199. Gui.func_146110_a(x + decay, y, (float)(dx * 10), (float)(176 + dy * 8), 10, 8, 256.0F, 256.0F);
  200. if (with_status)
  201. gui.drawString(mc.fontRenderer, status, x, y, 0xffffff);
  202. }
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement