Waterfall/BungeeCord-Patches/0021-Don-t-create-a-new-KickStringWriter-for-each-new-con.patch
kashike 178e989894 Merge upstream
Resolves #170
2017-08-18 02:40:00 -07:00

47 lines
2.4 KiB
Diff

From 113e835fa24c514385912985cc24cc5b3eca5ed9 Mon Sep 17 00:00:00 2001
From: Harry <me@harry5573.uk>
Date: Tue, 26 Jan 2016 01:01:57 +0000
Subject: [PATCH] Don't create a new KickStringWriter for each new connection.
diff --git a/protocol/src/main/java/net/md_5/bungee/protocol/KickStringWriter.java b/protocol/src/main/java/net/md_5/bungee/protocol/KickStringWriter.java
index eda9571e..e5275c76 100644
--- a/protocol/src/main/java/net/md_5/bungee/protocol/KickStringWriter.java
+++ b/protocol/src/main/java/net/md_5/bungee/protocol/KickStringWriter.java
@@ -1,9 +1,11 @@
package net.md_5.bungee.protocol;
import io.netty.buffer.ByteBuf;
+import io.netty.channel.ChannelHandler.Sharable;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToByteEncoder;
+@Sharable
public class KickStringWriter extends MessageToByteEncoder<String>
{
diff --git a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
index 5eeab8b5..81927f7f 100644
--- a/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
+++ b/proxy/src/main/java/net/md_5/bungee/netty/PipelineUtils.java
@@ -56,7 +56,7 @@ public class PipelineUtils
ch.pipeline().addBefore( FRAME_DECODER, LEGACY_DECODER, new LegacyDecoder() );
ch.pipeline().addAfter( FRAME_DECODER, PACKET_DECODER, new MinecraftDecoder( Protocol.HANDSHAKE, true, ProxyServer.getInstance().getProtocolVersion() ) );
ch.pipeline().addAfter( FRAME_PREPENDER, PACKET_ENCODER, new MinecraftEncoder( Protocol.HANDSHAKE, true, ProxyServer.getInstance().getProtocolVersion() ) );
- ch.pipeline().addBefore( FRAME_PREPENDER, LEGACY_KICKER, new KickStringWriter() );
+ ch.pipeline().addBefore( FRAME_PREPENDER, LEGACY_KICKER, PipelineUtils.KICK_STRING_WRITER );
ch.pipeline().get( HandlerBoss.class ).setHandler( new InitialHandler( BungeeCord.getInstance(), listener ) );
if ( listener.isProxyProtocol() )
@@ -77,6 +77,7 @@ public class PipelineUtils
public static final String FRAME_PREPENDER = "frame-prepender";
public static final String LEGACY_DECODER = "legacy-decoder";
public static final String LEGACY_KICKER = "legacy-kick";
+ private static final KickStringWriter KICK_STRING_WRITER = new KickStringWriter();
private static boolean epoll;
--
2.14.1