#3848: Add support for showing dialogs in configuration state

Co-authored-by: Outfluencer <git@outfluencer.dev>
This commit is contained in:
FlorianMichael 2025-06-16 07:29:16 +10:00 committed by md_5
parent 3cd530f007
commit d5bcabdc60
No known key found for this signature in database
GPG Key ID: E8E901AC7C617C11
3 changed files with 23 additions and 0 deletions

View File

@ -45,6 +45,7 @@ import net.md_5.bungee.protocol.packet.ServerData;
import net.md_5.bungee.protocol.packet.ServerLinks;
import net.md_5.bungee.protocol.packet.SetCompression;
import net.md_5.bungee.protocol.packet.ShowDialog;
import net.md_5.bungee.protocol.packet.ShowDialogDirect;
import net.md_5.bungee.protocol.packet.StartConfiguration;
import net.md_5.bungee.protocol.packet.StatusRequest;
import net.md_5.bungee.protocol.packet.StatusResponse;
@ -287,6 +288,10 @@ public abstract class AbstractPacketHandler
{
}
public void handle(ShowDialogDirect showDialogDirect) throws Exception
{
}
public void handle(ClearDialog clearDialog) throws Exception
{
}

View File

@ -51,6 +51,7 @@ import net.md_5.bungee.protocol.packet.ServerData;
import net.md_5.bungee.protocol.packet.ServerLinks;
import net.md_5.bungee.protocol.packet.SetCompression;
import net.md_5.bungee.protocol.packet.ShowDialog;
import net.md_5.bungee.protocol.packet.ShowDialogDirect;
import net.md_5.bungee.protocol.packet.StartConfiguration;
import net.md_5.bungee.protocol.packet.StatusRequest;
import net.md_5.bungee.protocol.packet.StatusResponse;
@ -857,6 +858,16 @@ public enum Protocol
ServerLinks::new,
map( ProtocolConstants.MINECRAFT_1_21, 0x10 )
);
TO_CLIENT.registerPacket(
ClearDialog.class,
ClearDialog::new,
map( ProtocolConstants.MINECRAFT_1_21_6, 0x11 )
);
TO_CLIENT.registerPacket(
ShowDialogDirect.class,
ShowDialogDirect::new,
map( ProtocolConstants.MINECRAFT_1_21_6, 0x12 )
);
TO_SERVER.registerPacket(
ClientSettings.class,

View File

@ -62,6 +62,7 @@ import net.md_5.bungee.protocol.packet.PlayerListHeaderFooter;
import net.md_5.bungee.protocol.packet.PluginMessage;
import net.md_5.bungee.protocol.packet.SetCompression;
import net.md_5.bungee.protocol.packet.ShowDialog;
import net.md_5.bungee.protocol.packet.ShowDialogDirect;
import net.md_5.bungee.protocol.packet.StoreCookie;
import net.md_5.bungee.protocol.packet.SystemChat;
import net.md_5.bungee.protocol.packet.Transfer;
@ -851,6 +852,12 @@ public final class UserConnection implements ProxiedPlayer
{
Preconditions.checkState( getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_21_6, "Dialogs are only supported in 1.21.6 and above" );
if ( ch.getEncodeProtocol() == Protocol.CONFIGURATION )
{
unsafe.sendPacket( new ShowDialogDirect( dialog ) );
return;
}
unsafe.sendPacket( new ShowDialog( Either.right( dialog ) ) );
}
}