diff --git a/src/main/java/me/ayunami2000/ayungee/Main.java b/src/main/java/me/ayunami2000/ayungee/Main.java index 0ede63e..ea5a2e7 100644 --- a/src/main/java/me/ayunami2000/ayungee/Main.java +++ b/src/main/java/me/ayunami2000/ayungee/Main.java @@ -28,6 +28,8 @@ public class Main { public static boolean forwarded = false; + public static boolean eaglerPackets = false; + public static WebSocketServer webSocketServer = null; public static Map clients = new HashMap<>(); @@ -110,6 +112,7 @@ public class Main { port = (int) config.getOrDefault("port", 25569); webPort = (int) config.getOrDefault("web_port", 25565); forwarded = (boolean) config.getOrDefault("forwarded", false); + eaglerPackets = (boolean) config.getOrDefault("eag_packets", false); List defaultMotd = new ArrayList<>(); diff --git a/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java b/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java index 499e076..8e66f09 100644 --- a/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java +++ b/src/main/java/me/ayunami2000/ayungee/WebSocketProxy.java @@ -139,12 +139,14 @@ public class WebSocketProxy extends WebSocketServer { return; } } + byte[] packet = message.array(); + if (!Main.eaglerPackets && packet.length >= 11 && packet[0] == -6 && packet[2] >= 4 && packet[4] == 69 && packet[6] == 65 && packet[8] == 71 && packet[10] == 124) return; // EAG| Client currClient = Main.clients.get(conn); if (currClient.socketOut == null) { - currClient.msgCache.add(message.array()); + currClient.msgCache.add(packet); } else if (!currClient.socket.isOutputShutdown()) { try { - currClient.socketOut.write(message.array()); + currClient.socketOut.write(packet); } catch (IOException ignored) {} } } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d41d1cf..1ccadee 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -6,6 +6,8 @@ port: 25569 web_port: 25565 # if this is behind a reverse proxy, such as caddy or nginx. uses X-Real-IP header. forwarded: false +# forward eagler-specific packets? +eag_packets: false # origin blacklist URL (leave empty to disable syncing) origin_blacklist: "https://g.eags.us/eaglercraft/origin_blacklist.txt" # whitelisted origins -- if specified, only allows the listed origins to connect diff --git a/target/ayungee-1.0-SNAPSHOT-jar-with-dependencies.jar b/target/ayungee-1.0-SNAPSHOT-jar-with-dependencies.jar deleted file mode 100644 index 08c7109..0000000 Binary files a/target/ayungee-1.0-SNAPSHOT-jar-with-dependencies.jar and /dev/null differ