@@ -48,12 +48,14 @@ public void stopDiscard(Player player, Class<? extends Packet<ClientGamePacketLi
4848 getPacketHandler (player .getUniqueId ()).discardRules .remove (clazz );
4949 }
5050
51- public void injectOutgoing (Player player , Packet <ClientGamePacketListener > packet ) {
52- getPacketHandler (player .getUniqueId ()).injectOutgoing (packet );
51+ public void injectOutgoing (Player player , List <Packet <? super ClientGamePacketListener >> packets ) {
52+ if (packets .isEmpty ())
53+ return ;
54+ injectOutgoing (player , new ClientboundBundlePacket (packets ));
5355 }
5456
55- public void injectOutgoing (Player player , List < Packet <? super ClientGamePacketListener >> packets ) {
56- getPacketHandler (player .getUniqueId ()).injectOutgoing (new ClientboundBundlePacket ( packets ) );
57+ public void injectOutgoing (Player player , Packet <ClientGamePacketListener > packet ) {
58+ getPacketHandler (player .getUniqueId ()).injectOutgoing (packet );
5759 }
5860
5961 @ SuppressWarnings ("unchecked" )
@@ -116,7 +118,7 @@ public void injectOutgoing(Packet<ClientGamePacketListener> packet) {
116118
117119 try {
118120 print (packet , "injected" );
119- super . write ( channel .pipeline (). context ( this ), packet , channel . newPromise ( ));
121+ channel .writeAndFlush ( packet , new ForceChannelPromise ( channel ));
120122 } catch (Exception e ) {
121123 throw new RuntimeException (e );
122124 }
@@ -125,7 +127,7 @@ public void injectOutgoing(Packet<ClientGamePacketListener> packet) {
125127 @ SuppressWarnings ("unchecked" )
126128 @ Override
127129 public void write (ChannelHandlerContext ctx , Object msg , ChannelPromise promise ) {
128- if (msg instanceof Packet <?> packet ) {
130+ if (msg instanceof Packet <?> packet && !( promise instanceof ForceChannelPromise ) ) {
129131 if (packet instanceof ClientboundBundlePacket bundle ) {
130132 var subPackets = StreamSupport .stream (bundle .subPackets ().spliterator (), false )
131133 .<Packet <? super ClientGamePacketListener >>map (this ::singleWrite )
0 commit comments