29 lines
1.4 KiB
Java
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()))));
|
|
}
|
|
}
|