package com.mojang.realmsclient.gui.screens; import net.minecraft.client.gui.GuiComponent; import com.mojang.blaze3d.systems.RenderSystem; import net.minecraft.client.gui.components.ObjectSelectionList; import net.minecraft.client.gui.components.AbstractSelectionList; import javax.annotation.Nullable; import net.minecraft.realms.NarrationHelper; import net.minecraft.realms.RealmsObjectSelectionList; import org.apache.logging.log4j.LogManager; import net.minecraft.client.gui.Font; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.language.I18n; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.realmsclient.util.task.RestoreTask; import com.mojang.realmsclient.util.task.LongRunningTask; import com.mojang.realmsclient.util.task.DownloadTask; import com.mojang.realmsclient.dto.RealmsWorldOptions; import java.util.Date; import com.mojang.realmsclient.util.RealmsUtil; import java.text.DateFormat; import net.minecraft.client.gui.components.events.GuiEventListener; import net.minecraft.network.chat.CommonComponents; import net.minecraft.client.gui.screens.Screen; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.TranslatableComponent; import java.util.Iterator; import com.mojang.realmsclient.exception.RealmsServiceException; import com.mojang.realmsclient.client.RealmsClient; import java.util.Collections; import net.minecraft.realms.RealmsLabel; import com.mojang.realmsclient.dto.RealmsServer; import net.minecraft.client.gui.components.Button; import com.mojang.realmsclient.dto.Backup; import java.util.List; import net.minecraft.resources.ResourceLocation; import org.apache.logging.log4j.Logger; import net.minecraft.realms.RealmsScreen; public class RealmsBackupScreen extends RealmsScreen { private static final Logger LOGGER; private static final ResourceLocation PLUS_ICON_LOCATION; private static final ResourceLocation RESTORE_ICON_LOCATION; private static int lastScrollPosition; private final RealmsConfigureWorldScreen lastScreen; private List backups; private String toolTip; private BackupObjectSelectionList backupObjectSelectionList; private int selectedBackup; private final int slotId; private Button downloadButton; private Button restoreButton; private Button changesButton; private Boolean noBackups; private final RealmsServer serverData; private RealmsLabel titleLabel; public RealmsBackupScreen(final RealmsConfigureWorldScreen djr, final RealmsServer dip, final int integer) { this.backups = Collections.emptyList(); this.selectedBackup = -1; this.noBackups = false; this.lastScreen = djr; this.serverData = dip; this.slotId = integer; } public void init() { this.minecraft.keyboardHandler.setSendRepeatsToGui(true); this.backupObjectSelectionList = new BackupObjectSelectionList(); if (RealmsBackupScreen.lastScrollPosition != -1) { this.backupObjectSelectionList.setScrollAmount(RealmsBackupScreen.lastScrollPosition); } new Thread("Realms-fetch-backups") { @Override public void run() { final RealmsClient dia2 = RealmsClient.create(); try { final List list3 = dia2.backupsFor(RealmsBackupScreen.this.serverData.id).backups; final Iterator iterator; Backup dif4; RealmsBackupScreen.this.minecraft.execute(() -> { RealmsBackupScreen.this.backups = list3; RealmsBackupScreen.this.noBackups = RealmsBackupScreen.this.backups.isEmpty(); RealmsBackupScreen.this.backupObjectSelectionList.clear(); RealmsBackupScreen.this.backups.iterator(); while (iterator.hasNext()) { dif4 = iterator.next(); RealmsBackupScreen.this.backupObjectSelectionList.addEntry(dif4); } RealmsBackupScreen.this.generateChangeList(); }); } catch (RealmsServiceException djh3) { RealmsBackupScreen.LOGGER.error("Couldn't request backups", (Throwable)djh3); } } }.start(); this.downloadButton = this.