blob: d65f17ca283ce64efeabc262c8fd76cb9a81f53f [file] [log] [blame] [raw]
package protocolsupport.protocol;
import io.netty.channel.Channel;
import io.netty.channel.ChannelException;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.handler.timeout.ReadTimeoutHandler;
import java.util.List;
import net.minecraft.server.v1_8_R1.EnumProtocolDirection;
import net.minecraft.server.v1_8_R1.MinecraftServer;
import net.minecraft.server.v1_8_R1.NetworkManager;
import net.minecraft.server.v1_8_R1.ServerConnection;
public class ServerConnectionChannel extends ChannelInitializer<Channel> {
private ServerConnection connection;
private List<NetworkManager> networkManagers;
public ServerConnectionChannel(ServerConnection connection, List<NetworkManager> networkManagers) {
this.connection = connection;
this.networkManagers = networkManagers;
}
@Override
protected void initChannel(Channel channel) {
try {
channel.config().setOption(ChannelOption.IP_TOS, 24);
} catch (ChannelException channelexception) {
}
try {
channel.config().setOption(ChannelOption.TCP_NODELAY, Boolean.valueOf(false));
} catch (ChannelException channelexception1) {
}
channel.pipeline()
.addLast("timeout", new ReadTimeoutHandler(30))
.addLast("decoder", new PacketDecoder())
.addLast("encoder", new PacketEncoder());
NetworkManager networkmanager = new NetworkManager(EnumProtocolDirection.SERVERBOUND);
networkManagers.add(networkmanager);
channel.pipeline().addLast("packet_handler", networkmanager);
networkmanager.a(new HandshakeListener(MinecraftServer.getServer(), networkmanager));
}
}