minecraft-src/net/minecraft/client/gui/screens/dialog/ServerLinksDialogScreen.java
2025-09-18 12:27:44 +00:00

29 lines
1.4 KiB
Java

package net.minecraft.client.gui.screens.dialog;
import java.util.Optional;
import java.util.stream.Stream;
import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.client.gui.screens.Screen;
import net.minecraft.network.chat.ClickEvent;
import net.minecraft.server.ServerLinks;
import net.minecraft.server.dialog.ActionButton;
import net.minecraft.server.dialog.CommonButtonData;
import net.minecraft.server.dialog.ServerLinksDialog;
import net.minecraft.server.dialog.action.StaticAction;
import org.jetbrains.annotations.Nullable;
@Environment(EnvType.CLIENT)
public class ServerLinksDialogScreen extends ButtonListDialogScreen<ServerLinksDialog> {
public ServerLinksDialogScreen(@Nullable Screen previousScreen, ServerLinksDialog dialog, DialogConnectionAccess connectionAccess) {
super(previousScreen, dialog, connectionAccess);
}
protected Stream<ActionButton> createListActions(ServerLinksDialog dialog, DialogConnectionAccess connectionAccess) {
return connectionAccess.serverLinks().entries().stream().map(entry -> createDialogClickAction(dialog, entry));
}
private static ActionButton createDialogClickAction(ServerLinksDialog dialog, ServerLinks.Entry entry) {
return new ActionButton(new CommonButtonData(entry.displayName(), dialog.buttonWidth()), Optional.of(new StaticAction(new ClickEvent.OpenUrl(entry.link()))));
}
}