2323import io .netty .channel .ChannelHandlerContext ;
2424import net .minecraft .network .ClientConnection ;
2525import net .minecraft .network .NetworkSide ;
26+ import net .minecraft .network .NetworkState ;
2627import net .minecraft .network .listener .ClientPacketListener ;
27- import net .minecraft .network .listener .PacketListener ;
2828import net .minecraft .network .listener .ServerPacketListener ;
2929import net .minecraft .network .packet .Packet ;
3030import net .minecraft .network .packet .c2s .handshake .ConnectionIntent ;
@@ -42,6 +42,7 @@ public class ClientConnectionMixin {
4242 @ Final
4343 private NetworkSide side ;
4444
45+ @ SuppressWarnings ("unchecked" )
4546 @ Inject (method = "send(Lnet/minecraft/network/packet/Packet;)V" , at = @ At ("HEAD" ), cancellable = true )
4647 private void sendingPacket (Packet <?> packet , final CallbackInfo callbackInfo ) {
4748 if (side != NetworkSide .CLIENTBOUND ) return ;
@@ -51,13 +52,15 @@ private void sendingPacket(Packet<?> packet, final CallbackInfo callbackInfo) {
5152 }
5253 }
5354
55+ @ SuppressWarnings ("unchecked" )
5456 @ Inject (method = "send(Lnet/minecraft/network/packet/Packet;)V" , at = @ At ("RETURN" ))
5557 private void sendingPacketPost (Packet <?> packet , final CallbackInfo callbackInfo ) {
5658 if (side != NetworkSide .CLIENTBOUND ) return ;
5759
5860 EventFlow .post (new PacketEvent .Send .Post ((Packet <ServerPacketListener >) packet ));
5961 }
6062
63+ @ SuppressWarnings ("all" )
6164 @ Inject (method = "channelRead0(Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/packet/Packet;)V" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/network/ClientConnection;handlePacket(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;)V" , shift = At .Shift .BEFORE ), cancellable = true , require = 1 )
6265 private void receivingPacket (
6366 ChannelHandlerContext channelHandlerContext ,
@@ -71,6 +74,7 @@ private void receivingPacket(
7174 }
7275 }
7376
77+ @ SuppressWarnings ("unchecked" )
7478 @ Inject (method = "channelRead0(Lio/netty/channel/ChannelHandlerContext;Lnet/minecraft/network/packet/Packet;)V" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/network/ClientConnection;handlePacket(Lnet/minecraft/network/packet/Packet;Lnet/minecraft/network/listener/PacketListener;)V" , shift = At .Shift .AFTER ))
7579 private void receivingPacketPost (
7680 ChannelHandlerContext channelHandlerContext ,
@@ -82,15 +86,19 @@ private void receivingPacketPost(
8286 EventFlow .post (new PacketEvent .Receive .Post ((Packet <ClientPacketListener >) packet ));
8387 }
8488
85- @ Inject (method = "connect(Ljava/lang/String;ILnet/minecraft/network/listener/PacketListener;Lnet/minecraft/network/packet/c2s/handshake/ConnectionIntent;)V" , at = @ At ("HEAD" ), cancellable = true )
86- private void onConnect (
89+ @ Inject (method = "connect(Ljava/lang/String;ILnet/minecraft/network/NetworkState;Lnet/minecraft/network/NetworkState;Lnet/minecraft/network/listener/ClientPacketListener;Lnet/minecraft/network/packet/c2s/handshake/ConnectionIntent;)V" , at = @ At ("HEAD" ), cancellable = true )
90+ private
91+ <S extends ServerPacketListener , C extends ClientPacketListener >
92+ void onConnect (
8793 String address ,
8894 int port ,
89- PacketListener listener ,
95+ NetworkState <S > outboundState ,
96+ NetworkState <C > inboundState ,
97+ C prePlayStateListener ,
9098 ConnectionIntent intent ,
9199 CallbackInfo ci
92100 ) {
93- if (EventFlow .post (new ConnectionEvent .Connect .Pre (address , port , listener , intent )).isCanceled ()) ci .cancel ();
101+ if (EventFlow .post (new ConnectionEvent .Connect .Pre (address , port , prePlayStateListener , intent )).isCanceled ()) ci .cancel ();
94102 }
95103
96104 @ Inject (method = "disconnect(Lnet/minecraft/text/Text;)V" , at = @ At ("HEAD" ))
0 commit comments