diff options
Diffstat (limited to 'src/main/java/gq/malwarefight/tokenapp/SocketThread.java')
-rw-r--r-- | src/main/java/gq/malwarefight/tokenapp/SocketThread.java | 54 |
1 files changed, 26 insertions, 28 deletions
diff --git a/src/main/java/gq/malwarefight/tokenapp/SocketThread.java b/src/main/java/gq/malwarefight/tokenapp/SocketThread.java index 572ca57..05db6f0 100644 --- a/src/main/java/gq/malwarefight/tokenapp/SocketThread.java +++ b/src/main/java/gq/malwarefight/tokenapp/SocketThread.java @@ -1,13 +1,13 @@ package gq.malwarefight.tokenapp; import com.mojang.authlib.exceptions.AuthenticationException; +import gq.malwarefight.nosession.mixin.Utils; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.nio.charset.StandardCharsets; -import java.util.Scanner; public class SocketThread extends Thread { private final Socket sock; @@ -27,37 +27,35 @@ public class SocketThread extends Thread { try { InputStream in = sock.getInputStream(); OutputStream out = sock.getOutputStream(); - Scanner scanner = new Scanner(in, StandardCharsets.UTF_8.name()); while (true) { - if (scanner.hasNextLine()) { - String line = scanner.nextLine(); - String[] parts = line.split(" "); - if ("login".equals(parts[0])) { - try { - Main.sessionService.joinServer( - Main.gameProfile, Main.authenticationService.getClientToken(), parts[1] - ); - } catch (Exception e) { - if (e instanceof ArrayIndexOutOfBoundsException) { - writeResponse("400 Bad Request", out); - } else if (e instanceof AuthenticationException) { - writeResponse("401 Unauthorized", out); - } else { - writeResponse("500 Internal Server Error", out); - } - continue; + String line = Utils.readString(in, '\n'); + String[] parts = line.split(" "); + if ("login".equals(parts[0])) { + try { + Main.sessionService.joinServer( + Main.gameProfile, Main.authenticationService.getClientToken(), parts[1] + ); + } catch (Exception e) { + if (e instanceof ArrayIndexOutOfBoundsException) { + writeResponse("400 Bad Request", out); + } else if (e instanceof AuthenticationException) { + writeResponse("401 Unauthorized", out); + } else { + writeResponse("500 Internal Server Error", out); } - writeResponse("200 OK", out); - } else if ("disconnect".equals(parts[0])) { - sock.close(); - } else if ("fullquit".equals(parts[0])) { - Main.running = false; - sock.close(); - return; - } else { - writeResponse("418 I'm a teapot", out); + continue; } + writeResponse("200 OK", out); + } else if ("disconnect".equals(parts[0])) { + sock.close(); + } else if ("fullquit".equals(parts[0])) { + System.exit(0); + } else if ("id".equals(parts[0])) { + writeResponse(Long.toString(Main.ID), out); + } else { + writeResponse("418 I'm a teapot", out); } + } } catch (IOException ignored) {} } |