From 5e5e54dde1876fd679d1ba22948a85b21333a242 Mon Sep 17 00:00:00 2001 From: ayunami2000 Date: Fri, 8 Jul 2022 10:34:00 -0400 Subject: [PATCH] quick fix & server timeout after 10sec --- .../me/ayunami2000/ayungee/ChatHandler.java | 3 --- .../java/me/ayunami2000/ayungee/Main.java | 1 - .../ayunami2000/ayungee/WebSocketProxy.java | 10 +++++++++- ...gee-1.0-SNAPSHOT-jar-with-dependencies.jar | Bin 815090 -> 815054 bytes 4 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/me/ayunami2000/ayungee/ChatHandler.java b/src/main/java/me/ayunami2000/ayungee/ChatHandler.java index 9da05c0..6b4a9f6 100644 --- a/src/main/java/me/ayunami2000/ayungee/ChatHandler.java +++ b/src/main/java/me/ayunami2000/ayungee/ChatHandler.java @@ -24,9 +24,6 @@ public class ChatHandler { try { int destServer = Integer.parseInt(args); client.server = Math.max(0, Math.min(Main.servers.size() - 1, destServer)); - try { - client.socket.close(); - } catch (IOException ignored) {} } catch (NumberFormatException e) { //not a number client.conn.send(new byte[] { 3, 0, 29, 0, (byte) 167, 0, 57, 0, 84, 0, 104, 0, 97, 0, 116, 0, 32, 0, 105, 0, 115, 0, 32, 0, 110, 0, 111, 0, 116, 0, 32, 0, 97, 0, 32, 0, 118, 0, 97, 0, 108, 0, 105, 0, 100, 0, 32, 0, 110, 0, 117, 0, 109, 0, 98, 0, 101, 0, 114, 0, 33 }); diff --git a/src/main/java/me/ayunami2000/ayungee/Main.java b/src/main/java/me/ayunami2000/ayungee/Main.java index b0d014c..c7b3c31 100644 --- a/src/main/java/me/ayunami2000/ayungee/Main.java +++ b/src/main/java/me/ayunami2000/ayungee/Main.java @@ -282,7 +282,6 @@ public class Main { try { int destServer = Integer.parseInt(pieces[2]); targetUser.server = Math.max(0, Math.min(servers.size() - 1, destServer)); - targetUser.socket.close(); printMsg("Successfully send user " + targetUser + " to server " + destServer + "!"); } catch (NumberFormatException e) { printMsg("That is not a valid number!"); diff --git a/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java b/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java index 0349339..3ce1e3c 100644 --- a/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java +++ b/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java @@ -7,6 +7,7 @@ import org.java_websocket.server.WebSocketServer; import java.io.IOException; import java.net.InetSocketAddress; import java.net.Socket; +import java.net.SocketTimeoutException; import java.nio.ByteBuffer; import java.time.Instant; import java.util.*; @@ -125,7 +126,14 @@ public class WebSocketProxy extends WebSocketServer { selfClient.hasLoginHappened = false; if (!selfClient.firstTime) Main.printMsg("Player " + selfClient + " joined server " + selfClient.server + "!"); ServerItem chosenServer = Main.servers.get(currServer); - Socket selfSocket = new Socket(chosenServer.host, chosenServer.port); + Socket selfSocket = new Socket(); + try { + // todo: pregenerate InetSocketAddresses + selfSocket.connect(new InetSocketAddress(chosenServer.host, chosenServer.port), 10000); + } catch (SocketTimeoutException e) { + conn.close(); + return; + } selfClient.setSocket(selfSocket); if (!selfClient.firstTime) sendToServer(selfClient.handshake, selfClient); if (selfClient.firstTime) { diff --git a/target/ayungee-1.0-SNAPSHOT-jar-with-dependencies.jar b/target/ayungee-1.0-SNAPSHOT-jar-with-dependencies.jar index 879581d92eab9cb28200cee75aa433b5e891ab05..0b71fe9dfc08eb0a9213c1cf223dfada5c570275 100644 GIT binary patch delta 16717 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 JR%CDk#R2!H5Cs4L delta 16784 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