Class Connection
java.lang.Object
io.netty.channel.ChannelHandlerAdapter
io.netty.channel.ChannelInboundHandlerAdapter
io.netty.channel.SimpleChannelInboundHandler<Packet<?>>
net.minecraft.network.Connection
- All Implemented Interfaces:
io.netty.channel.ChannelHandler, io.netty.channel.ChannelInboundHandler
- Direct Known Subclasses:
FakePlayer.FakeConnection, RateKickingConnection
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler
io.netty.channel.ChannelHandler.Sharable -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate SocketAddressThe address of the remote partyprivate static final floatprivate floatprivate floatprivate @Nullable BandwidthDebugMonitorprivate io.netty.channel.ChannelThe active channelprivate @Nullable DisconnectionDetailsprivate @Nullable DisconnectionDetailsprivate booleanprivate @Nullable PacketListenerprivate booleanprivate booleanprivate @Nullable ProtocolInfo<?> private static final ProtocolInfo<ServerHandshakePacketListener> private static final org.slf4j.Loggerstatic final org.slf4j.Markerstatic final org.slf4j.Markerstatic final org.slf4j.Markerprivate @Nullable PacketListenerThe PacketListener instance responsible for processing received packetsprivate final Queue<Consumer<Connection>> private intprivate final PacketFlowstatic final org.slf4j.Markerprivate booleanprivate intprivate int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionio.netty.channel.Channelchannel()voidchannelActive(io.netty.channel.ChannelHandlerContext ctx) voidchannelInactive(io.netty.channel.ChannelHandlerContext ctx) protected voidchannelRead0(io.netty.channel.ChannelHandlerContext ctx, Packet<?> packet) static voidconfigureInMemoryPipeline(io.netty.channel.ChannelPipeline pipeline, PacketFlow packetFlow) voidconfigurePacketHandler(io.netty.channel.ChannelPipeline pipeline) static voidconfigureSerialization(io.netty.channel.ChannelPipeline pipeline, PacketFlow inboundDirection, boolean local, @Nullable BandwidthDebugMonitor monitor) static io.netty.channel.ChannelFutureconnect(InetSocketAddress address, EventLoopGroupHolder eventLoopGroupHolder, Connection connection) static ConnectionconnectToLocalServer(SocketAddress address) Prepares a clientside Connection for a local in-memory connection ("single player").static ConnectionconnectToServer(InetSocketAddress address, EventLoopGroupHolder eventLoopGroupHolder, @Nullable LocalSampleLogger bandwidthLogger) private static io.netty.channel.ChannelInboundHandlercreateFrameDecoder(@Nullable BandwidthDebugMonitor monitor, boolean local) private static io.netty.channel.ChannelOutboundHandlercreateFrameEncoder(boolean local) voiddisconnect(Component reason) Closes the channel with a given reason.voiddisconnect(DisconnectionDetails details) private voiddoSendPacket(Packet<?> packet, @Nullable io.netty.channel.ChannelFutureListener listener, boolean flush) voidexceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause) private voidflush()voidprivate voidprivate static <T extends PacketListener>
voidgenericsFtw(Packet<T> packet, PacketListener listener) floatfloat@Nullable DisconnectionDetailsProtocolInfo<?> getLoggableAddress(boolean logIPs) @Nullable PacketListenervoidprivate static StringinboundHandlerName(boolean configureInbound) private <S extends ServerboundPacketListener, C extends ClientboundPacketListener>
voidinitiateServerboundConnection(String hostName, int port, ProtocolInfo<S> outbound, ProtocolInfo<C> inbound, C listener, ClientIntent intent) voidinitiateServerboundPlayConnection(String hostName, int port, ClientLoginPacketListener listener) <S extends ServerboundPacketListener, C extends ClientboundPacketListener>
voidinitiateServerboundPlayConnection(String hostName, int port, ProtocolInfo<S> outbound, ProtocolInfo<C> inbound, C listener, boolean transfer) voidinitiateServerboundStatusConnection(String hostName, int port, ClientStatusPacketListener listener) booleanbooleanbooleanbooleanprivate static StringoutboundHandlerName(boolean configureOutbound) voidrunOnceConnected(Consumer<Connection> action) voidvoidvoidprivate voidsendPacket(Packet<?> packet, @Nullable io.netty.channel.ChannelFutureListener listener, boolean flush) voidsetBandwidthLogger(LocalSampleLogger bandwidthLogger) voidsetEncryptionKey(Cipher decryptCipher, Cipher encryptCipher) Enables encryption for this connection using the given decrypting and encrypting ciphers.voidsetListenerForServerboundHandshake(PacketListener packetListener) voidvoidsetupCompression(int threshold, boolean validateDecompressed) Enables or disables compression for this connection.<T extends PacketListener>
voidsetupInboundProtocol(ProtocolInfo<T> protocol, T packetListener) voidsetupOutboundProtocol(ProtocolInfo<?> protocol) private static voidsyncAfterConfigurationChange(io.netty.channel.ChannelFuture future) voidtick()protected voidprivate voidvalidateListener(ProtocolInfo<?> protocol, PacketListener packetListener) Methods inherited from class io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelReadMethods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggeredMethods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharableMethods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.netty.channel.ChannelHandler
handlerAdded, handlerRemoved
-
Field Details
-
AVERAGE_PACKETS_SMOOTHING
private static final float AVERAGE_PACKETS_SMOOTHING- See Also:
-
LOGGER
private static final org.slf4j.Logger LOGGER -
ROOT_MARKER
public static final org.slf4j.Marker ROOT_MARKER -
PACKET_MARKER
public static final org.slf4j.Marker PACKET_MARKER -
PACKET_RECEIVED_MARKER
public static final org.slf4j.Marker PACKET_RECEIVED_MARKER -
PACKET_SENT_MARKER
public static final org.slf4j.Marker PACKET_SENT_MARKER -
INITIAL_PROTOCOL
-
receiving
-
sendLoginDisconnect
private volatile boolean sendLoginDisconnect -
pendingActions
-
channel
private io.netty.channel.Channel channelThe active channel -
address
The address of the remote party -
disconnectListener
-
packetListener
The PacketListener instance responsible for processing received packets -
disconnectionDetails
-
encrypted
private boolean encrypted -
disconnectionHandled
private boolean disconnectionHandled -
receivedPackets
private int receivedPackets -
sentPackets
private int sentPackets -
averageReceivedPackets
private float averageReceivedPackets -
averageSentPackets
private float averageSentPackets -
tickCount
private int tickCount -
handlingFault
private boolean handlingFault -
delayedDisconnect
-
bandwidthDebugMonitor
-
inboundProtocol
-
-
Constructor Details
-
Connection
-
-
Method Details
-
channelActive
-
channelInactive
public void channelInactive(io.netty.channel.ChannelHandlerContext ctx) - Specified by:
channelInactivein interfaceio.netty.channel.ChannelInboundHandler- Overrides:
channelInactivein classio.netty.channel.ChannelInboundHandlerAdapter
-
exceptionCaught
- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelHandler- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
exceptionCaughtin classio.netty.channel.ChannelInboundHandlerAdapter
-
channelRead0
-
genericsFtw
private static <T extends PacketListener> void genericsFtw(Packet<T> packet, PacketListener listener) -
validateListener
-
syncAfterConfigurationChange
private static void syncAfterConfigurationChange(io.netty.channel.ChannelFuture future) -
setupInboundProtocol
public <T extends PacketListener> void setupInboundProtocol(ProtocolInfo<T> protocol, T packetListener) -
setupOutboundProtocol
-
setListenerForServerboundHandshake
-
initiateServerboundStatusConnection
public void initiateServerboundStatusConnection(String hostName, int port, ClientStatusPacketListener listener) -
initiateServerboundPlayConnection
public void initiateServerboundPlayConnection(String hostName, int port, ClientLoginPacketListener listener) -
initiateServerboundPlayConnection
public <S extends ServerboundPacketListener, C extends ClientboundPacketListener> void initiateServerboundPlayConnection(String hostName, int port, ProtocolInfo<S> outbound, ProtocolInfo<C> inbound, C listener, boolean transfer) -
initiateServerboundConnection
private <S extends ServerboundPacketListener, C extends ClientboundPacketListener> void initiateServerboundConnection(String hostName, int port, ProtocolInfo<S> outbound, ProtocolInfo<C> inbound, C listener, ClientIntent intent) -
send
-
send
-
send
public void send(Packet<?> packet, @Nullable io.netty.channel.ChannelFutureListener listener, boolean flush) -
runOnceConnected
-
sendPacket
private void sendPacket(Packet<?> packet, @Nullable io.netty.channel.ChannelFutureListener listener, boolean flush) -
doSendPacket
private void doSendPacket(Packet<?> packet, @Nullable io.netty.channel.ChannelFutureListener listener, boolean flush) -
flushChannel
public void flushChannel() -
flush
private void flush() -
flushQueue
private void flushQueue() -
tick
public void tick() -
tickSecond
protected void tickSecond() -
getRemoteAddress
-
getLoggableAddress
-
disconnect
Closes the channel with a given reason. The reason is stored for later and will be used for informational purposes (info log on server, disconnection screen on the client). This method is also called on the client when the server requests disconnection viaClientboundDisconnectPacket. Closing the channel this way does not send any disconnection packets, it simply terminates the underlying netty channel. -
disconnect
-
isMemoryConnection
public boolean isMemoryConnection() -
getReceiving
-
getSending
-
connectToServer
public static Connection connectToServer(InetSocketAddress address, EventLoopGroupHolder eventLoopGroupHolder, @Nullable LocalSampleLogger bandwidthLogger) -
connect
public static io.netty.channel.ChannelFuture connect(InetSocketAddress address, EventLoopGroupHolder eventLoopGroupHolder, Connection connection) -
outboundHandlerName
-
inboundHandlerName
-
configurePacketHandler
public void configurePacketHandler(io.netty.channel.ChannelPipeline pipeline) -
configureSerialization
public static void configureSerialization(io.netty.channel.ChannelPipeline pipeline, PacketFlow inboundDirection, boolean local, @Nullable BandwidthDebugMonitor monitor) -
createFrameEncoder
private static io.netty.channel.ChannelOutboundHandler createFrameEncoder(boolean local) -
createFrameDecoder
private static io.netty.channel.ChannelInboundHandler createFrameDecoder(@Nullable BandwidthDebugMonitor monitor, boolean local) -
configureInMemoryPipeline
public static void configureInMemoryPipeline(io.netty.channel.ChannelPipeline pipeline, PacketFlow packetFlow) -
connectToLocalServer
Prepares a clientside Connection for a local in-memory connection ("single player"). Establishes a connection to the socket supplied and configures the channel pipeline (only the packet handler is necessary, since this is for an in-memory connection). Returns the newly created instance. -
setEncryptionKey
Enables encryption for this connection using the given decrypting and encrypting ciphers. This adds new handlers to this connection's pipeline which handle the decrypting and encrypting. This happens as part of the normal network handshake.- See Also:
-
isEncrypted
public boolean isEncrypted() -
isConnected
public boolean isConnected() -
isConnecting
public boolean isConnecting() -
getPacketListener
-
getDisconnectionDetails
-
setReadOnly
public void setReadOnly() -
setupCompression
public void setupCompression(int threshold, boolean validateDecompressed) Enables or disables compression for this connection. Ifthresholdis >= 0 then aCompressionDecoderandCompressionEncoderare installed in the pipeline or updated if they already exist. Ifthresholdis invalid input: '<' 0 then any such codec are removed. Compression is enabled as part of the connection handshake when the server sendsClientboundLoginCompressionPacket. -
handleDisconnection
public void handleDisconnection() -
getAverageReceivedPackets
public float getAverageReceivedPackets() -
getAverageSentPackets
public float getAverageSentPackets() -
setBandwidthLogger
-
channel
public io.netty.channel.Channel channel() -
getDirection
-
getInboundProtocol
-