diff --git a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/BukkitViaInjector.java b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/BukkitViaInjector.java index dd06a2e45..437997e18 100644 --- a/bukkit/src/main/java/us/myles/ViaVersion/bukkit/BukkitViaInjector.java +++ b/bukkit/src/main/java/us/myles/ViaVersion/bukkit/BukkitViaInjector.java @@ -173,6 +173,11 @@ public class BukkitViaInjector implements ViaInjector { throw new Exception("Failed to get server"); } + @Override + public String getEncoderName() { + return "encoder"; + } + public static Object getServerConnection() throws Exception { Class serverClazz = NMSUtil.nms("MinecraftServer"); Object server = ReflectionUtil.invokeStatic(serverClazz, "getServer"); diff --git a/bungee/src/main/java/us/myles/ViaVersion/bungee/BungeeViaInjector.java b/bungee/src/main/java/us/myles/ViaVersion/bungee/BungeeViaInjector.java index 6482cb397..2c9de6455 100644 --- a/bungee/src/main/java/us/myles/ViaVersion/bungee/BungeeViaInjector.java +++ b/bungee/src/main/java/us/myles/ViaVersion/bungee/BungeeViaInjector.java @@ -37,4 +37,9 @@ public class BungeeViaInjector implements ViaInjector { public int getServerProtocolVersion() throws Exception { return 47; } + + @Override + public String getEncoderName() { + return "packet-encoder"; + } } diff --git a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java index 10347f2ce..8322063b5 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java +++ b/common/src/main/java/us/myles/ViaVersion/api/PacketWrapper.java @@ -460,6 +460,7 @@ public class PacketWrapper { * @throws Exception If it failed to write */ public void sendToServer() throws Exception { + // TODO: Fix for bungee if (!isCancelled()) { ByteBuf output = inputBuffer == null ? Unpooled.buffer() : inputBuffer.alloc().buffer(); Type.VAR_INT.write(output, PacketWrapper.PASSTHROUGH_ID); // Pass through diff --git a/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java b/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java index a4da34d05..9a393af8a 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java +++ b/common/src/main/java/us/myles/ViaVersion/api/data/UserConnection.java @@ -73,7 +73,7 @@ public class UserConnection { * @param currentThread Should it run in the same thread */ public void sendRawPacket(final ByteBuf packet, boolean currentThread) { - final ChannelHandler handler = channel.pipeline().get("encoder"); + final ChannelHandler handler = channel.pipeline().get(Via.getManager().getInjector().getEncoderName()); if (currentThread) { channel.pipeline().context(handler).writeAndFlush(packet); } else { @@ -93,7 +93,7 @@ public class UserConnection { * @return ChannelFuture of the packet being sent */ public ChannelFuture sendRawPacketFuture(final ByteBuf packet) { - final ChannelHandler handler = channel.pipeline().get("encoder"); + final ChannelHandler handler = channel.pipeline().get(Via.getManager().getInjector().getEncoderName()); return channel.pipeline().context(handler).writeAndFlush(packet); } diff --git a/common/src/main/java/us/myles/ViaVersion/api/platform/ViaInjector.java b/common/src/main/java/us/myles/ViaVersion/api/platform/ViaInjector.java index 38d5ffc45..0523e9758 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/platform/ViaInjector.java +++ b/common/src/main/java/us/myles/ViaVersion/api/platform/ViaInjector.java @@ -6,4 +6,6 @@ public interface ViaInjector { public void uninject() throws Exception; public int getServerProtocolVersion() throws Exception; + + public String getEncoderName(); } diff --git a/sponge/src/main/java/us/myles/ViaVersion/sponge/SpongeViaInjector.java b/sponge/src/main/java/us/myles/ViaVersion/sponge/SpongeViaInjector.java index fea7d41ea..7524023b3 100644 --- a/sponge/src/main/java/us/myles/ViaVersion/sponge/SpongeViaInjector.java +++ b/sponge/src/main/java/us/myles/ViaVersion/sponge/SpongeViaInjector.java @@ -132,6 +132,11 @@ public class SpongeViaInjector implements ViaInjector { } } + @Override + public String getEncoderName() { + return "encoder"; + } + public static Object getServerConnection() throws Exception { Class serverClazz = Class.forName("net.minecraft.server.MinecraftServer"); Object server = getServer();