Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.53 KB | None | 0 0
  1. import java.io.BufferedInputStream;
  2. import java.io.BufferedReader;
  3. import java.io.BufferedWriter;
  4. import java.io.DataInputStream;
  5. import java.io.File;
  6. import java.io.FileInputStream;
  7. import java.io.FileNotFoundException;
  8. import java.io.IOException;
  9. import java.io.InputStreamReader;
  10. import java.io.OutputStreamWriter;
  11. import java.io.PrintStream;
  12. import java.io.PrintWriter;
  13. import java.net.InetAddress;
  14. import java.net.ServerSocket;
  15. import java.net.Socket;
  16. import java.text.DateFormat;
  17. import java.util.Calendar;
  18.  
  19. public class RuinServer
  20. {
  21. private static final int portnumber = 33126;
  22.  
  23. public RuinServer() {}
  24.  
  25. private static void saveChanges(String logs, int ruins)
  26. {
  27. try
  28. {
  29. PrintWriter out = new PrintWriter("ruinlog.txt");
  30. out.println(ruins + ";" + logs);
  31. out.close();
  32.  
  33. }
  34. catch (FileNotFoundException e)
  35. {
  36.  
  37. e.printStackTrace();
  38. }
  39. }
  40.  
  41.  
  42. private static void saveIP(String ips)
  43. {
  44. try
  45. {
  46. PrintWriter out = new PrintWriter("IPlogs.txt");
  47. out.println(ips);
  48. out.close();
  49.  
  50. }
  51. catch (FileNotFoundException e)
  52. {
  53.  
  54. e.printStackTrace();
  55. }
  56. }
  57.  
  58.  
  59. public static String loadPreviousIPs()
  60. {
  61. File file = new File("IPlogs.txt");
  62. FileInputStream fis = null;
  63. BufferedInputStream bis = null;
  64. DataInputStream dis = null;
  65. String ips = "";
  66.  
  67. try
  68. {
  69. fis = new FileInputStream(file);
  70. bis = new BufferedInputStream(fis);
  71. dis = new DataInputStream(bis);
  72.  
  73. while (dis.available() != 0)
  74. {
  75.  
  76. ips = dis.readLine();
  77. }
  78.  
  79. }
  80. catch (FileNotFoundException e)
  81. {
  82. e.printStackTrace();
  83.  
  84. }
  85. catch (IOException e)
  86. {
  87. e.printStackTrace();
  88. }
  89.  
  90. return ips;
  91. }
  92.  
  93.  
  94. public static String loadPreviousRuins()
  95. {
  96. File file = new File("ruinlog.txt");
  97. FileInputStream fis = null;
  98. BufferedInputStream bis = null;
  99. DataInputStream dis = null;
  100. String prevruins = "";
  101.  
  102. try
  103. {
  104. fis = new FileInputStream(file);
  105. bis = new BufferedInputStream(fis);
  106. dis = new DataInputStream(bis);
  107.  
  108. while (dis.available() != 0)
  109. {
  110.  
  111. prevruins = dis.readLine();
  112. }
  113.  
  114. }
  115. catch (FileNotFoundException e)
  116. {
  117. e.printStackTrace();
  118.  
  119. }
  120. catch (IOException e)
  121. {
  122. e.printStackTrace();
  123. }
  124.  
  125. return prevruins;
  126. }
  127.  
  128.  
  129. public static void main(String[] args)
  130. {
  131. int clientid = 0;
  132. String ruinlogs = "";
  133. String vernum = "7.1";
  134. String ips = "";
  135.  
  136. DateFormat dateFormat = new java.text.SimpleDateFormat("HH:mm:ss");
  137.  
  138. ServerSocket serverSocket = null;
  139.  
  140. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Ruin server starting at port: " + 33126);
  141.  
  142. ruinlogs = loadPreviousRuins();
  143. ips = loadPreviousIPs();
  144.  
  145. int loop = 1;
  146. int saveloop = 1;
  147. int ruins = 0;
  148. String username = "";String password = "";
  149. String shareLink = "https://mega.nz/#!EZpT3Lra!SaywhN7Pwj2jyAQ47r4e8bOXEVOKwyu_FpvX2BT6JXI";
  150. RuinUsers serverusers = new RuinUsers();
  151. pastIPS pastips = new pastIPS();
  152.  
  153. if (ruinlogs.contains(";"))
  154. {
  155. ruins = Integer.parseInt(ruinlogs.substring(0, ruinlogs.indexOf(";")));
  156. ruinlogs = ruinlogs.substring(ruinlogs.indexOf(";") + 1, ruinlogs.length());
  157. }
  158. try {
  159. serverSocket = new ServerSocket(33126);
  160. for (; 1 == saveloop;
  161.  
  162.  
  163. 1 == loop)
  164. {
  165. loop = 1;
  166. continue;
  167.  
  168.  
  169. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Waiting for clients to connect.");
  170.  
  171.  
  172. Socket socket = serverSocket.accept();
  173. clientid++;
  174. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Client #" + clientid + " has connected. <" + socket.getRemoteSocketAddress().toString() + ">");
  175.  
  176. if (!pastips.isExist(socket.getInetAddress().toString())) { pastips.addIP(socket.getInetAddress().toString());
  177. }
  178. pastips.addConnection(socket.getInetAddress().toString());
  179.  
  180.  
  181. BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  182.  
  183.  
  184. Boolean loggedin = Boolean.valueOf(false);
  185. Boolean connection = Boolean.valueOf(true);
  186. int falseattempts = 0;
  187. while ((!loggedin.booleanValue()) && (connection.booleanValue()) && (falseattempts <= 5) && (pastips.isAllowed(socket.getInetAddress().toString())))
  188. {
  189. username = "";
  190. password = "";
  191. BufferedWriter bw1 = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
  192. String input = br.readLine();
  193. if (input != null)
  194. {
  195. username = input.substring(0, input.indexOf(";"));
  196. password = input.substring(input.indexOf(";") + 1, input.length());
  197. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> " + username + " ; " + password);
  198.  
  199. if ((username.length() < 20) || (password.length() < 20))
  200. {
  201. if (serverusers.userVrf(username, password))
  202. {
  203. bw1.write("true");
  204. loggedin = Boolean.valueOf(true);
  205. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> User #" + clientid + " (" + username + ") had just logged in!");
  206. ips = ips + username + " - " + socket.getRemoteSocketAddress().toString() + " " + "\n";
  207. saveIP(ips);
  208. }
  209. else
  210. {
  211. bw1.write("false");
  212. pastips.addAttempt(socket.getInetAddress().toString());
  213. falseattempts++;
  214. }
  215.  
  216. bw1.newLine();
  217. bw1.write(ruins);
  218. bw1.newLine();
  219. bw1.write("https://mega.nz/#!EZpT3Lra!SaywhN7Pwj2jyAQ47r4e8bOXEVOKwyu_FpvX2BT6JXI");
  220. bw1.newLine();
  221. bw1.write("7.1");
  222. bw1.newLine();
  223. bw1.write(serverusers.getMaxRuins(username) + ";" + serverusers.getCurrentRuins(username));
  224. bw1.newLine();
  225.  
  226. bw1.write(ruinlogs);
  227. bw1.newLine();
  228. bw1.flush();
  229. }
  230. } else {
  231. connection = Boolean.valueOf(false);
  232. }
  233. }
  234. if ((!pastips.isAllowed(socket.getInetAddress().toString())) || (falseattempts > 5))
  235. {
  236. connection = Boolean.valueOf(false);
  237. socket.close();
  238. }
  239.  
  240.  
  241.  
  242. if ((loggedin.booleanValue()) && (connection.booleanValue()))
  243. {
  244. int tempruins = serverusers.getCurrentRuins(username);
  245.  
  246. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Message from client #" + clientid + " (" + username + "):" + br.readLine());
  247. String data = br.readLine();
  248. while ((data != null) && (loop == 1) && (!socket.isClosed()))
  249. {
  250. if ((data.contains("ruin stop")) && (username.equals("eldaruin")))
  251. {
  252. saveloop = 2;
  253. loop = 2;
  254. }
  255.  
  256. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Message from client #" + clientid + " (" + username + "):" + data);
  257.  
  258. if ((data.contains("#")) && (!data.equals("ruin stop")))
  259. {
  260. ruinlogs = data + " by - " + username + " - ^" + ruinlogs;
  261. ruins++;
  262. tempruins++;
  263. serverusers.addToRuinCount(username);
  264. } else {
  265. ruinlogs = data + "^" + ruinlogs;
  266. }
  267. saveChanges(ruinlogs, ruins);
  268.  
  269. if ((!username.equals("eldaruin")) && (tempruins == serverusers.getMaxRuins(username))) loop = 2;
  270. data = br.readLine();
  271. }
  272. }
  273. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Client #" + clientid + " (" + username + ") disconnected. <" + socket.getRemoteSocketAddress().toString() + ">");
  274. }
  275.  
  276.  
  277. }
  278. catch (IOException e)
  279. {
  280. e.printStackTrace();
  281. }
  282.  
  283. saveChanges(ruinlogs, ruins);
  284. System.out.println("<" + dateFormat.format(Calendar.getInstance().getTime()) + "> Server Has stopped.");
  285. }
  286. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement