PageRenderTime 76ms CodeModel.GetById 25ms RepoModel.GetById 3ms app.codeStats 0ms

/src/ft.java

https://github.com/kpfile/Minecraft-Server-Mod
Java | 358 lines | 306 code | 42 blank | 10 comment | 53 complexity | c5c8edc84230b8e0ea2f31f91905f0d8 MD5 | raw file
  1. import java.io.BufferedReader;
  2. import java.io.File;
  3. import java.io.FileReader;
  4. import java.io.FileWriter;
  5. import java.io.PrintWriter;
  6. import java.util.ArrayList;
  7. import java.util.List;
  8. import java.util.logging.Logger;
  9. import net.minecraft.server.MinecraftServer;
  10. public class ft {
  11. public static Logger a = Logger.getLogger("Minecraft");
  12. public List b = new ArrayList();
  13. private MinecraftServer c;
  14. private hg d;
  15. private int e;
  16. private ArrayList f = new ArrayList();
  17. private ArrayList g = new ArrayList();
  18. private ArrayList h = new ArrayList();
  19. private File i;
  20. private File j;
  21. private File k;
  22. private cl l;
  23. public ft(MinecraftServer paramMinecraftServer) {
  24. this.c = paramMinecraftServer;
  25. this.i = paramMinecraftServer.a("banned-players.txt");
  26. this.j = paramMinecraftServer.a("banned-ips.txt");
  27. this.k = paramMinecraftServer.a("ops.txt");
  28. this.d = new hg(paramMinecraftServer);
  29. this.e = paramMinecraftServer.d.a("max-players", 20);
  30. e();
  31. g();
  32. i();
  33. f();
  34. h();
  35. j();
  36. }
  37. public void a(ee paramee) {
  38. this.l = new cl(new File(paramee.s, "players"));
  39. }
  40. public int a() {
  41. return this.d.b();
  42. }
  43. public void a(ea paramea) {
  44. this.b.add(paramea);
  45. this.l.b(paramea);
  46. this.c.e.y.d((int) paramea.l >> 4, (int) paramea.n >> 4);
  47. while (this.c.e.a(paramea, paramea.v).size() != 0) {
  48. paramea.a(paramea.l, paramea.m + 1.0D, paramea.n);
  49. }
  50. this.c.e.a(paramea);
  51. this.d.a(paramea);
  52. for (String str : etc.getInstance().motd) {
  53. paramea.a.b(new ba(str));
  54. }
  55. etc.getInstance().getLoader().callHook(PluginLoader.Hook.LOGIN, new Object[]{paramea});
  56. }
  57. public void b(ea paramea) {
  58. try {
  59. this.d.c(paramea);
  60. } catch (NullPointerException ex) {
  61. a.info("What?");
  62. }
  63. }
  64. public void c(ea paramea) {
  65. this.d.b(paramea);
  66. this.l.a(paramea);
  67. this.c.e.d(paramea);
  68. this.b.remove(paramea);
  69. }
  70. public ea a(ew paramew, String paramString1, String paramString2) {
  71. if (this.f.contains(paramString1.trim().toLowerCase())) {
  72. paramew.b("You are banned from this server!");
  73. return null;
  74. }
  75. String ip = paramew.b.b().toString().split(":")[0].substring(1);
  76. if (this.g.contains(ip)) {
  77. paramew.b("Your IP address is banned from this server!");
  78. return null;
  79. }
  80. for (int i = 0; i < this.b.size(); ++i) {
  81. ea localea = (ea) this.b.get(i);
  82. if (localea.aq.equalsIgnoreCase(paramString1)) {
  83. String ip2 = localea.a.b.b().toString().split(":")[0].substring(1);
  84. // perhaps they timed out since they're coming from the same IP
  85. if (ip2.equals(ip)) {
  86. localea.a.b("You logged in from another location.");
  87. } else {
  88. paramew.b("You are currently logged in.");
  89. }
  90. // ^ otherwise no.
  91. }
  92. }
  93. if (etc.getInstance().whitelistEnabled && !(etc.getInstance().getDataSource().isUserOnWhitelist(paramString1)
  94. || etc.getInstance().isAdmin(paramString1))) {
  95. paramew.b(etc.getInstance().whitelistMessage);
  96. return null;
  97. } else if (this.b.size() >= this.e && !(etc.getInstance().getDataSource().hasReserveList() && (etc.getInstance().isAdmin(paramString1)
  98. || etc.getInstance().getDataSource().isUserOnReserveList(paramString1)))) {
  99. paramew.b("Server is full.");
  100. return null;
  101. }
  102. User user = etc.getInstance().getUser(paramString1);
  103. if (user != null) {
  104. if (!user.IPs[0].equals("")) {
  105. boolean kick = true;
  106. for (int i = 0; i < user.IPs.length; i++) {
  107. if (!user.IPs[i].equals("") && ip.equals(user.IPs[i])) {
  108. kick = false;
  109. }
  110. }
  111. if (kick) {
  112. paramew.b("IP doesn't match specified IP.");
  113. return null;
  114. }
  115. }
  116. }
  117. Object obj = etc.getInstance().getLoader().callHook(PluginLoader.Hook.LOGINCHECK, new Object[]{paramString1});
  118. if (obj instanceof String) {
  119. String result = (String)obj;
  120. if (result != null && !result.equals("")) {
  121. paramew.b(result);
  122. return null;
  123. }
  124. }
  125. return new ea(this.c, this.c.e, paramString1, new in(this.c.e));
  126. }
  127. /**
  128. * Returns the list of bans
  129. * @return
  130. */
  131. public String getBans() {
  132. StringBuilder builder = new StringBuilder();
  133. for (int l = 0; l < this.f.size(); ++l) {
  134. if (l > 0) {
  135. builder.append(", ");
  136. }
  137. builder.append(this.f.get(l));
  138. }
  139. return builder.toString();
  140. }
  141. /**
  142. * Returns the list of IP bans
  143. * @return
  144. */
  145. public String getIpBans() {
  146. StringBuilder builder = new StringBuilder();
  147. for (int l = 0; l < this.g.size(); ++l) {
  148. if (l > 0) {
  149. builder.append(", ");
  150. }
  151. builder.append(this.g.get(l));
  152. }
  153. return builder.toString();
  154. }
  155. public void b() {
  156. this.d.a();
  157. }
  158. public void a(int paramInt1, int paramInt2, int paramInt3) {
  159. this.d.a(paramInt1, paramInt2, paramInt3);
  160. }
  161. public void a(hp paramhp) {
  162. for (int m = 0; m < this.b.size(); m++) {
  163. ea localea = (ea) this.b.get(m);
  164. localea.a.b(paramhp);
  165. }
  166. }
  167. public String c() {
  168. String str = "";
  169. for (int m = 0; m < this.b.size(); m++) {
  170. if (m > 0) {
  171. str = str + ", ";
  172. }
  173. str = str + ((ea) this.b.get(m)).aq;
  174. }
  175. return str;
  176. }
  177. public void a(String paramString) {
  178. this.f.add(paramString.toLowerCase());
  179. f();
  180. }
  181. public void b(String paramString) {
  182. this.f.remove(paramString.toLowerCase());
  183. f();
  184. }
  185. private void e() {
  186. try {
  187. this.f.clear();
  188. BufferedReader localBufferedReader = new BufferedReader(new FileReader(this.i));
  189. String str = "";
  190. while ((str = localBufferedReader.readLine()) != null) {
  191. this.f.add(str.trim().toLowerCase());
  192. }
  193. localBufferedReader.close();
  194. } catch (Exception localException) {
  195. a.warning("Failed to load ban list: " + localException);
  196. }
  197. }
  198. private void f() {
  199. try {
  200. PrintWriter localPrintWriter = new PrintWriter(new FileWriter(this.i, false));
  201. for (Object str : this.f) {
  202. localPrintWriter.println(str);
  203. }
  204. localPrintWriter.close();
  205. } catch (Exception localException) {
  206. a.warning("Failed to save ban list: " + localException);
  207. }
  208. }
  209. public void c(String paramString) {
  210. this.g.add(paramString.toLowerCase());
  211. h();
  212. }
  213. public void d(String paramString) {
  214. this.g.remove(paramString.toLowerCase());
  215. h();
  216. }
  217. private void g() {
  218. try {
  219. this.g.clear();
  220. BufferedReader localBufferedReader = new BufferedReader(new FileReader(this.j));
  221. String str = "";
  222. while ((str = localBufferedReader.readLine()) != null) {
  223. this.g.add(str.trim().toLowerCase());
  224. }
  225. localBufferedReader.close();
  226. } catch (Exception localException) {
  227. a.warning("Failed to load ip ban list: " + localException);
  228. }
  229. }
  230. private void h() {
  231. try {
  232. PrintWriter localPrintWriter = new PrintWriter(new FileWriter(this.j, false));
  233. for (Object str : this.g) {
  234. localPrintWriter.println(str);
  235. }
  236. localPrintWriter.close();
  237. } catch (Exception localException) {
  238. a.warning("Failed to save ip ban list: " + localException);
  239. }
  240. }
  241. public void e(String paramString) {
  242. this.h.add(paramString.toLowerCase());
  243. j();
  244. }
  245. public void f(String paramString) {
  246. this.h.remove(paramString.toLowerCase());
  247. j();
  248. }
  249. private void i() {
  250. try {
  251. this.h.clear();
  252. BufferedReader localBufferedReader = new BufferedReader(new FileReader(this.k));
  253. String str = "";
  254. while ((str = localBufferedReader.readLine()) != null) {
  255. this.h.add(str.trim().toLowerCase());
  256. }
  257. localBufferedReader.close();
  258. } catch (Exception localException) {
  259. a.warning("Failed to load ip ban list: " + localException);
  260. }
  261. }
  262. private void j() {
  263. try {
  264. PrintWriter localPrintWriter = new PrintWriter(new FileWriter(this.k, false));
  265. for (Object str : this.h) {
  266. localPrintWriter.println(str);
  267. }
  268. localPrintWriter.close();
  269. } catch (Exception localException) {
  270. a.warning("Failed to save ip ban list: " + localException);
  271. }
  272. }
  273. public boolean g(String paramString) {
  274. return this.h.contains(paramString.trim().toLowerCase());
  275. }
  276. public ea h(String paramString) {
  277. for (int m = 0; m < this.b.size(); m++) {
  278. ea localea = (ea) this.b.get(m);
  279. if (localea.aq.equalsIgnoreCase(paramString)) {
  280. return localea;
  281. }
  282. }
  283. return null;
  284. }
  285. public void a(String paramString1, String paramString2) {
  286. ea localea = h(paramString1);
  287. if (localea != null) {
  288. localea.a.b(new ba(paramString2));
  289. }
  290. }
  291. public void i(String paramString) {
  292. ba localba = new ba(paramString);
  293. for (int m = 0; m < this.b.size(); m++) {
  294. ea localea = (ea) this.b.get(m);
  295. if (g(localea.aq)) {
  296. localea.a.b(localba);
  297. }
  298. }
  299. }
  300. public boolean a(String paramString, hp paramhp) {
  301. ea localea = h(paramString);
  302. if (localea != null) {
  303. localea.a.b(paramhp);
  304. return true;
  305. }
  306. return false;
  307. }
  308. public void a(int paramInt1, int paramInt2, int paramInt3, as paramas) {
  309. this.d.a(new ib(paramInt1, paramInt2, paramInt3, paramas), paramInt1, paramInt2, paramInt3);
  310. }
  311. public void d() {
  312. for (int m = 0; m < this.b.size(); m++) {
  313. this.l.a((ea) this.b.get(m));
  314. }
  315. }
  316. }