From 0360721d9c7bd9376e368ed98c412439a6bc460f Mon Sep 17 00:00:00 2001 From: LinsaFTW <25271111+linsaftw@users.noreply.github.com> Date: Sun, 29 Sep 2024 07:32:56 -0300 Subject: [PATCH] Check if channel is open before injecting (#547) * Check if channel is open before injecting Some forks like FlameCord have integrated anti-bot features to block connections early. By default, Floodgate runs anyways, which not only makes bot attacks affect the server when Floodgate is instaled, but also generate an exception. This fixes the issue. * Add note about why it's added --------- Co-authored-by: Tim203 --- .../org/geysermc/floodgate/inject/bungee/BungeeInjector.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java b/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java index 53e56b67..21967142 100644 --- a/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java +++ b/bungee/src/main/java/org/geysermc/floodgate/inject/bungee/BungeeInjector.java @@ -91,6 +91,10 @@ public final class BungeeInjector extends CommonPlatformInjector { ChannelInitializer wrapper = new ChannelInitializer() { @Override protected void initChannel(Channel channel) { + // Check if the channel is open, see #547 + if (!channel.isOpen()) { + return; + } ReflectionUtils.invoke(original, initChannelMethod, channel); channel.pipeline().addBefore( PipelineUtils.FRAME_DECODER, BUNGEE_INIT,