From cc5f92086ac4eb7cca9790fe498d7641415736d1 Mon Sep 17 00:00:00 2001 From: Nanit Date: Fri, 29 Oct 2021 13:57:01 +0300 Subject: [PATCH] Moved refs to encoder and decoder to connection to speed up access --- .../connection/ClientChannelInitializer.java | 9 ++++++--- .../limbo/connection/ClientConnection.java | 19 +++++++++---------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java index 4ffc47e..827fc99 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientChannelInitializer.java @@ -24,13 +24,16 @@ public class ClientChannelInitializer extends ChannelInitializer { protected void initChannel(Channel channel) { ChannelPipeline pipeline = channel.pipeline(); + PacketDecoder decoder = new PacketDecoder(); + PacketEncoder encoder = new PacketEncoder(); + pipeline.addLast("timeout", new ReadTimeoutHandler(server.getConfig().getReadTimeout(), TimeUnit.MILLISECONDS)); pipeline.addLast("frame_decoder", new VarIntFrameDecoder()); pipeline.addLast("frame_encoder", new VarIntLengthEncoder()); - pipeline.addLast("decoder", new PacketDecoder()); - pipeline.addLast("encoder", new PacketEncoder()); - pipeline.addLast("handler", new ClientConnection(channel, server)); + pipeline.addLast("decoder", decoder); + pipeline.addLast("encoder", encoder); + pipeline.addLast("handler", new ClientConnection(channel, server, decoder, encoder)); } } diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index b4d9c31..362f27e 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -47,15 +47,20 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private final Channel channel; private final GameProfile gameProfile; + private final PacketDecoder decoder; + private final PacketEncoder encoder; + private State state; private Version clientVersion; private SocketAddress address; private int velocityLoginMessageId = -1; - public ClientConnection(Channel channel, LimboServer server) { + public ClientConnection(Channel channel, LimboServer server, PacketDecoder decoder, PacketEncoder encoder) { this.server = server; this.channel = channel; + this.decoder = decoder; + this.encoder = encoder; this.address = channel.remoteAddress(); this.gameProfile = new GameProfile(); } @@ -244,18 +249,12 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { private void setPlayState() { this.state = State.PLAY; - channel.pipeline().get(PacketDecoder.class) - .updateState(this.state); - channel.pipeline().get(PacketEncoder.class) - .updateState(this.state); + decoder.updateState(this.state); + encoder.updateState(this.state); } - public void updateStateAndVersion(State state, Version version){ + public void updateStateAndVersion(State state, Version version) { this.state = state; - - PacketDecoder decoder = channel.pipeline().get(PacketDecoder.class); - PacketEncoder encoder = channel.pipeline().get(PacketEncoder.class); - decoder.updateVersion(version); decoder.updateState(state); encoder.updateVersion(version);