From 4d66ca140af7317e7a04a0bd6ffe7f9ef6895329 Mon Sep 17 00:00:00 2001 From: lax1dude Date: Sat, 16 Nov 2024 17:18:43 -0800 Subject: [PATCH] <1.1.4> Add HAProxy and 1.9-1.12 support to EaglerXVelocity --- README_EAGLERXVELOCITY.md | 5 +- .../EaglerXVelocity-Latest.jar | Bin 611250 -> 612964 bytes .../EaglerXVelocityVersion.java | 4 +- .../api/JSONLegacySerializer.java | 22 +++++- .../config/EaglerListenerConfig.java | 34 +++++++-- .../server/EaglerPipeline.java | 15 +++- .../server/HttpHandshakeHandler.java | 45 +++++++++-- .../server/HttpServerQueryHandler.java | 5 +- .../server/HttpWebSocketHandler.java | 70 +++++++++--------- .../BackendRPCSessionHandler.java | 1 - .../server/query/VersionQueryHandler.java | 16 ++-- .../config/default_listeners.yml | 3 + .../src/main/resources/velocity-plugin.json | 2 +- gateway_version_velocity | 2 +- 14 files changed, 156 insertions(+), 68 deletions(-) diff --git a/README_EAGLERXVELOCITY.md b/README_EAGLERXVELOCITY.md index 4df2a07..cb72ba5 100644 --- a/README_EAGLERXVELOCITY.md +++ b/README_EAGLERXVELOCITY.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 Velocity 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` @@ -62,9 +62,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 Velocity plugin to go with EaglerXVelocity 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/EaglercraftXVelocity/EaglerXVelocity-Latest.jar b/gateway/EaglercraftXVelocity/EaglerXVelocity-Latest.jar index 78f2fbf0876e6fdd64a7fd776e27d19feb7e776f..a06b7807be000f3dda884d58fba31f218cbd74b8 100644 GIT binary patch delta 86386 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

codcn-2RqD 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%0Dil$Szq4pT+ZEQG1Y1vk z+nesN$k)ZFdzo(x^S}#&RHLO4vd3wWDh#fw(iS_kHPABl1CM01A9QQ|X*bH(0iEe^ zkwcH2DE5b{|A&d~!dLmCR0Cjljdp}RtOnbjh)LnukM?Ft80(f_DAc_dRiHsdyU6_D zoCbvrdv9~Lqe&MWQ-gbkYw$QvBk_Zu%V;CSq7L;(58%*af2ev)od(6C(CtGwG_FpO z!7Aj|fI-CwOf)HGAW#Et1hJJ23YqMwDAg8xUJGBsv1wBHv1WeYYY(^tSAi#R%Rs+V z8jeKyyD$T}n$W<1(Wt-!>q)|ZN8ZS zt*l^OI#~=;Q0f|Br$gZYB8g;n(5p=|HKh$rxuh-P@|dY*V~%%D!l;|jU|_IX9CLKj z`tmwT)d8z@;n&PBr9xBar;JzwCv~8y;+u;&9`yh3@KMgispv~HP_9d}@=6z4IsO;o z0IDk}%9vM;=PZUS;nrs_ybYuuBA((!Qyk#o3W^-&Q1=RGs_F3}Bn)mppv4@9?^y|P zwaR~R@*{}*o6%gELvf2Ii?}%O(W8iC;mX8)unYvQgyA~>Y!O$-R54f6B{EJn!_?so z-KD=m6MnJC=K$8v$RZ$4pCX4T4IIjSv5bNOb6rhTh$mMY2R?f^D|iijIN{&=3Nvz@^cXq1j6tYAlB5sZv>b2JKw@0pBH^K zsEF|$jb?T|h7*koPBi+b0-u;b^*T7wuvdmtj0h{xF@bw=)M;B2SicBDkK+jtGm1Vq zl!MWt^*_OF!TygDe2vHpY)om5+F}Zg!o5FM>0?t0K6{xxGs!KU$3DkV7^rLtt&VOeL=s2j2w+w&hurYifNt7BH{I#1?9)c6doW!MbEqr45_cm`6CP2Zb8gAy z84-QZgI4Ilb~@b*1Dx6z0i$}E1#Nj~9Zbo*4=1z$tZxS$pJ_GDH(5`ifD#K@O!>Z2 z7K?)GdgC@Dol7TS5%992XaP-23ifat_*p_D zsvA%vI$**I5y5U3vE3u;?Vkl)d(m}tt$*zZ7_BI#Scm-JZ8CcXgGLkv&H66tahHGH1{C!Zm z^k68zgGRN1*B6sp5q_Xy^T(78G$rW2h~sxUrKmLM04`;>rR}v>*+OYw@S;=z^m9^p zC1F<@Us>z(1`c2!969WBbJLK*X? z7a58`&K{0F`Y`bC>(-@r4~z=lsP5lqj!UB&ocl)?efS8LJ5Yo$Z*3i* zFF(%H4M;PGQE=M|Jd%`0Bw^} z=xMCL-jO1LxwzL6;``J7!5bZE-jAVB;kADtdnbzEKTj<8Il*IeQwE53q9~BsuEY7x F@P7^i5>o&G delta 84614 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%0As{Y}+W+ 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

