#3846, #3847: Handle packet bundles

This commit is contained in:
Outfluencer
2025-06-08 11:07:20 +10:00
committed by md_5
parent 70fa02f3a4
commit 2b9808cd13
6 changed files with 61 additions and 1 deletions

View File

@@ -39,6 +39,7 @@ import net.md_5.bungee.protocol.Either;
import net.md_5.bungee.protocol.PacketWrapper;
import net.md_5.bungee.protocol.Protocol;
import net.md_5.bungee.protocol.ProtocolConstants;
import net.md_5.bungee.protocol.packet.BundleDelimiter;
import net.md_5.bungee.protocol.packet.CookieRequest;
import net.md_5.bungee.protocol.packet.CookieResponse;
import net.md_5.bungee.protocol.packet.EncryptionRequest;
@@ -369,9 +370,13 @@ public class ServerConnector extends PacketHandler
{
if ( user.getServer() != null )
{
// Begin config mode
if ( user.getCh().getEncodeProtocol() != Protocol.CONFIGURATION )
{
if ( user.isBundling() )
{
user.toggleBundling();
user.unsafe().sendPacket( new BundleDelimiter() );
}
user.unsafe().sendPacket( new StartConfiguration() );
}
} else

View File

@@ -114,6 +114,14 @@ public final class UserConnection implements ProxiedPlayer
// Used for trying multiple servers in order
@Setter
private Queue<String> serverJoinQueue;
@Getter
@Setter
private boolean bundling;
public void toggleBundling()
{
bundling = !bundling;
}
/*========================================================================*/
private final Collection<String> groups = new CaseInsensitiveSet();
private final Collection<String> permissions = new CaseInsensitiveSet();

View File

@@ -54,6 +54,7 @@ import net.md_5.bungee.protocol.PacketWrapper;
import net.md_5.bungee.protocol.Protocol;
import net.md_5.bungee.protocol.ProtocolConstants;
import net.md_5.bungee.protocol.packet.BossBar;
import net.md_5.bungee.protocol.packet.BundleDelimiter;
import net.md_5.bungee.protocol.packet.Commands;
import net.md_5.bungee.protocol.packet.FinishConfiguration;
import net.md_5.bungee.protocol.packet.KeepAlive;
@@ -812,6 +813,12 @@ public class DownstreamBridge extends PacketHandler
throw CancelSendSignal.INSTANCE;
}
@Override
public void handle(BundleDelimiter bundleDelimiter) throws Exception
{
con.toggleBundling();
}
@Override
public String toString()
{