From b80d5f67726907f9527b079b455a4a1c680366ac Mon Sep 17 00:00:00 2001 From: lax1dude Date: Sat, 16 Nov 2024 17:17:11 -0800 Subject: [PATCH] (1.3.3) Add HAProxy and 1.9-1.12 support to EaglerXBungee --- README_EAGLERXBUNGEE.md | 5 +- .../EaglerXBungee-Latest.jar | Bin 599935 -> 600746 bytes .../gateway_bungeecord/EaglerXBungee.java | 2 +- .../config/EaglerListenerConfig.java | 33 +++++++-- .../server/EaglerPipeline.java | 8 ++- .../server/HttpHandshakeHandler.java | 41 ++++++++--- .../server/HttpServerQueryHandler.java | 3 + .../server/HttpWebSocketHandler.java | 67 +++++++++--------- .../server/query/VersionQueryHandler.java | 16 ++--- .../config/default_listeners.yml | 3 + .../src/main/resources/plugin.yml | 2 +- gateway_version | 2 +- 12 files changed, 120 insertions(+), 62 deletions(-) diff --git a/README_EAGLERXBUNGEE.md b/README_EAGLERXBUNGEE.md index 4c05972..466b855 100644 --- a/README_EAGLERXBUNGEE.md +++ b/README_EAGLERXBUNGEE.md @@ -46,7 +46,7 @@ The settings.yml file is primarily used for configuring the built-in skin and ca - **`disable_fnaw_skins_everywhere:`** Boolean, default value is `false`, can be used to globally disable FNAW skins if your players bitch about them a lot and are too lazy to just disable the FNAW skins locally on their clients. - **`disable_fnaw_skins_on_servers:`** List of strings, default value is nothing (`[]`), contains a list of names of registered servers on your BungeeCord proxy that the FNAW skins should be disabled on. Good for explicitly disabling them for PVP but allowing them everywhere else. - **`enable_backend_rpc_api:`** Boolean, default value is `false`, if support for servers running the EaglerXBukkitAPI plugin should be enabled or not. -- **use_modernized_channel_names:`** Boolean, default value is `false`, if "modernized" plugin channel names compatible with Minecraft 1.13+ should be used for EaglerXBukkitAPI plugin message packets +- **`use_modernized_channel_names:`** Boolean, default value is `false`, if "modernized" plugin channel names compatible with Minecraft 1.13+ should be used for EaglerXBukkitAPI plugin message packets ### `listeners.yml` @@ -65,9 +65,12 @@ Defines one or more "listeners" (open ports) for EaglercraftX players to use to - **`server_motd:`** List of up to 2 strings, default value is `'&6An EaglercraftX server'`, sets the contents of the listener's MOTD, which is the text displayed along with the `server_icon` when players add this server's listener address to their client's Multiplayer menu server list. - **`allow_motd:`** Boolean, default value is `true`, if this listener should respond to MOTD queries or not. - **`allow_query:`** Boolean, default value is `true`, if this listener should respond to all other types of queries or not. +- **`min_minecraft_protocol:`** Integer, default value is `47`, sets the minimum Minecraft [protocol version](https://wiki.vg/Protocol_version_numbers) that EaglercraftX-based clients are allowed to connect with (`47` = 1.8) +- **`max_minecraft_protocol:`** Integer, default value is `340`, sets the maximum Minecraft protocol version that EaglercraftX-based clients are allowed to connect with (`340` = 1.12.2) - **`allow_protocol_v3:`** Boolean, default value is `true`, if this listener should allow clients using the v1/v2/v3 protocols to join (pre-u37 clients). - **`allow_protocol_v4:`** Boolean, default value is `true`, if this listener should allow clients using the v4 protocol to join (post-u37 clients). - **`protocol_v4_defrag_send_delay:`** Integer, default value is `10`, the number of milliseconds to wait before flushing all pending EaglercraftX plugin message packets, saves bandwidth by combining multiple messages into a single plugin message packet. Setting this to `0` has the same effect on clientbound packets as setting `eaglerNoDelay` to `true` does on a post-u37 client for all serverbound packets. +- **`use_haproxy_protocol:`** Boolean, default value is `false`, can be used to enable support for the HAProxy proxy protocol. Make sure to also add the `check`, `check-send-proxy`, and `send-proxy-v2` parameters to your `server` directives in the HAProxy config file. - **`allow_cookie_revoke_query:`** Boolean, default value is `true`, If this listener should accept queries from post-u37 clients to revoke session tokens, you need to create your own BungeeCord plugin to go with EaglerXBungee that handles the `EaglercraftRevokeSessionQueryEvent` event it fires in order for this feature to work correctly. - **`request_motd_cache:`** Section that defines caching hints for server lists that cache the MOTD via the `MOTD.cache` query. As far as we know, not even the official Eaglercraft Server List on eaglercraft.com currently pays attention to these hints or attempts to cache MOTDs, so they can be ignored for now. - **`cache_ttl:`** Integer, default value is `7200`, sets how many seconds for the server list to store the MOTD in cache. diff --git a/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar b/gateway/EaglercraftXBungee/EaglerXBungee-Latest.jar index c0bf2b31fb4efa6b73b83aba231d9e9f868fbc4a..7625367ed85732b026895280ab30a79d8e52a1b2 100644 GIT binary patch delta 71172 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 ^@5w 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 tQ$M1pM_}lQYJIF17+zTLAqWvC=jwnDAA$ serverMOTD; private final boolean allowMOTD; private final boolean allowQuery; + private final int minMCProtocol; + private final int maxMCProtocol; private final boolean allowV3; private final boolean allowV4; private final int defragSendDelay; + private final boolean haproxyProtocol; private final MOTDCacheConfiguration motdCacheConfig; private final HttpWebServer webServer; private boolean serverIconSet = false; @@ -190,10 +196,10 @@ public class EaglerListenerConfig extends ListenerInfo { public EaglerListenerConfig(InetSocketAddress address, InetSocketAddress addressV6, int maxPlayer, String tabListType, String defaultServer, boolean forceDefaultServer, boolean forwardIp, String forwardIpHeader, String redirectLegacyClientsTo, String serverIcon, List serverMOTD, - boolean allowMOTD, boolean allowQuery, boolean allowV3, boolean allowV4, int defragSendDelay, - MOTDCacheConfiguration motdCacheConfig, HttpWebServer webServer, boolean enableVoiceChat, - EaglerRateLimiter ratelimitIp, EaglerRateLimiter ratelimitLogin, EaglerRateLimiter ratelimitMOTD, - EaglerRateLimiter ratelimitQuery) { + boolean allowMOTD, boolean allowQuery, int minMCProtocol, int maxMCProtocol, boolean allowV3, + boolean allowV4, int defragSendDelay, boolean haproxyProtocol, MOTDCacheConfiguration motdCacheConfig, + HttpWebServer webServer, boolean enableVoiceChat, EaglerRateLimiter ratelimitIp, + EaglerRateLimiter ratelimitLogin, EaglerRateLimiter ratelimitMOTD, EaglerRateLimiter ratelimitQuery) { super(address, String.join("\n", serverMOTD), maxPlayer, 60, Arrays.asList(defaultServer), forceDefaultServer, Collections.emptyMap(), tabListType, false, false, 0, false, false); this.address = address; @@ -209,9 +215,12 @@ public class EaglerListenerConfig extends ListenerInfo { this.serverMOTD = serverMOTD; this.allowMOTD = allowMOTD; this.allowQuery = allowQuery; + this.minMCProtocol = minMCProtocol; + this.maxMCProtocol = maxMCProtocol; this.allowV3 = allowV3; this.allowV4 = allowV4; this.defragSendDelay = defragSendDelay; + this.haproxyProtocol = haproxyProtocol; this.motdCacheConfig = motdCacheConfig; this.webServer = webServer; this.enableVoiceChat = enableVoiceChat; @@ -287,6 +296,14 @@ public class EaglerListenerConfig extends ListenerInfo { return allowQuery; } + public int getMinMCProtocol() { + return minMCProtocol; + } + + public int getMaxMCProtocol() { + return maxMCProtocol; + } + public boolean isAllowV3() { return allowV3; } @@ -299,6 +316,10 @@ public class EaglerListenerConfig extends ListenerInfo { return defragSendDelay; } + public boolean isHAProxyProtocol() { + return haproxyProtocol; + } + public HttpWebServer getWebServer() { return webServer; } diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerPipeline.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerPipeline.java index 8b355ee..6643820 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerPipeline.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/EaglerPipeline.java @@ -24,6 +24,7 @@ import io.netty.channel.ChannelOption; import io.netty.channel.ChannelPipeline; import io.netty.channel.WriteBufferWaterMark; import io.netty.handler.codec.compression.ZlibCodecFactory; +import io.netty.handler.codec.haproxy.HAProxyMessageDecoder; import io.netty.handler.codec.http.HttpObjectAggregator; import io.netty.handler.codec.http.HttpServerCodec; import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; @@ -31,7 +32,6 @@ import io.netty.handler.codec.http.websocketx.extensions.WebSocketServerExtensio import io.netty.handler.codec.http.websocketx.extensions.compression.DeflateFrameServerExtensionHandshaker; import io.netty.handler.codec.http.websocketx.extensions.compression.PerMessageDeflateServerExtensionHandshaker; import io.netty.util.AttributeKey; -import net.lax1dude.eaglercraft.v1_8.plugin.backend_rpc_protocol.EaglerBackendRPCProtocol; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.EaglerXBungee; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.api.EaglerXBungeeAPIHelper; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.config.EaglerBungeeConfig; @@ -256,7 +256,11 @@ public class EaglerPipeline { channel.config().setOption(ChannelOption.IP_TOS, 24); } catch (ChannelException var3) { } + EaglerListenerConfig listener = channel.attr(LISTENER).get(); ChannelPipeline pipeline = channel.pipeline(); + if(listener.isHAProxyProtocol()) { + pipeline.addLast("HAProxyMessageDecoder", new HAProxyMessageDecoder()); + } pipeline.addLast("HttpServerCodec", new HttpServerCodec()); pipeline.addLast("HttpObjectAggregator", new HttpObjectAggregator(65535)); int compressionLevel = EaglerXBungee.getEagler().getConfig().getHttpWebsocketCompressionLevel(); @@ -272,7 +276,7 @@ public class EaglerPipeline { pipeline.addLast("HttpCompressionHandler", new WebSocketServerExtensionHandler(deflateExtensionHandshaker, perMessageDeflateExtensionHandshaker)); } - pipeline.addLast("HttpHandshakeHandler", new HttpHandshakeHandler(channel.attr(LISTENER).get())); + pipeline.addLast("HttpHandshakeHandler", new HttpHandshakeHandler(listener)); channel.attr(CONNECTION_INSTANCE).set(new EaglerConnectionInstance(channel)); synchronized(openChannels) { openChannels.add(channel); diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpHandshakeHandler.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpHandshakeHandler.java index d5b998a..75a29d1 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpHandshakeHandler.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpHandshakeHandler.java @@ -12,6 +12,7 @@ import io.netty.channel.ChannelFuture; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.handler.codec.haproxy.HAProxyMessage; import io.netty.handler.codec.http.DefaultFullHttpResponse; import io.netty.handler.codec.http.HttpHeaderNames; import io.netty.handler.codec.http.HttpHeaders; @@ -52,6 +53,9 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { private static final byte[] error429Bytes = "

429 Too Many Requests
(Try again later)

".getBytes(StandardCharsets.UTF_8); private final EaglerListenerConfig conf; + private boolean logExceptions; + private boolean healthCheck; + private InetSocketAddress haproxyRemoteAddr; public HttpHandshakeHandler(EaglerListenerConfig conf) { this.conf = conf; @@ -60,6 +64,7 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { public void channelRead(final ChannelHandlerContext ctx, Object msg) throws Exception { try { if (msg instanceof HttpRequest) { + logExceptions = true; EaglerConnectionInstance pingTracker = ctx.channel().attr(EaglerPipeline.CONNECTION_INSTANCE).get(); HttpRequest req = (HttpRequest) msg; HttpHeaders headers = req.headers(); @@ -73,11 +78,15 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { rateLimitHost = str.split(",", 2)[0]; try { InetAddress inetAddr = InetAddress.getByName(rateLimitHost); - addr = ctx.channel().remoteAddress(); - if(addr instanceof InetSocketAddress) { - addr = new InetSocketAddress(inetAddr, ((InetSocketAddress)addr).getPort()); + if(haproxyRemoteAddr != null) { + addr = new InetSocketAddress(inetAddr, haproxyRemoteAddr.getPort()); }else { - addr = new InetSocketAddress(inetAddr, 0); + addr = ctx.channel().remoteAddress(); + if(addr instanceof InetSocketAddress) { + addr = new InetSocketAddress(inetAddr, ((InetSocketAddress)addr).getPort()); + }else { + addr = new InetSocketAddress(inetAddr, 0); + } } ctx.channel().attr(EaglerPipeline.REAL_ADDRESS).set(inetAddr); }catch(UnknownHostException ex) { @@ -90,6 +99,9 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { ctx.close(); return; } + }else if(haproxyRemoteAddr != null) { + addr = haproxyRemoteAddr; + ctx.channel().attr(EaglerPipeline.REAL_ADDRESS).set(haproxyRemoteAddr.getAddress()); }else { addr = ctx.channel().remoteAddress(); if(addr instanceof InetSocketAddress) { @@ -189,6 +201,19 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { .addListener(ChannelFutureListener.CLOSE); } } + }else if(msg instanceof HAProxyMessage) { + logExceptions = true; + HAProxyMessage proxy = (HAProxyMessage) msg; + if(proxy.sourceAddress() != null) { + if(!conf.isForwardIp()) { + try { + haproxyRemoteAddr = new InetSocketAddress(proxy.sourceAddress(), proxy.sourcePort()); + }catch(IllegalArgumentException t) { + } + } + }else { + healthCheck = true; + } }else { ctx.close(); } @@ -199,15 +224,13 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { if (ctx.channel().isActive()) { - EaglerXBungee.logger().log(Level.WARNING, "[Pre][" + ctx.channel().remoteAddress() + "]: Exception Caught: " + cause.toString(), cause); + if(logExceptions && !healthCheck) { + EaglerXBungee.logger().log(Level.WARNING, "[Pre][" + ctx.channel().remoteAddress() + "]: Exception Caught: " + cause.toString(), cause); + } ctx.close(); } } - private static String formatAddressFor404(String str) { - return "" + str.replace("<", "<").replace(">", ">") + ""; - } - public void channelInactive(ChannelHandlerContext ctx) { EaglerPipeline.closeChannel(ctx.channel()); } diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpServerQueryHandler.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpServerQueryHandler.java index 245b8d2..2f5e1de 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpServerQueryHandler.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpServerQueryHandler.java @@ -13,6 +13,7 @@ import io.netty.buffer.Unpooled; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; +import io.netty.handler.codec.haproxy.HAProxyMessage; import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; @@ -136,6 +137,8 @@ public abstract class HttpServerQueryHandler extends ChannelInboundHandlerAdapte }else if(msg instanceof CloseWebSocketFrame) { ctx.close(); } + }else if(msg instanceof HAProxyMessage) { + EaglerXBungee.logger().warning("[" + ctx.channel().remoteAddress() + "]: Ignoring HAProxyMessage because the WebSocket connection has already been established"); }else { EaglerXBungee.logger().severe("Unexpected Packet: " + msg.getClass().getSimpleName()); } diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpWebSocketHandler.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpWebSocketHandler.java index 55a169d..aea4571 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpWebSocketHandler.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/HttpWebSocketHandler.java @@ -30,6 +30,7 @@ import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import io.netty.channel.ChannelPipeline; +import io.netty.handler.codec.haproxy.HAProxyMessage; import io.netty.handler.codec.http.websocketx.BinaryWebSocketFrame; import io.netty.handler.codec.http.websocketx.CloseWebSocketFrame; import io.netty.handler.codec.http.websocketx.PingWebSocketFrame; @@ -150,6 +151,8 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { connectionClosed = true; ctx.close(); } + }else if(msg instanceof HAProxyMessage) { + EaglerXBungee.logger().warning("[" + ctx.channel().remoteAddress() + "]: Ignoring HAProxyMessage because the WebSocket connection has already been established"); }else { EaglerXBungee.logger().severe("Unexpected Packet: " + msg.getClass().getSimpleName()); } @@ -264,8 +267,6 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { EaglerXBungee eaglerXBungee = EaglerXBungee.getEagler(); EaglerAuthConfig authConfig = eaglerXBungee.getConfig().getAuthConfig(); - final int minecraftProtocolVersion = 47; - int eaglerLegacyProtocolVersion = buffer.readUnsignedByte(); if(eaglerLegacyProtocolVersion == 1) { @@ -273,7 +274,8 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { sendErrorCode(ctx, HandshakePacketTypes.SERVER_ERROR_CUSTOM_MESSAGE, "Please update your client to register on this server!") .addListener(ChannelFutureListener.CLOSE); return; - }else if(buffer.readUnsignedByte() != minecraftProtocolVersion || !conf.isAllowV3()) { + }else if(buffer.readUnsignedByte() != 47 || 47 < conf.getMinMCProtocol() + || 47 > conf.getMaxMCProtocol() || !conf.isAllowV3()) { clientLoginState = HandshakePacketTypes.STATE_CLIENT_COMPLETE; connectionClosed = true; ByteBuf buf = ctx.alloc().buffer(); @@ -294,8 +296,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { int maxServerSupported = conf.isAllowV4() ? 4 : 3; int minAvailableProtVers = Integer.MAX_VALUE; int maxAvailableProtVers = Integer.MIN_VALUE; - int minSupportedProtVers = Integer.MAX_VALUE; - int maxSupportedProtVers = Integer.MIN_VALUE; + int protVers = -1; int cnt = buffer.readUnsignedShort(); for(int i = 0; i < cnt; ++i) { @@ -306,53 +307,52 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { if(j < minAvailableProtVers) { minAvailableProtVers = j; } - if(j >= minServerSupported && j <= maxServerSupported) { - if(j > maxSupportedProtVers) { - maxSupportedProtVers = j; - } - if(j < minSupportedProtVers) { - minSupportedProtVers = j; - } + if(j >= minServerSupported && j <= maxServerSupported && j > protVers) { + protVers = j; } } - int minGameVers = Integer.MAX_VALUE; - int maxGameVers = -1; - boolean has47InList = false; + int minGameVers = conf.getMinMCProtocol(); + int maxGameVers = conf.getMaxMCProtocol(); + int minAvailableGameVers = Integer.MAX_VALUE; + int maxAvailableGameVers = Integer.MIN_VALUE; + int gameVers = -1; cnt = buffer.readUnsignedShort(); for(int i = 0; i < cnt; ++i) { int j = buffer.readUnsignedShort(); - if(j == minecraftProtocolVersion) { - has47InList = true; + if(j > maxAvailableGameVers) { + maxAvailableGameVers = j; } - if(j > maxGameVers) { - maxGameVers = j; + if(j < minAvailableGameVers) { + minAvailableGameVers = j; } - if(j < minGameVers) { - minGameVers = j; + if(j >= minGameVers && j <= maxGameVers && j > gameVers) { + gameVers = j; } } - if(maxAvailableProtVers == Integer.MIN_VALUE || maxGameVers == Integer.MIN_VALUE) { + if(maxAvailableProtVers == Integer.MIN_VALUE || maxAvailableGameVers == Integer.MIN_VALUE) { throw new IOException(); } boolean versMisMatch = false; boolean isServerProbablyOutdated = false; boolean isClientProbablyOutdated = false; - if(maxSupportedProtVers == Integer.MIN_VALUE) { + if(protVers == -1) { clientProtocolVersion = maxAvailableProtVers < 3 ? 2 : 3; versMisMatch = true; isServerProbablyOutdated = minAvailableProtVers > maxServerSupported && maxAvailableProtVers > maxServerSupported; isClientProbablyOutdated = minAvailableProtVers < minServerSupported && maxAvailableProtVers < minServerSupported; - }else if(!has47InList) { - clientProtocolVersion = 3; - versMisMatch = true; - isServerProbablyOutdated = minGameVers > minecraftProtocolVersion && maxGameVers > minecraftProtocolVersion; - isClientProbablyOutdated = minGameVers < minecraftProtocolVersion && maxGameVers < minecraftProtocolVersion; }else { - clientProtocolVersion = maxSupportedProtVers; + clientProtocolVersion = protVers; + if(gameVers == -1) { + versMisMatch = true; + isServerProbablyOutdated = minAvailableGameVers > maxGameVers && maxAvailableGameVers > maxGameVers; + isClientProbablyOutdated = minAvailableGameVers < minGameVers && maxAvailableGameVers < minGameVers; + }else { + gameProtocolVersion = gameVers; + } } if(versMisMatch) { @@ -370,8 +370,9 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { buf.writeShort(4); } - buf.writeShort(1); - buf.writeShort(minecraftProtocolVersion); // want game version 47 + buf.writeShort(2); + buf.writeShort(minGameVers); + buf.writeShort(maxGameVers); String str = isClientProbablyOutdated ? "Outdated Client" : (isServerProbablyOutdated ? "Outdated Server" : "Unsupported Client Version"); buf.writeByte(str.length()); @@ -403,6 +404,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { boolean useSnapshotFallbackProtocol = false; if(eaglerLegacyProtocolVersion == 1 && !authConfig.isEnableAuthentication()) { clientProtocolVersion = 2; + gameProtocolVersion = 47; useSnapshotFallbackProtocol = true; clientAuth = false; clientAuthUsername = null; @@ -434,7 +436,6 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { final boolean final_useSnapshotFallbackProtocol = useSnapshotFallbackProtocol; Runnable continueThread = () -> { clientLoginState = HandshakePacketTypes.STATE_CLIENT_VERSION; - gameProtocolVersion = 47; clientBrandString = eaglerBrand; clientVersionString = eaglerVersionString; @@ -445,7 +446,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { buf.writeByte(1); }else { buf.writeShort(clientProtocolVersion); - buf.writeShort(minecraftProtocolVersion); + buf.writeShort(gameProtocolVersion); } String brandStr = eaglerXBungee.getDescription().getName(); diff --git a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/query/VersionQueryHandler.java b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/query/VersionQueryHandler.java index b2d8bfb..d8e1df7 100644 --- a/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/query/VersionQueryHandler.java +++ b/gateway/EaglercraftXBungee/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/server/query/VersionQueryHandler.java @@ -4,10 +4,11 @@ import com.google.gson.JsonArray; import com.google.gson.JsonObject; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.api.query.EaglerQuerySimpleHandler; +import net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.config.EaglerListenerConfig; import net.md_5.bungee.api.ProxyServer; /** - * Copyright (c) 2022-2023 lax1dude. All Rights Reserved. + * Copyright (c) 2022-2024 lax1dude. All Rights Reserved. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED @@ -27,20 +28,19 @@ public class VersionQueryHandler extends EaglerQuerySimpleHandler { protected void begin(String queryType) { JsonObject responseObj = new JsonObject(); JsonArray handshakeVersions = new JsonArray(); - if(this.getListener().isAllowV3()) { + EaglerListenerConfig cfg = this.getListener(); + if(cfg.isAllowV3()) { handshakeVersions.add(2); handshakeVersions.add(3); } - if(this.getListener().isAllowV4()) { + if(cfg.isAllowV4()) { handshakeVersions.add(4); } responseObj.add("handshakeVersions", handshakeVersions); - JsonArray protocolVersions = new JsonArray(); - protocolVersions.add(47); + JsonObject protocolVersions = new JsonObject(); + protocolVersions.addProperty("min", cfg.getMinMCProtocol()); + protocolVersions.addProperty("max", cfg.getMaxMCProtocol()); responseObj.add("protocolVersions", protocolVersions); - JsonArray gameVersions = new JsonArray(); - gameVersions.add("1.8"); - responseObj.add("gameVersions", gameVersions); JsonObject proxyInfo = new JsonObject(); proxyInfo.addProperty("brand", ProxyServer.getInstance().getName()); proxyInfo.addProperty("vers", ProxyServer.getInstance().getVersion()); diff --git a/gateway/EaglercraftXBungee/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/config/default_listeners.yml b/gateway/EaglercraftXBungee/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/config/default_listeners.yml index 4c4f608..6013e08 100644 --- a/gateway/EaglercraftXBungee/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/config/default_listeners.yml +++ b/gateway/EaglercraftXBungee/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_bungeecord/config/default_listeners.yml @@ -13,9 +13,12 @@ listener_01: - '&6An EaglercraftX server' allow_motd: true allow_query: true + min_minecraft_protocol: 47 + max_minecraft_protocol: 340 allow_protocol_v3: true allow_protocol_v4: true protocol_v4_defrag_send_delay: 10 + use_haproxy_protocol: false allow_cookie_revoke_query: true request_motd_cache: cache_ttl: 7200 diff --git a/gateway/EaglercraftXBungee/src/main/resources/plugin.yml b/gateway/EaglercraftXBungee/src/main/resources/plugin.yml index a6a8c29..ed91973 100644 --- a/gateway/EaglercraftXBungee/src/main/resources/plugin.yml +++ b/gateway/EaglercraftXBungee/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ name: EaglercraftXBungee main: net.lax1dude.eaglercraft.v1_8.plugin.gateway_bungeecord.EaglerXBungee -version: 1.3.2 +version: 1.3.3 description: Plugin to allow EaglercraftX 1.8 players to join your network, or allow EaglercraftX 1.8 players to use your network as a proxy to join other networks author: lax1dude \ No newline at end of file diff --git a/gateway_version b/gateway_version index d5e98f7..785cda8 100644 --- a/gateway_version +++ b/gateway_version @@ -1 +1 @@ -1.3.2 \ No newline at end of file +1.3.3 \ No newline at end of file