8+O2;3A)|9qyVg(C(D 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�#!@D!oJp~zhVP25 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 diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/EaglerXVelocityVersion.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/EaglerXVelocityVersion.java index cb53b7b..55c7250 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/EaglerXVelocityVersion.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/EaglerXVelocityVersion.java @@ -17,13 +17,13 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity; */ public class EaglerXVelocityVersion { - public static final String NATIVE_VELOCITY_BUILD = "3.4.0-SNAPSHOT:99aaf3ce:b439"; + public static final String NATIVE_VELOCITY_BUILD = "3.4.0-SNAPSHOT:cefa3b27:b450"; public static final String ID = "EaglerXVelocity"; public static final String PLUGIN_ID = "eaglerxvelocity"; public static final String NAME = "EaglercraftXVelocity"; public static final String 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"; - public static final String VERSION = "1.1.3"; + public static final String VERSION = "1.1.4"; public static final String[] AUTHORS = new String[] { "lax1dude", "ayunami2000" }; } diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/api/JSONLegacySerializer.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/api/JSONLegacySerializer.java index fb49b77..c33a3bb 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/api/JSONLegacySerializer.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/api/JSONLegacySerializer.java @@ -1,8 +1,8 @@ package net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.api; -import com.velocitypowered.proxy.protocol.util.VelocityLegacyHoverEventSerializer; - import net.kyori.adventure.text.serializer.json.JSONComponentSerializer; +import net.kyori.adventure.text.serializer.json.LegacyHoverEventSerializer; +import net.kyori.adventure.text.serializer.json.legacyimpl.NBTLegacyHoverEventSerializer; /** * Copyright (c) 2024 lax1dude. All Rights Reserved. @@ -21,7 +21,21 @@ import net.kyori.adventure.text.serializer.json.JSONComponentSerializer; */ public class JSONLegacySerializer { - public static final JSONComponentSerializer instance = JSONComponentSerializer.builder() - .legacyHoverEventSerializer(VelocityLegacyHoverEventSerializer.INSTANCE).build(); + static { + JSONComponentSerializer.Builder builder = JSONComponentSerializer.builder(); + try { + builder.legacyHoverEventSerializer(NBTLegacyHoverEventSerializer.get()); + }catch(Throwable t) { + try { + Class c = Class.forName("com.velocitypowered.proxy.protocol.util.VelocityLegacyHoverEventSerializer"); + builder.legacyHoverEventSerializer((LegacyHoverEventSerializer)c.getDeclaredField("INSTANCE").get(null)); + }catch(Throwable tt) { + throw new RuntimeException("Legacy hover event serializer is unavailable! (downgrade velocity)"); + } + } + instance = builder.build(); + } + + public static final JSONComponentSerializer instance; } diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/EaglerListenerConfig.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/EaglerListenerConfig.java index 07dcf92..17d8775 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/EaglerListenerConfig.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/EaglerListenerConfig.java @@ -71,12 +71,15 @@ public class EaglerListenerConfig { } boolean allowMOTD = config.getBoolean("allow_motd", true); boolean allowQuery = config.getBoolean("allow_query", true); + int minMCProtocol = config.getInt("min_minecraft_protocol", 47); + int maxMCProtocol = config.getInt("max_minecraft_protocol", 340); boolean allowV3 = config.getBoolean("allow_protocol_v3", true); boolean allowV4 = config.getBoolean("allow_protocol_v4", true); if(!allowV3 && !allowV4) { throw new IllegalArgumentException("Both v3 and v4 protocol are disabled!"); } int defragSendDelay = config.getInt("protocol_v4_defrag_send_delay", 10); + boolean haproxyProtocol = config.getBoolean("use_haproxy_protocol", false); int cacheTTL = 7200; boolean cacheAnimation = false; @@ -152,8 +155,8 @@ public class EaglerListenerConfig { cacheTrending, cachePortfolios); return new EaglerListenerConfig(hostv4, hostv6, maxPlayer, forwardIp, forwardIpHeader, redirectLegacyClientsTo, serverIcon, serverMOTD, allowMOTD, allowQuery, - allowV3, allowV4, defragSendDelay, cacheConfig, httpServer, enableVoiceChat, ratelimitIp, - ratelimitLogin, ratelimitMOTD, ratelimitQuery); + minMCProtocol, maxMCProtocol, allowV3, allowV4, defragSendDelay, haproxyProtocol, cacheConfig, + httpServer, enableVoiceChat, ratelimitIp, ratelimitLogin, ratelimitMOTD, ratelimitQuery); } private final InetSocketAddress address; @@ -166,9 +169,12 @@ public class EaglerListenerConfig { private final List 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; @@ -181,10 +187,11 @@ public class EaglerListenerConfig { public EaglerListenerConfig(InetSocketAddress address, InetSocketAddress addressV6, int maxPlayer, 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) { + List serverMOTD, 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) { this.address = address; this.addressV6 = addressV6; this.maxPlayer = maxPlayer; @@ -195,9 +202,12 @@ public class EaglerListenerConfig { 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; @@ -261,6 +271,14 @@ public class EaglerListenerConfig { return allowQuery; } + public int getMinMCProtocol() { + return minMCProtocol; + } + + public int getMaxMCProtocol() { + return maxMCProtocol; + } + public boolean isAllowV3() { return allowV3; } @@ -273,6 +291,10 @@ public class EaglerListenerConfig { return defragSendDelay; } + public boolean isHAProxyProtocol() { + return haproxyProtocol; + } + public HttpWebServer getWebServer() { return webServer; } diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/EaglerPipeline.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/EaglerPipeline.java index eac605f..d4c52ac 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/EaglerPipeline.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/EaglerPipeline.java @@ -16,11 +16,15 @@ import com.velocitypowered.api.proxy.Player; import com.velocitypowered.proxy.connection.client.ConnectedPlayer; import com.velocitypowered.proxy.scheduler.VelocityScheduler; +import io.netty.buffer.PooledByteBufAllocator; import io.netty.channel.Channel; +import io.netty.channel.ChannelException; import io.netty.channel.ChannelInitializer; +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; @@ -211,7 +215,16 @@ public class EaglerPipeline { @Override protected void initChannel(Channel channel) throws Exception { + channel.config().setAllocator(PooledByteBufAllocator.DEFAULT).setWriteBufferWaterMark(SERVER_WRITE_MARK); + try { + 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 = EaglerXVelocity.getEagler().getConfig().getHttpWebsocketCompressionLevel(); @@ -227,7 +240,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/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpHandshakeHandler.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpHandshakeHandler.java index 91943d9..7aac5d2 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpHandshakeHandler.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpHandshakeHandler.java @@ -10,6 +10,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; @@ -48,6 +49,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; @@ -56,18 +60,31 @@ 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(); String rateLimitHost = null; + SocketAddress addr; if (conf.isForwardIp()) { String str = headers.get(conf.getForwardIpHeader()); if (str != null) { rateLimitHost = str.split(",", 2)[0]; try { - ctx.channel().attr(EaglerPipeline.REAL_ADDRESS).set(InetAddress.getByName(rateLimitHost)); + InetAddress inetAddr = InetAddress.getByName(rateLimitHost); + if(haproxyRemoteAddr != null) { + addr = new InetSocketAddress(inetAddr, haproxyRemoteAddr.getPort()); + }else { + 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) { EaglerXVelocity.logger().warn("[{}]: Connected with an invalid '{}' header, disconnecting...", ctx.channel().remoteAddress(), conf.getForwardIpHeader()); ctx.close(); @@ -78,8 +95,11 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { ctx.close(); return; } + } else if(haproxyRemoteAddr != null) { + addr = haproxyRemoteAddr; + ctx.channel().attr(EaglerPipeline.REAL_ADDRESS).set(haproxyRemoteAddr.getAddress()); } else { - SocketAddress addr = ctx.channel().remoteAddress(); + addr = ctx.channel().remoteAddress(); if (addr instanceof InetSocketAddress) { rateLimitHost = ((InetSocketAddress) addr).getAddress().getHostAddress(); } @@ -176,6 +196,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(); } @@ -186,15 +219,13 @@ public class HttpHandshakeHandler extends ChannelInboundHandlerAdapter { public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception { if (ctx.channel().isActive()) { - EaglerXVelocity.logger().warn("[Pre][{}]: Exception Caught: {}", ctx.channel().remoteAddress(), cause.toString(), cause); + if(logExceptions && !healthCheck) { + EaglerXVelocity.logger().warn("[Pre][{}]: Exception Caught: {}", ctx.channel().remoteAddress(), 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/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpServerQueryHandler.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpServerQueryHandler.java index d720699..262c72d 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpServerQueryHandler.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/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,7 +137,9 @@ public abstract class HttpServerQueryHandler extends ChannelInboundHandlerAdapte } else if (msg instanceof CloseWebSocketFrame) { ctx.close(); } - } else { + }else if(msg instanceof HAProxyMessage) { + EaglerXVelocity.logger().warn("[{}]: Ignoring HAProxyMessage because the WebSocket connection has already been established", ctx.channel().remoteAddress()); + }else { EaglerXVelocity.logger().error("Unexpected Packet: {}", msg.getClass().getSimpleName()); } } finally { diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java index 175e69c..b40324b 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/HttpWebSocketHandler.java @@ -36,7 +36,6 @@ import com.velocitypowered.api.util.GameProfile; import com.velocitypowered.api.util.GameProfile.Property; import com.velocitypowered.proxy.VelocityServer; import com.velocitypowered.proxy.config.PlayerInfoForwarding; -import com.velocitypowered.proxy.connection.ConnectionType; import com.velocitypowered.proxy.connection.ConnectionTypes; import com.velocitypowered.proxy.connection.MinecraftConnection; import com.velocitypowered.proxy.connection.client.*; @@ -53,6 +52,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; @@ -203,7 +203,9 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { } else if (msg instanceof CloseWebSocketFrame) { ctx.close(); } - } else { + }else if(msg instanceof HAProxyMessage) { + EaglerXVelocity.logger().warn("[{}]: Ignoring HAProxyMessage because the WebSocket connection has already been established", ctx.channel().remoteAddress()); + }else { EaglerXVelocity.logger().error("Unexpected Packet: {}", msg.getClass().getSimpleName()); } } finally { @@ -312,8 +314,6 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { EaglerXVelocity eaglerXBungee = EaglerXVelocity.getEagler(); EaglerAuthConfig authConfig = eaglerXBungee.getConfig().getAuthConfig(); - final int minecraftProtocolVersion = 47; - int eaglerLegacyProtocolVersion = buffer.readUnsignedByte(); if(eaglerLegacyProtocolVersion == 1) { @@ -321,7 +321,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(); @@ -341,8 +342,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) { @@ -353,53 +353,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) { @@ -417,8 +416,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()); @@ -450,6 +450,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { boolean useSnapshotFallbackProtocol = false; if(eaglerLegacyProtocolVersion == 1 && !authConfig.isEnableAuthentication()) { clientProtocolVersion = 2; + gameProtocolVersion = 47; useSnapshotFallbackProtocol = true; clientAuth = false; clientAuthUsername = null; @@ -481,7 +482,6 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { final boolean final_useSnapshotFallbackProtocol = useSnapshotFallbackProtocol; Runnable continueThread = () -> { clientLoginState = HandshakePacketTypes.STATE_CLIENT_VERSION; - gameProtocolVersion = 47; clientBrandString = eaglerBrand; clientVersionString = eaglerVersionString; @@ -492,7 +492,7 @@ public class HttpWebSocketHandler extends ChannelInboundHandlerAdapter { buf.writeByte(1); }else { buf.writeShort(clientProtocolVersion); - buf.writeShort(minecraftProtocolVersion); + buf.writeShort(gameProtocolVersion); } String brandStr = EaglerXVelocityVersion.NAME; diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/backend_rpc_protocol/BackendRPCSessionHandler.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/backend_rpc_protocol/BackendRPCSessionHandler.java index 486eecd..fe67634 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/backend_rpc_protocol/BackendRPCSessionHandler.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/backend_rpc_protocol/BackendRPCSessionHandler.java @@ -27,7 +27,6 @@ import net.lax1dude.eaglercraft.v1_8.plugin.backend_rpc_protocol.pkt.server.SPac import net.lax1dude.eaglercraft.v1_8.plugin.backend_rpc_protocol.pkt.server.SPacketRPCEventWebViewOpenClose; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.api.EnumVoiceState; -import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.api.event.EaglercraftVoiceStatusChangeEvent; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.server.EaglerPlayerData; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.voice.VoiceService; import net.lax1dude.eaglercraft.v1_8.socket.protocol.util.ReusableByteArrayInputStream; diff --git a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/query/VersionQueryHandler.java b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/query/VersionQueryHandler.java index 49efcfd..a4c5fae 100644 --- a/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/query/VersionQueryHandler.java +++ b/gateway/EaglercraftXVelocity/src/main/java/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/server/query/VersionQueryHandler.java @@ -5,9 +5,10 @@ import com.google.gson.JsonObject; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity; import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.api.query.EaglerQuerySimpleHandler; +import net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.config.EaglerListenerConfig; /** - * 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", EaglerXVelocity.proxy().getVersion().getName()); proxyInfo.addProperty("vers", EaglerXVelocity.proxy().getVersion().getVersion()); diff --git a/gateway/EaglercraftXVelocity/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/default_listeners.yml b/gateway/EaglercraftXVelocity/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/default_listeners.yml index e8e43d6..4d505a7 100644 --- a/gateway/EaglercraftXVelocity/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/default_listeners.yml +++ b/gateway/EaglercraftXVelocity/src/main/resources/net/lax1dude/eaglercraft/v1_8/plugin/gateway_velocity/config/default_listeners.yml @@ -10,9 +10,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/EaglercraftXVelocity/src/main/resources/velocity-plugin.json b/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json index 82c0e44..7fd3bf4 100644 --- a/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json +++ b/gateway/EaglercraftXVelocity/src/main/resources/velocity-plugin.json @@ -1 +1 @@ -{"id":"eaglerxvelocity","name":"EaglercraftXVelocity","version":"1.1.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","authors":["lax1dude", "ayunami2000"],"dependencies":[],"main":"net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity"} \ No newline at end of file +{"id":"eaglerxvelocity","name":"EaglercraftXVelocity","version":"1.1.4","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","authors":["lax1dude", "ayunami2000"],"dependencies":[],"main":"net.lax1dude.eaglercraft.v1_8.plugin.gateway_velocity.EaglerXVelocity"} \ No newline at end of file diff --git a/gateway_version_velocity b/gateway_version_velocity index 9c1218c..1b87bcd 100644 --- a/gateway_version_velocity +++ b/gateway_version_velocity @@ -1 +1 @@ -1.1.3 \ No newline at end of file +1.1.4 \ No newline at end of file