summaryrefslogtreecommitdiffstats
path: root/src/main/java/net/minecraft/server/NetworkManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net/minecraft/server/NetworkManager.java')
-rw-r--r--src/main/java/net/minecraft/server/NetworkManager.java210
1 files changed, 0 insertions, 210 deletions
diff --git a/src/main/java/net/minecraft/server/NetworkManager.java b/src/main/java/net/minecraft/server/NetworkManager.java
deleted file mode 100644
index 1b080c77..00000000
--- a/src/main/java/net/minecraft/server/NetworkManager.java
+++ /dev/null
@@ -1,210 +0,0 @@
-package net.minecraft.server;
-
-import java.net.SocketAddress;
-import java.util.Queue;
-import javax.crypto.SecretKey;
-
-import net.minecraft.util.com.google.common.collect.Queues;
-import net.minecraft.util.com.google.common.util.concurrent.ThreadFactoryBuilder;
-import net.minecraft.util.io.netty.channel.Channel;
-import net.minecraft.util.io.netty.channel.ChannelFutureListener;
-import net.minecraft.util.io.netty.channel.ChannelHandlerContext;
-import net.minecraft.util.io.netty.channel.SimpleChannelInboundHandler;
-import net.minecraft.util.io.netty.channel.local.LocalChannel;
-import net.minecraft.util.io.netty.channel.local.LocalServerChannel;
-import net.minecraft.util.io.netty.channel.nio.NioEventLoopGroup;
-import net.minecraft.util.io.netty.handler.timeout.TimeoutException;
-import net.minecraft.util.io.netty.util.AttributeKey;
-import net.minecraft.util.io.netty.util.concurrent.GenericFutureListener;
-import net.minecraft.util.org.apache.commons.lang3.Validate;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-import org.apache.logging.log4j.Marker;
-import org.apache.logging.log4j.MarkerManager;
-
-public class NetworkManager extends SimpleChannelInboundHandler {
-
- private static final Logger i = LogManager.getLogger();
- public static final Marker a = MarkerManager.getMarker("NETWORK");
- public static final Marker b = MarkerManager.getMarker("NETWORK_PACKETS", a);
- public static final Marker c = MarkerManager.getMarker("NETWORK_STAT", a);
- public static final AttributeKey d = new AttributeKey("protocol");
- public static final AttributeKey e = new AttributeKey("receivable_packets");
- public static final AttributeKey f = new AttributeKey("sendable_packets");
- public static final NioEventLoopGroup g = new NioEventLoopGroup(0, (new ThreadFactoryBuilder()).setNameFormat("Netty Client IO #%d").setDaemon(true).build());
- public static final NetworkStatistics h = new NetworkStatistics();
- private final boolean j;
- private final Queue k = Queues.newConcurrentLinkedQueue();
- private final Queue l = Queues.newConcurrentLinkedQueue();
- private Channel m;
- private SocketAddress n;
- private PacketListener o;
- private EnumProtocol p;
- private IChatBaseComponent q;
- private boolean r;
-
- public NetworkManager(boolean flag) {
- this.j = flag;
- }
-
- public void channelActive(ChannelHandlerContext channelhandlercontext) throws Exception { // CraftBukkit - throws Exception
- super.channelActive(channelhandlercontext);
- this.m = channelhandlercontext.channel();
- this.n = this.m.remoteAddress();
- this.a(EnumProtocol.HANDSHAKING);
- }
-
- public void a(EnumProtocol enumprotocol) {
- this.p = (EnumProtocol) this.m.attr(d).getAndSet(enumprotocol);
- this.m.attr(e).set(enumprotocol.a(this.j));
- this.m.attr(f).set(enumprotocol.b(this.j));
- this.m.config().setAutoRead(true);
- i.debug("Enabled auto read");
- }
-
- public void channelInactive(ChannelHandlerContext channelhandlercontext) {
- this.close(new ChatMessage("disconnect.endOfStream", new Object[0]));
- }
-
- public void exceptionCaught(ChannelHandlerContext channelhandlercontext, Throwable throwable) {
- ChatMessage chatmessage;
-
- if (throwable instanceof TimeoutException) {
- chatmessage = new ChatMessage("disconnect.timeout", new Object[0]);
- } else {
- chatmessage = new ChatMessage("disconnect.genericReason", new Object[] { "Internal Exception: " + throwable});
- }
-
- this.close(chatmessage);
- }
-
- protected void a(ChannelHandlerContext channelhandlercontext, Packet packet) {
- if (this.m.isOpen()) {
- if (packet.a()) {
- packet.handle(this.o);
- } else {
- this.k.add(packet);
- }
- }
- }
-
- public void a(PacketListener packetlistener) {
- Validate.notNull(packetlistener, "packetListener", new Object[0]);
- i.debug("Set listener of {} to {}", new Object[] { this, packetlistener});
- this.o = packetlistener;
- }
-
- public void handle(Packet packet, GenericFutureListener... agenericfuturelistener) {
- if (this.m != null && this.m.isOpen()) {
- this.i();
- this.b(packet, agenericfuturelistener);
- } else {
- this.l.add(new QueuedPacket(packet, agenericfuturelistener));
- }
- }
-
- private void b(Packet packet, GenericFutureListener[] agenericfuturelistener) {
- EnumProtocol enumprotocol = EnumProtocol.a(packet);
- EnumProtocol enumprotocol1 = (EnumProtocol) this.m.attr(d).get();
-
- if (enumprotocol1 != enumprotocol) {
- i.debug("Disabled auto read");
- this.m.config().setAutoRead(false);
- }
-
- if (this.m.eventLoop().inEventLoop()) {
- if (enumprotocol != enumprotocol1) {
- this.a(enumprotocol);
- }
-
- this.m.writeAndFlush(packet).addListeners(agenericfuturelistener).addListener(ChannelFutureListener.FIRE_EXCEPTION_ON_FAILURE);
- } else {
- this.m.eventLoop().execute(new QueuedProtocolSwitch(this, enumprotocol, enumprotocol1, packet, agenericfuturelistener));
- }
- }
-
- private void i() {
- if (this.m != null && this.m.isOpen()) {
- while (!this.l.isEmpty()) {
- QueuedPacket queuedpacket = (QueuedPacket) this.l.poll();
-
- this.b(QueuedPacket.a(queuedpacket), QueuedPacket.b(queuedpacket));
- }
- }
- }
-
- public void a() {
- this.i();
- EnumProtocol enumprotocol = (EnumProtocol) this.m.attr(d).get();
-
- if (this.p != enumprotocol) {
- if (this.p != null) {
- this.o.a(this.p, enumprotocol);
- }
-
- this.p = enumprotocol;
- }
-
- if (this.o != null) {
- for (int i = 1000; !this.k.isEmpty() && i >= 0; --i) {
- Packet packet = (Packet) this.k.poll();
-
- // CraftBukkit start
- if (!this.isConnected() || !this.m.config().isAutoRead()) {
- continue;
- }
- // CraftBukkit end
- packet.handle(this.o);
- }
-
- this.o.a();
- }
-
- this.m.flush();
- }
-
- public SocketAddress getSocketAddress() {
- return this.n;
- }
-
- public void close(IChatBaseComponent ichatbasecomponent) {
- if (this.m.isOpen()) {
- this.m.close();
- this.q = ichatbasecomponent;
- }
- }
-
- public boolean c() {
- return this.m instanceof LocalChannel || this.m instanceof LocalServerChannel;
- }
-
- public void a(SecretKey secretkey) {
- this.m.pipeline().addBefore("splitter", "decrypt", new PacketDecrypter(MinecraftEncryption.a(2, secretkey)));
- this.m.pipeline().addBefore("prepender", "encrypt", new PacketEncrypter(MinecraftEncryption.a(1, secretkey)));
- this.r = true;
- }
-
- public boolean isConnected() {
- return this.m != null && this.m.isOpen();
- }
-
- public PacketListener getPacketListener() {
- return this.o;
- }
-
- public IChatBaseComponent f() {
- return this.q;
- }
-
- public void g() {
- this.m.config().setAutoRead(false);
- }
-
- protected void channelRead0(ChannelHandlerContext channelhandlercontext, Object object) {
- this.a(channelhandlercontext, (Packet) object);
- }
-
- static Channel a(NetworkManager networkmanager) {
- return networkmanager.m;
- }
-}