diff --git a/build.gradle b/build.gradle index 282783c..edcbbb0 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ sourceCompatibility = 1.8 group = "nz.co.lolnet.bungeeproxy" archivesBaseName = "BungeeProxy" -version = "1.0.0" +version = "1.0.1" configurations { provided { @@ -42,7 +42,7 @@ repositories { dependencies { provided("io.netty:netty-all:4.1.9.Final") compile("io.netty:netty-codec-haproxy:4.1.9.Final") - provided("net.md-5:bungeecord-api:1.12-SNAPSHOT") + provided("net.md-5:bungeecord-api:1.11-SNAPSHOT") } jar { diff --git a/src/main/java/nz/co/lolnet/bungeeproxy/BungeeProxy.java b/src/main/java/nz/co/lolnet/bungeeproxy/BungeeProxy.java index d757ade..c12f3cd 100644 --- a/src/main/java/nz/co/lolnet/bungeeproxy/BungeeProxy.java +++ b/src/main/java/nz/co/lolnet/bungeeproxy/BungeeProxy.java @@ -4,6 +4,7 @@ import java.lang.reflect.Method; import java.lang.reflect.Modifier; +import io.netty.channel.AbstractChannel; import io.netty.channel.Channel; import io.netty.channel.ChannelInitializer; import net.md_5.bungee.api.plugin.Plugin; @@ -16,6 +17,7 @@ public class BungeeProxy extends Plugin { private static BungeeProxy instance; private Config config; + private Field remoteAddress; @Override public void onEnable() { @@ -38,6 +40,9 @@ public void onEnable() { initChannelMethod.setAccessible(true); serverChildField.set(null, new ChannelHandler(bungeeChannelInitializer, initChannelMethod)); + + remoteAddress = AbstractChannel.class.getDeclaredField("remoteAddress"); + getRemoteAddress().setAccessible(true); getLogger().info(Reference.PLUGIN_NAME + " Enabled."); } catch (Exception ex) { BungeeProxy.getInstance().getLogger().severe("Encountered an error processing 'onEnable' in '" + getClass().getSimpleName() + "' - " + ex.getMessage()); @@ -68,6 +73,11 @@ public Configuration getConfiguration() { if (getConfig() != null) { return getConfig().getConfiguration(); } + return null; } + + public Field getRemoteAddress() { + return remoteAddress; + } } \ No newline at end of file diff --git a/src/main/java/nz/co/lolnet/bungeeproxy/handlers/ProxyHandler.java b/src/main/java/nz/co/lolnet/bungeeproxy/handlers/ProxyHandler.java index 4f0a38c..f71a262 100644 --- a/src/main/java/nz/co/lolnet/bungeeproxy/handlers/ProxyHandler.java +++ b/src/main/java/nz/co/lolnet/bungeeproxy/handlers/ProxyHandler.java @@ -1,10 +1,8 @@ package nz.co.lolnet.bungeeproxy.handlers; -import java.lang.reflect.Field; import java.net.InetSocketAddress; import io.netty.buffer.Unpooled; -import io.netty.channel.AbstractChannel; import io.netty.channel.ChannelFutureListener; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; @@ -13,26 +11,12 @@ public class ProxyHandler extends ChannelInboundHandlerAdapter { - private Field remoteAddress; - - @Override - public void channelActive(ChannelHandlerContext ctx) { - try { - remoteAddress = AbstractChannel.class.getDeclaredField("remoteAddress"); - getRemoteAddress().setAccessible(true); - super.channelActive(ctx); - } catch (Exception ex) { - BungeeProxy.getInstance().getLogger().severe("Encountered an error processing 'channelActive' in '" + getClass().getSimpleName() + "' - " + ex.getMessage()); - ex.printStackTrace(); - } - } - @Override public void channelRead(ChannelHandlerContext ctx, Object msg) { try { - if (msg instanceof HAProxyMessage && getRemoteAddress() != null) { + if (msg instanceof HAProxyMessage && BungeeProxy.getInstance().getRemoteAddress() != null) { HAProxyMessage proxyMessage = (HAProxyMessage) msg; - getRemoteAddress().set(ctx.channel(), new InetSocketAddress(proxyMessage.sourceAddress(), proxyMessage.sourcePort())); + BungeeProxy.getInstance().getRemoteAddress().set(ctx.channel(), new InetSocketAddress(proxyMessage.sourceAddress(), proxyMessage.sourcePort())); BungeeProxy.getInstance().debugMessage("Successfully processed HAProxyMessage."); return; } @@ -51,9 +35,6 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable throwable) { } BungeeProxy.getInstance().getLogger().severe("Exception caught in '" + getClass().getSimpleName() + "' - " + throwable.getMessage()); - } - - private Field getRemoteAddress() { - return remoteAddress; + throwable.printStackTrace(); } } \ No newline at end of file diff --git a/src/main/java/nz/co/lolnet/bungeeproxy/util/Reference.java b/src/main/java/nz/co/lolnet/bungeeproxy/util/Reference.java index c772c06..055bc80 100644 --- a/src/main/java/nz/co/lolnet/bungeeproxy/util/Reference.java +++ b/src/main/java/nz/co/lolnet/bungeeproxy/util/Reference.java @@ -4,7 +4,7 @@ public class Reference { public static final String PLUGIN_ID = "bungeeproxy"; public static final String PLUGIN_NAME = "BungeeProxy"; - public static final String PLUGIN_VERSION = "1.0.0"; + public static final String PLUGIN_VERSION = "1.0.1"; public static final String DECODER_NAME = PLUGIN_ID + "_decoder"; public static final String HANDLER_NAME = PLUGIN_ID + "_handler";