Package net.minecraft.network
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 SocketAddress
The address of the remote partyprivate static final float
private float
private float
(package private) BandwidthDebugMonitor
private io.netty.channel.Channel
The active channelprivate DisconnectionDetails
private DisconnectionDetails
private boolean
private PacketListener
private boolean
private boolean
private ProtocolInfo
<?> private static final ProtocolInfo
<ServerHandshakePacketListener> static final Supplier
<io.netty.channel.DefaultEventLoopGroup> private static final org.slf4j.Logger
static final Supplier
<io.netty.channel.epoll.EpollEventLoopGroup> static final Supplier
<io.netty.channel.nio.NioEventLoopGroup> static final org.slf4j.Marker
static final org.slf4j.Marker
static final org.slf4j.Marker
private PacketListener
The PacketListener instance responsible for processing received packetsprivate final Queue
<Consumer<Connection>> private int
private final PacketFlow
static final org.slf4j.Marker
private boolean
private int
private int
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionio.netty.channel.Channel
channel()
void
channelActive
(io.netty.channel.ChannelHandlerContext p_129525_) void
channelInactive
(io.netty.channel.ChannelHandlerContext p_129527_) protected void
channelRead0
(io.netty.channel.ChannelHandlerContext p_129487_, Packet<?> p_129488_) static void
configureInMemoryPipeline
(io.netty.channel.ChannelPipeline p_295541_, PacketFlow p_294540_) void
configurePacketHandler
(io.netty.channel.ChannelPipeline p_302007_) static void
configureSerialization
(io.netty.channel.ChannelPipeline p_265436_, PacketFlow p_265104_, boolean p_341592_, BandwidthDebugMonitor p_299246_) static io.netty.channel.ChannelFuture
connect
(InetSocketAddress p_290034_, boolean p_290035_, Connection p_290031_) static Connection
connectToLocalServer
(SocketAddress pAddress) Prepares a clientside Connection for a local in-memory connection ("single player").static Connection
connectToServer
(InetSocketAddress pAddress, boolean pUseEpollIfAvailable, LocalSampleLogger pSampleLogger) private static io.netty.channel.ChannelInboundHandler
createFrameDecoder
(BandwidthDebugMonitor p_341605_, boolean p_341702_) private static io.netty.channel.ChannelOutboundHandler
createFrameEncoder
(boolean p_341616_) void
disconnect
(Component pMessage) Closes the channel with a given reason.void
disconnect
(DisconnectionDetails pDisconnectionDetails) private void
doSendPacket
(Packet<?> pPacket, PacketSendListener pSendListener, boolean pFlush) void
exceptionCaught
(io.netty.channel.ChannelHandlerContext p_129533_, Throwable p_129534_) private void
flush()
void
private void
private static <T extends PacketListener>
voidgenericsFtw
(Packet<T> pPacket, PacketListener pListener) float
float
ProtocolInfo
<?> getLoggableAddress
(boolean pLogIps) void
private static String
inboundHandlerName
(boolean pServerbound) private <S extends ServerboundPacketListener,
C extends ClientboundPacketListener>
voidinitiateServerboundConnection
(String pHostName, int pPort, ProtocolInfo<S> pServerboundProtocol, ProtocolInfo<C> pClientboundProtocol, C pPacketListener, ClientIntent pIntention) void
initiateServerboundPlayConnection
(String pHostName, int pPort, ClientLoginPacketListener pPacketListener) <S extends ServerboundPacketListener,
C extends ClientboundPacketListener>
voidinitiateServerboundPlayConnection
(String pHostName, int pPort, ProtocolInfo<S> pServerboundProtocol, ProtocolInfo<C> pClientbountProtocol, C pPacketListener, boolean pIsTransfer) void
initiateServerboundStatusConnection
(String pHostName, int pPort, ClientStatusPacketListener pPacketListener) boolean
boolean
boolean
boolean
private static String
outboundHandlerName
(boolean pClientbound) void
runOnceConnected
(Consumer<Connection> pAction) void
void
send
(Packet<?> pPacket, PacketSendListener pSendListener) void
send
(Packet<?> pPacket, PacketSendListener pListener, boolean pFlush) private void
sendPacket
(Packet<?> pPacket, PacketSendListener pSendListener, boolean pFlush) void
setBandwidthLogger
(LocalSampleLogger pBandwithLogger) void
setEncryptionKey
(Cipher pDecryptingCipher, Cipher pEncryptingCipher) Enables encryption for this connection using the given decrypting and encrypting ciphers.void
setListenerForServerboundHandshake
(PacketListener pPacketListener) void
void
setupCompression
(int pThreshold, boolean pValidateDecompressed) Enables or disables compression for this connection.<T extends PacketListener>
voidsetupInboundProtocol
(ProtocolInfo<T> pProtocolInfo, T pPacketInfo) void
setupOutboundProtocol
(ProtocolInfo<?> pProtocolInfo) private static void
syncAfterConfigurationChange
(io.netty.channel.ChannelFuture p_341671_) void
tick()
protected void
private void
validateListener
(ProtocolInfo<?> pProtocolInfo, PacketListener pPacketListener) Methods inherited from class io.netty.channel.SimpleChannelInboundHandler
acceptInboundMessage, channelRead
Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter
channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, userEventTriggered
Methods inherited from class io.netty.channel.ChannelHandlerAdapter
ensureNotSharable, handlerAdded, handlerRemoved, isSharable
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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 -
NETWORK_WORKER_GROUP
-
NETWORK_EPOLL_WORKER_GROUP
-
LOCAL_WORKER_GROUP
-
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
- Specified by:
channelActive
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
channelActive
in classio.netty.channel.ChannelInboundHandlerAdapter
- Throws:
Exception
-
channelInactive
public void channelInactive(io.netty.channel.ChannelHandlerContext p_129527_) - Specified by:
channelInactive
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
channelInactive
in classio.netty.channel.ChannelInboundHandlerAdapter
-
exceptionCaught
- Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelHandler
- Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
exceptionCaught
in classio.netty.channel.ChannelInboundHandlerAdapter
-
channelRead0
- Specified by:
channelRead0
in classio.netty.channel.SimpleChannelInboundHandler<Packet<?>>
-
genericsFtw
private static <T extends PacketListener> void genericsFtw(Packet<T> pPacket, PacketListener pListener) -
validateListener
-
syncAfterConfigurationChange
private static void syncAfterConfigurationChange(io.netty.channel.ChannelFuture p_341671_) -
setupInboundProtocol
public <T extends PacketListener> void setupInboundProtocol(ProtocolInfo<T> pProtocolInfo, T pPacketInfo) -
setupOutboundProtocol
-
setListenerForServerboundHandshake
-
initiateServerboundStatusConnection
public void initiateServerboundStatusConnection(String pHostName, int pPort, ClientStatusPacketListener pPacketListener) -
initiateServerboundPlayConnection
public void initiateServerboundPlayConnection(String pHostName, int pPort, ClientLoginPacketListener pPacketListener) -
initiateServerboundPlayConnection
public <S extends ServerboundPacketListener,C extends ClientboundPacketListener> void initiateServerboundPlayConnection(String pHostName, int pPort, ProtocolInfo<S> pServerboundProtocol, ProtocolInfo<C> pClientbountProtocol, C pPacketListener, boolean pIsTransfer) -
initiateServerboundConnection
private <S extends ServerboundPacketListener,C extends ClientboundPacketListener> void initiateServerboundConnection(String pHostName, int pPort, ProtocolInfo<S> pServerboundProtocol, ProtocolInfo<C> pClientboundProtocol, C pPacketListener, ClientIntent pIntention) -
send
-
send
-
send
-
runOnceConnected
-
sendPacket
private void sendPacket(Packet<?> pPacket, @Nullable PacketSendListener pSendListener, boolean pFlush) -
doSendPacket
private void doSendPacket(Packet<?> pPacket, @Nullable PacketSendListener pSendListener, boolean pFlush) -
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 pAddress, boolean pUseEpollIfAvailable, @Nullable LocalSampleLogger pSampleLogger) -
connect
public static io.netty.channel.ChannelFuture connect(InetSocketAddress p_290034_, boolean p_290035_, Connection p_290031_) -
outboundHandlerName
-
inboundHandlerName
-
configurePacketHandler
public void configurePacketHandler(io.netty.channel.ChannelPipeline p_302007_) -
configureSerialization
public static void configureSerialization(io.netty.channel.ChannelPipeline p_265436_, PacketFlow p_265104_, boolean p_341592_, @Nullable BandwidthDebugMonitor p_299246_) -
createFrameEncoder
private static io.netty.channel.ChannelOutboundHandler createFrameEncoder(boolean p_341616_) -
createFrameDecoder
private static io.netty.channel.ChannelInboundHandler createFrameDecoder(@Nullable BandwidthDebugMonitor p_341605_, boolean p_341702_) -
configureInMemoryPipeline
public static void configureInMemoryPipeline(io.netty.channel.ChannelPipeline p_295541_, PacketFlow p_294540_) -
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 pThreshold, boolean pValidateDecompressed) Enables or disables compression for this connection. Ifthreshold
is >= 0 then aCompressionDecoder
andCompressionEncoder
are installed in the pipeline or updated if they already exist. Ifthreshold
is 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
-