532 lines
24 KiB
Java
532 lines
24 KiB
Java
package com.mojang.realmsclient.gui.screens;
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
import com.mojang.realmsclient.gui.LongRunningTask;
|
|
import com.mojang.realmsclient.util.RealmsTasks;
|
|
import java.io.UnsupportedEncodingException;
|
|
import com.mojang.blaze3d.systems.RenderSystem;
|
|
import java.io.IOException;
|
|
import com.mojang.realmsclient.exception.RealmsServiceException;
|
|
import com.mojang.realmsclient.client.RealmsClient;
|
|
import com.mojang.realmsclient.dto.RealmsWorldOptions;
|
|
import net.minecraft.realms.AbstractRealmsButton;
|
|
import net.minecraft.realms.Realms;
|
|
import net.minecraft.realms.RealmsScreen;
|
|
import com.mojang.realmsclient.gui.RealmsConstants;
|
|
import net.minecraft.realms.RealmsButton;
|
|
import javax.annotation.Nullable;
|
|
import com.mojang.realmsclient.dto.RealmsServer;
|
|
import com.mojang.realmsclient.RealmsMainScreen;
|
|
import org.apache.logging.log4j.Logger;
|
|
import com.mojang.realmsclient.gui.RealmsWorldSlotButton;
|
|
import com.mojang.realmsclient.dto.WorldTemplate;
|
|
|
|
public class RealmsConfigureWorldScreen extends RealmsScreenWithCallback<WorldTemplate> implements RealmsWorldSlotButton.Listener {
|
|
private static final Logger LOGGER;
|
|
private String toolTip;
|
|
private final RealmsMainScreen lastScreen;
|
|
@Nullable
|
|
private RealmsServer serverData;
|
|
private final long serverId;
|
|
private int left_x;
|
|
private int right_x;
|
|
private final int default_button_width = 80;
|
|
private final int default_button_offset = 5;
|
|
private RealmsButton playersButton;
|
|
private RealmsButton settingsButton;
|
|
private RealmsButton subscriptionButton;
|
|
private RealmsButton optionsButton;
|
|
private RealmsButton backupButton;
|
|
private RealmsButton resetWorldButton;
|
|
private RealmsButton switchMinigameButton;
|
|
private boolean stateChanged;
|
|
private int animTick;
|
|
private int clicks;
|
|
|
|
public RealmsConfigureWorldScreen(final RealmsMainScreen cyr, final long long2) {
|
|
this.lastScreen = cyr;
|
|
this.serverId = long2;
|
|
}
|
|
|
|
@Override
|
|
public void init() {
|
|
if (this.serverData == null) {
|
|
this.fetchServerData(this.serverId);
|
|
}
|
|
this.left_x = this.width() / 2 - 187;
|
|
this.right_x = this.width() / 2 + 190;
|
|
this.setKeyboardHandlerSendRepeatsToGui(true);
|
|
this.buttonsAdd(this.playersButton = new RealmsButton(2, this.centerButton(0, 3), RealmsConstants.row(0), 100, 20, RealmsScreen.getLocalizedString("mco.configure.world.buttons.players")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(new RealmsPlayerScreen(RealmsConfigureWorldScreen.this, RealmsConfigureWorldScreen.this.serverData));
|
|
}
|
|
});
|
|
this.buttonsAdd(this.settingsButton = new RealmsButton(3, this.centerButton(1, 3), RealmsConstants.row(0), 100, 20, RealmsScreen.getLocalizedString("mco.configure.world.buttons.settings")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(new RealmsSettingsScreen(RealmsConfigureWorldScreen.this, RealmsConfigureWorldScreen.this.serverData.clone()));
|
|
}
|
|
});
|
|
this.buttonsAdd(this.subscriptionButton = new RealmsButton(4, this.centerButton(2, 3), RealmsConstants.row(0), 100, 20, RealmsScreen.getLocalizedString("mco.configure.world.buttons.subscription")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(new RealmsSubscriptionInfoScreen(RealmsConfigureWorldScreen.this, RealmsConfigureWorldScreen.this.serverData.clone(), RealmsConfigureWorldScreen.this.lastScreen));
|
|
}
|
|
});
|
|
for (int integer2 = 1; integer2 < 5; ++integer2) {
|
|
this.addSlotButton(integer2);
|
|
}
|
|
this.buttonsAdd(this.switchMinigameButton = new RealmsButton(8, this.leftButton(0), RealmsConstants.row(13) - 5, 100, 20, RealmsScreen.getLocalizedString("mco.configure.world.buttons.switchminigame")) {
|
|
@Override
|
|
public void onPress() {
|
|
final RealmsSelectWorldTemplateScreen dah2 = new RealmsSelectWorldTemplateScreen(RealmsConfigureWorldScreen.this, RealmsServer.WorldType.MINIGAME);
|
|
dah2.setTitle(RealmsScreen.getLocalizedString("mco.template.title.minigame"));
|
|
Realms.setScreen(dah2);
|
|
}
|
|
});
|
|
this.buttonsAdd(this.optionsButton = new RealmsButton(5, this.leftButton(0), RealmsConstants.row(13) - 5, 90, 20, RealmsScreen.getLocalizedString("mco.configure.world.buttons.options")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(new RealmsSlotOptionsScreen(RealmsConfigureWorldScreen.this, RealmsConfigureWorldScreen.this.serverData.slots.get(RealmsConfigureWorldScreen.this.serverData.activeSlot).clone(), RealmsConfigureWorldScreen.this.serverData.worldType, RealmsConfigureWorldScreen.this.serverData.activeSlot));
|
|
}
|
|
});
|
|
this.buttonsAdd(this.backupButton = new RealmsButton(6, this.leftButton(1), RealmsConstants.row(13) - 5, 90, 20, RealmsScreen.getLocalizedString("mco.configure.world.backup")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(new RealmsBackupScreen(RealmsConfigureWorldScreen.this, RealmsConfigureWorldScreen.this.serverData.clone(), RealmsConfigureWorldScreen.this.serverData.activeSlot));
|
|
}
|
|
});
|
|
this.buttonsAdd(this.resetWorldButton = new RealmsButton(7, this.leftButton(2), RealmsConstants.row(13) - 5, 90, 20, RealmsScreen.getLocalizedString("mco.configure.world.buttons.resetworld")) {
|
|
@Override
|
|
public void onPress() {
|
|
Realms.setScreen(new RealmsResetWorldScreen(RealmsConfigureWorldScreen.this, RealmsConfigureWorldScreen.this.serverData.clone(), RealmsConfigureWorldScreen.this.getNewScreen()));
|
|
}
|
|
});
|
|
this.buttonsAdd(new RealmsButton(0, this.right_x - 80 + 8, RealmsConstants.row(13) - 5, 70, 20, RealmsScreen.getLocalizedString("gui.back")) {
|
|
@Override
|
|
public void onPress() {
|
|
RealmsConfigureWorldScreen.this.backButtonClicked();
|
|
}
|
|
});
|
|
this.backupButton.active(true);
|
|
if (this.serverData == null) {
|
|
this.hideMinigameButtons();
|
|
this.hideRegularButtons();
|
|
this.playersButton.active(false);
|
|
this.settingsButton.active(false);
|
|
this.subscriptionButton.active(false);
|
|
}
|
|
else {
|
|
this.disableButtons();
|
|
if (this.isMinigame()) {
|
|
this.hideRegularButtons();
|
|
}
|
|
else {
|
|
this.hideMinigameButtons();
|
|
}
|
|
}
|
|
}
|
|
|
|
private void addSlotButton(final int integer) {
|
|
final int integer2 = this.frame(integer);
|
|
final int integer3 = RealmsConstants.row(5) + 5;
|
|
final int integer4 = 100 + integer;
|
|
final RealmsWorldSlotButton czj6 = new RealmsWorldSlotButton(integer2, integer3, 80, 80, () -> this.serverData, string -> this.toolTip = string, integer4, integer, this);
|
|
this.getProxy().buttonsAdd(czj6);
|
|
}
|
|
|
|
private int leftButton(final int integer) {
|
|
return this.left_x + integer * 95;
|
|
}
|
|
|
|
private int centerButton(final int integer1, final int integer2) {
|
|
return this.width() / 2 - (integer2 * 105 - 5) / 2 + integer1 * 105;
|
|
}
|
|
|
|
@Override
|
|
public void tick() {
|
|
this.tickButtons();
|
|
++this.animTick;
|
|
--this.clicks;
|
|
if (this.clicks < 0) {
|
|
this.clicks = 0;
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void render(final int integer1, final int integer2, final float float3) {
|
|
this.toolTip = null;
|
|
this.renderBackground();
|
|
this.drawCenteredString(RealmsScreen.getLocalizedString("mco.configure.worlds.title"), this.width() / 2, RealmsConstants.row(4), 16777215);
|
|
super.render(integer1, integer2, float3);
|
|
if (this.serverData == null) {
|
|
this.drawCenteredString(RealmsScreen.getLocalizedString("mco.configure.world.title"), this.width() / 2, 17, 16777215);
|
|
return;
|
|
}
|
|
final String string5 = this.serverData.getName();
|
|
final int integer3 = this.fontWidth(string5);
|
|
final int integer4 = (this.serverData.state == RealmsServer.State.CLOSED) ? 10526880 : 8388479;
|
|
final int integer5 = this.fontWidth(RealmsScreen.getLocalizedString("mco.configure.world.title"));
|
|
this.drawCenteredString(RealmsScreen.getLocalizedString("mco.configure.world.title"), this.width() / 2, 12, 16777215);
|
|
this.drawCenteredString(string5, this.width() / 2, 24, integer4);
|
|
final int integer6 = Math.min(this.centerButton(2, 3) + 80 - 11, this.width() / 2 + integer3 / 2 + integer5 / 2 + 10);
|
|
this.drawServerStatus(integer6, 7, integer1, integer2);
|
|
if (this.isMinigame()) {
|
|
this.drawString(RealmsScreen.getLocalizedString("mco.configure.current.minigame") + ": " + this.serverData.getMinigameName(), this.left_x + 80 + 20 + 10, RealmsConstants.row(13), 16777215);
|
|
}
|
|
if (this.toolTip != null) {
|
|
this.renderMousehoverTooltip(this.toolTip, integer1, integer2);
|
|
}
|
|
}
|
|
|
|
private int frame(final int integer) {
|
|
return this.left_x + (integer - 1) * 98;
|
|
}
|
|
|
|
@Override
|
|
public void removed() {
|
|
this.setKeyboardHandlerSendRepeatsToGui(false);
|
|
}
|
|
|
|
@Override
|
|
public boolean keyPressed(final int integer1, final int integer2, final int integer3) {
|
|
if (integer1 == 256) {
|
|
this.backButtonClicked();
|
|
return true;
|
|
}
|
|
return super.keyPressed(integer1, integer2, integer3);
|
|
}
|
|
|
|
private void backButtonClicked() {
|
|
if (this.stateChanged) {
|
|
this.lastScreen.removeSelection();
|
|
}
|
|
Realms.setScreen(this.lastScreen);
|
|
}
|
|
|
|
private void fetchServerData(final long long1) {
|
|
final RealmsClient cyv4;
|
|
new Thread(() -> {
|
|
cyv4 = RealmsClient.createRealmsClient();
|
|
try {
|
|
this.serverData = cyv4.getOwnWorld(long1);
|
|
this.disableButtons();
|
|
if (this.isMinigame()) {
|
|
this.showMinigameButtons();
|
|
}
|
|
else {
|
|
this.showRegularButtons();
|
|
}
|
|
}
|
|
catch (RealmsServiceException czd5) {
|
|
RealmsConfigureWorldScreen.LOGGER.error("Couldn't get own world");
|
|
Realms.setScreen(new RealmsGenericErrorScreen(czd5.getMessage(), this.lastScreen));
|
|
}
|
|
catch (IOException iOException5) {
|
|
RealmsConfigureWorldScreen.LOGGER.error("Couldn't parse response getting own world");
|
|
}
|
|
}).start();
|
|
}
|
|
|
|
private void disableButtons() {
|
|
this.playersButton.active(!this.serverData.expired);
|
|
this.settingsButton.active(!this.serverData.expired);
|
|
this.subscriptionButton.active(true);
|
|
this.switchMinigameButton.active(!this.serverData.expired);
|
|
this.optionsButton.active(!this.serverData.expired);
|
|
this.resetWorldButton.active(!this.serverData.expired);
|
|
}
|
|
|
|
@Override
|
|
public boolean mouseClicked(final double double1, final double double2, final int integer) {
|
|
return super.mouseClicked(double1, double2, integer);
|
|
}
|
|
|
|
private void joinRealm(final RealmsServer realmsServer) {
|
|
if (this.serverData.state == RealmsServer.State.OPEN) {
|
|
this.lastScreen.play(realmsServer, new RealmsConfigureWorldScreen(this.lastScreen.newScreen(), this.serverId));
|
|
}
|
|
else {
|
|
this.openTheWorld(true, new RealmsConfigureWorldScreen(this.lastScreen.newScreen(), this.serverId));
|
|
}
|
|
}
|
|
|
|
@Override
|
|
public void onSlotClick(final int integer, final RealmsWorldSlotButton.Action a, final boolean boolean3, final boolean boolean4) {
|
|
switch (a) {
|
|
case NOTHING: {
|
|
break;
|
|
}
|
|
case JOIN: {
|
|
this.joinRealm(this.serverData);
|
|
break;
|
|
}
|
|
case SWITCH_SLOT: {
|
|
if (boolean3) {
|
|
this.switchToMinigame();
|
|
break;
|
|
}
|
|
if (boolean4) {
|
|
this.switchToEmptySlot(integer, this.serverData);
|
|
break;
|
|
}
|
|
this.switchToFullSlot(integer, this.serverData);
|
|
break;
|
|
}
|
|
default: {
|
|
throw new IllegalStateException("Unknown action " + a);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void switchToMinigame() {
|
|
final RealmsSelectWorldTemplateScreen dah2 = new RealmsSelectWorldTemplateScreen(this, RealmsServer.WorldType.MINIGAME);
|
|
dah2.setTitle(RealmsScreen.getLocalizedString("mco.template.title.minigame"));
|
|
dah2.setWarning(RealmsScreen.getLocalizedString("mco.minigame.world.info.line1") + "\\n" + RealmsScreen.getLocalizedString("mco.minigame.world.info.line2"));
|
|
Realms.setScreen(dah2);
|
|
}
|
|
|
|
private void switchToFullSlot(final int integer, final RealmsServer realmsServer) {
|
|
final String string4 = RealmsScreen.getLocalizedString("mco.configure.world.slot.switch.question.line1");
|
|
final String string5 = RealmsScreen.getLocalizedString("mco.configure.world.slot.switch.question.line2");
|
|
Realms.setScreen(new RealmsLongConfirmationScreen((boolean3, integer4) -> {
|
|
if (boolean3) {
|
|
this.switchSlot(realmsServer.id, integer);
|
|
}
|
|
else {
|
|
Realms.setScreen(this);
|
|
}
|
|
}, RealmsLongConfirmationScreen.Type.Info, string4, string5, true, 9));
|
|
}
|
|
|
|
private void switchToEmptySlot(final int integer, final RealmsServer realmsServer) {
|
|
final String string4 = RealmsScreen.getLocalizedString("mco.configure.world.slot.switch.question.line1");
|
|
final String string5 = RealmsScreen.getLocalizedString("mco.configure.world.slot.switch.question.line2");
|
|
RealmsResetWorldScreen dad6;
|
|
Realms.setScreen(new RealmsLongConfirmationScreen((boolean3, integer4) -> {
|
|
if (boolean3) {
|
|
dad6 = new RealmsResetWorldScreen(this, realmsServer, this.getNewScreen(), RealmsScreen.getLocalizedString("mco.configure.world.switch.slot"), RealmsScreen.getLocalizedString("mco.configure.world.switch.slot.subtitle"), 10526880, RealmsScreen.getLocalizedString("gui.cancel"));
|
|
dad6.setSlot(integer);
|
|
dad6.setResetTitle(RealmsScreen.getLocalizedString("mco.create.world.reset.title"));
|
|
Realms.setScreen(dad6);
|
|
}
|
|
else {
|
|
Realms.setScreen(this);
|
|
}
|
|
}, RealmsLongConfirmationScreen.Type.Info, string4, string5, true, 10));
|
|
}
|
|
|
|
protected void renderMousehoverTooltip(final String string, final int integer2, final int integer3) {
|
|
if (string == null) {
|
|
return;
|
|
}
|
|
int integer4 = integer2 + 12;
|
|
final int integer5 = integer3 - 12;
|
|
final int integer6 = this.fontWidth(string);
|
|
if (integer4 + integer6 + 3 > this.right_x) {
|
|
integer4 = integer4 - integer6 - 20;
|
|
}
|
|
this.fillGradient(integer4 - 3, integer5 - 3, integer4 + integer6 + 3, integer5 + 8 + 3, -1073741824, -1073741824);
|
|
this.fontDrawShadow(string, integer4, integer5, 16777215);
|
|
}
|
|
|
|
private void drawServerStatus(final int integer1, final int integer2, final int integer3, final int integer4) {
|
|
if (this.serverData.expired) {
|
|
this.drawExpired(integer1, integer2, integer3, integer4);
|
|
}
|
|
else if (this.serverData.state == RealmsServer.State.CLOSED) {
|
|
this.drawClose(integer1, integer2, integer3, integer4);
|
|
}
|
|
else if (this.serverData.state == RealmsServer.State.OPEN) {
|
|
if (this.serverData.daysLeft < 7) {
|
|
this.drawExpiring(integer1, integer2, integer3, integer4, this.serverData.daysLeft);
|
|
}
|
|
else {
|
|
this.drawOpen(integer1, integer2, integer3, integer4);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void drawExpired(final int integer1, final int integer2, final int integer3, final int integer4) {
|
|
RealmsScreen.bind("realms:textures/gui/realms/expired_icon.png");
|
|
RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
|
|
RenderSystem.pushMatrix();
|
|
RealmsScreen.blit(integer1, integer2, 0.0f, 0.0f, 10, 28, 10, 28);
|
|
RenderSystem.popMatrix();
|
|
if (integer3 >= integer1 && integer3 <= integer1 + 9 && integer4 >= integer2 && integer4 <= integer2 + 27) {
|
|
this.toolTip = RealmsScreen.getLocalizedString("mco.selectServer.expired");
|
|
}
|
|
}
|
|
|
|
private void drawExpiring(final int integer1, final int integer2, final int integer3, final int integer4, final int integer5) {
|
|
RealmsScreen.bind("realms:textures/gui/realms/expires_soon_icon.png");
|
|
RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
|
|
RenderSystem.pushMatrix();
|
|
if (this.animTick % 20 < 10) {
|
|
RealmsScreen.blit(integer1, integer2, 0.0f, 0.0f, 10, 28, 20, 28);
|
|
}
|
|
else {
|
|
RealmsScreen.blit(integer1, integer2, 10.0f, 0.0f, 10, 28, 20, 28);
|
|
}
|
|
RenderSystem.popMatrix();
|
|
if (integer3 >= integer1 && integer3 <= integer1 + 9 && integer4 >= integer2 && integer4 <= integer2 + 27) {
|
|
if (integer5 <= 0) {
|
|
this.toolTip = RealmsScreen.getLocalizedString("mco.selectServer.expires.soon");
|
|
}
|
|
else if (integer5 == 1) {
|
|
this.toolTip = RealmsScreen.getLocalizedString("mco.selectServer.expires.day");
|
|
}
|
|
else {
|
|
this.toolTip = RealmsScreen.getLocalizedString("mco.selectServer.expires.days", integer5);
|
|
}
|
|
}
|
|
}
|
|
|
|
private void drawOpen(final int integer1, final int integer2, final int integer3, final int integer4) {
|
|
RealmsScreen.bind("realms:textures/gui/realms/on_icon.png");
|
|
RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
|
|
RenderSystem.pushMatrix();
|
|
RealmsScreen.blit(integer1, integer2, 0.0f, 0.0f, 10, 28, 10, 28);
|
|
RenderSystem.popMatrix();
|
|
if (integer3 >= integer1 && integer3 <= integer1 + 9 && integer4 >= integer2 && integer4 <= integer2 + 27) {
|
|
this.toolTip = RealmsScreen.getLocalizedString("mco.selectServer.open");
|
|
}
|
|
}
|
|
|
|
private void drawClose(final int integer1, final int integer2, final int integer3, final int integer4) {
|
|
RealmsScreen.bind("realms:textures/gui/realms/off_icon.png");
|
|
RenderSystem.color4f(1.0f, 1.0f, 1.0f, 1.0f);
|
|
RenderSystem.pushMatrix();
|
|
RealmsScreen.blit(integer1, integer2, 0.0f, 0.0f, 10, 28, 10, 28);
|
|
RenderSystem.popMatrix();
|
|
if (integer3 >= integer1 && integer3 <= integer1 + 9 && integer4 >= integer2 && integer4 <= integer2 + 27) {
|
|
this.toolTip = RealmsScreen.getLocalizedString("mco.selectServer.closed");
|
|
}
|
|
}
|
|
|
|
private boolean isMinigame() {
|
|
return this.serverData != null && this.serverData.worldType.equals(RealmsServer.WorldType.MINIGAME);
|
|
}
|
|
|
|
private void hideRegularButtons() {
|
|
this.hide(this.optionsButton);
|
|
this.hide(this.backupButton);
|
|
this.hide(this.resetWorldButton);
|
|
}
|
|
|
|
private void hide(final RealmsButton realmsButton) {
|
|
realmsButton.setVisible(false);
|
|
this.removeButton(realmsButton);
|
|
}
|
|
|
|
private void showRegularButtons() {
|
|
this.show(this.optionsButton);
|
|
this.show(this.backupButton);
|
|
this.show(this.resetWorldButton);
|
|
}
|
|
|
|
private void show(final RealmsButton realmsButton) {
|
|
realmsButton.setVisible(true);
|
|
this.buttonsAdd(realmsButton);
|
|
}
|
|
|
|
private void hideMinigameButtons() {
|
|
this.hide(this.switchMinigameButton);
|
|
}
|
|
|
|
private void showMinigameButtons() {
|
|
this.show(this.switchMinigameButton);
|
|
}
|
|
|
|
public void saveSlotSettings(final RealmsWorldOptions realmsWorldOptions) {
|
|
final RealmsWorldOptions realmsWorldOptions2 = this.serverData.slots.get(this.serverData.activeSlot);
|
|
realmsWorldOptions.templateId = realmsWorldOptions2.templateId;
|
|
realmsWorldOptions.templateImage = realmsWorldOptions2.templateImage;
|
|
final RealmsClient cyv4 = RealmsClient.createRealmsClient();
|
|
try {
|
|
cyv4.updateSlot(this.serverData.id, this.serverData.activeSlot, realmsWorldOptions);
|
|
this.serverData.slots.put(this.serverData.activeSlot, realmsWorldOptions);
|
|
}
|
|
catch (RealmsServiceException czd5) {
|
|
RealmsConfigureWorldScreen.LOGGER.error("Couldn't save slot settings");
|
|
Realms.setScreen(new RealmsGenericErrorScreen(czd5, this));
|
|
return;
|
|
}
|
|
catch (UnsupportedEncodingException unsupportedEncodingException5) {
|
|
RealmsConfigureWorldScreen.LOGGER.error("Couldn't save slot settings");
|
|
}
|
|
Realms.setScreen(this);
|
|
}
|
|
|
|
public void saveSettings(final String string1, final String string2) {
|
|
final String string3 = (string2 == null || string2.trim().isEmpty()) ? null : string2;
|
|
final RealmsClient cyv5 = RealmsClient.createRealmsClient();
|
|
try {
|
|
cyv5.update(this.serverData.id, string1, string3);
|
|
this.serverData.setName(string1);
|
|
this.serverData.setDescription(string3);
|
|
}
|
|
catch (RealmsServiceException czd6) {
|
|
RealmsConfigureWorldScreen.LOGGER.error("Couldn't save settings");
|
|
Realms.setScreen(new RealmsGenericErrorScreen(czd6, this));
|
|
return;
|
|
}
|
|
catch (UnsupportedEncodingException unsupportedEncodingException6) {
|
|
RealmsConfigureWorldScreen.LOGGER.error("Couldn't save settings");
|
|
}
|
|
Realms.setScreen(this);
|
|
}
|
|
|
|
public void openTheWorld(final boolean boolean1, final RealmsScreen realmsScreen) {
|
|
final RealmsTasks.OpenServerTask c4 = new RealmsTasks.OpenServerTask(this.serverData, this, this.lastScreen, boolean1);
|
|
final RealmsLongRunningMcoTaskScreen czx5 = new RealmsLongRunningMcoTaskScreen(realmsScreen, c4);
|
|
czx5.start();
|
|
Realms.setScreen(czx5);
|
|
}
|
|
|
|
public void closeTheWorld(final RealmsScreen realmsScreen) {
|
|
final RealmsTasks.CloseServerTask a3 = new RealmsTasks.CloseServerTask(this.serverData, this);
|
|
final RealmsLongRunningMcoTaskScreen czx4 = new RealmsLongRunningMcoTaskScreen(realmsScreen, a3);
|
|
czx4.start();
|
|
Realms.setScreen(czx4);
|
|
}
|
|
|
|
public void stateChanged() {
|
|
this.stateChanged = true;
|
|
}
|
|
|
|
@Override
|
|
void callback(final WorldTemplate worldTemplate) {
|
|
if (worldTemplate == null) {
|
|
return;
|
|
}
|
|
if (WorldTemplate.WorldTemplateType.MINIGAME.equals(worldTemplate.type)) {
|
|
this.switchMinigame(worldTemplate);
|
|
}
|
|
}
|
|
|
|
private void switchSlot(final long long1, final int integer) {
|
|
final RealmsConfigureWorldScreen czp5 = this.getNewScreen();
|
|
final RealmsTasks.SwitchSlotTask i6 = new RealmsTasks.SwitchSlotTask(long1, integer, (boolean2, integer) -> Realms.setScreen(czp5), 11);
|
|
final RealmsLongRunningMcoTaskScreen czx7 = new RealmsLongRunningMcoTaskScreen(this.lastScreen, i6);
|
|
czx7.start();
|
|
Realms.setScreen(czx7);
|
|
}
|
|
|
|
private void switchMinigame(final WorldTemplate worldTemplate) {
|
|
final RealmsTasks.SwitchMinigameTask h3 = new RealmsTasks.SwitchMinigameTask(this.serverData.id, worldTemplate, this.getNewScreen());
|
|
final RealmsLongRunningMcoTaskScreen czx4 = new RealmsLongRunningMcoTaskScreen(this.lastScreen, h3);
|
|
czx4.start();
|
|
Realms.setScreen(czx4);
|
|
}
|
|
|
|
public RealmsConfigureWorldScreen getNewScreen() {
|
|
return new RealmsConfigureWorldScreen(this.lastScreen, this.serverId);
|
|
}
|
|
|
|
static {
|
|
LOGGER = LogManager.getLogger();
|
|
}
|
|
}
|