package net.minecraft.client.gui.screens.dialog; import java.util.Optional; import java.util.stream.Stream; import net.minecraft.client.gui.screens.Screen; import net.minecraft.core.Holder; import net.minecraft.network.chat.ClickEvent.ShowDialog; import net.minecraft.server.dialog.ActionButton; import net.minecraft.server.dialog.CommonButtonData; import net.minecraft.server.dialog.Dialog; import net.minecraft.server.dialog.DialogListDialog; import net.minecraft.server.dialog.action.StaticAction; import org.jspecify.annotations.Nullable; public class DialogListDialogScreen extends ButtonListDialogScreen { public DialogListDialogScreen(@Nullable final Screen previousScreen, final DialogListDialog dialog, final DialogConnectionAccess connectionAccess) { super(previousScreen, dialog, connectionAccess); } protected Stream createListActions(final DialogListDialog data, final DialogConnectionAccess connectionAccess) { return data.dialogs().stream().map(subDialog -> createDialogClickAction(data, subDialog)); } private static ActionButton createDialogClickAction(final DialogListDialog data, final Holder subDialog) { return new ActionButton( new CommonButtonData(((Dialog)subDialog.value()).common().computeExternalTitle(), data.buttonWidth()), Optional.of(new StaticAction(new ShowDialog(subDialog))) ); } }