Spaces:
Build error
Build error
package com.mojang.realmsclient.dto; | |
import com.google.gson.JsonObject; | |
import com.mojang.realmsclient.util.JsonUtils; | |
import java.util.Objects; | |
import javax.annotation.Nullable; | |
import net.minecraft.client.resources.language.I18n; | |
import net.minecraft.util.StringUtil; | |
import net.minecraft.world.Difficulty; | |
import net.minecraft.world.level.GameType; | |
import net.minecraft.world.level.LevelSettings; | |
import net.minecraftforge.api.distmarker.Dist; | |
import net.minecraftforge.api.distmarker.OnlyIn; | |
public class RealmsWorldOptions extends ValueObject { | |
public final boolean pvp; | |
public final boolean spawnMonsters; | |
public final int spawnProtection; | |
public final boolean commandBlocks; | |
public final boolean forceGameMode; | |
public final int difficulty; | |
public final int gameMode; | |
public final boolean hardcore; | |
private final String slotName; | |
public final String version; | |
public final RealmsServer.Compatibility compatibility; | |
public long templateId; | |
public String templateImage; | |
public boolean empty; | |
private static final boolean DEFAULT_FORCE_GAME_MODE = false; | |
private static final boolean DEFAULT_PVP = true; | |
private static final boolean DEFAULT_SPAWN_MONSTERS = true; | |
private static final int DEFAULT_SPAWN_PROTECTION = 0; | |
private static final boolean DEFAULT_COMMAND_BLOCKS = false; | |
private static final int DEFAULT_DIFFICULTY = 2; | |
private static final int DEFAULT_GAME_MODE = 0; | |
private static final boolean DEFAULT_HARDCORE_MODE = false; | |
private static final String DEFAULT_SLOT_NAME = ""; | |
private static final String DEFAULT_VERSION = ""; | |
private static final RealmsServer.Compatibility DEFAULT_COMPATIBILITY = RealmsServer.Compatibility.UNVERIFIABLE; | |
private static final long DEFAULT_TEMPLATE_ID = -1L; | |
private static final String DEFAULT_TEMPLATE_IMAGE = null; | |
public RealmsWorldOptions( | |
boolean p_167302_, | |
boolean p_167303_, | |
int p_167306_, | |
boolean p_167304_, | |
int p_167308_, | |
int p_167309_, | |
boolean p_167305_, | |
boolean p_167307_, | |
String p_167311_, | |
String p_311180_, | |
RealmsServer.Compatibility p_311981_ | |
) { | |
this.pvp = p_167302_; | |
this.spawnMonsters = p_167303_; | |
this.spawnProtection = p_167306_; | |
this.commandBlocks = p_167304_; | |
this.difficulty = p_167308_; | |
this.gameMode = p_167309_; | |
this.hardcore = p_167305_; | |
this.forceGameMode = p_167307_; | |
this.slotName = p_167311_; | |
this.version = p_311180_; | |
this.compatibility = p_311981_; | |
} | |
public static RealmsWorldOptions createDefaults() { | |
return new RealmsWorldOptions(true, true, 0, false, 2, 0, false, false, "", "", DEFAULT_COMPATIBILITY); | |
} | |
public static RealmsWorldOptions createDefaultsWith(GameType p_364043_, Difficulty p_366299_, boolean p_368672_, String p_361621_, String p_365919_) { | |
return new RealmsWorldOptions(true, true, 0, false, p_366299_.getId(), p_364043_.getId(), p_368672_, false, p_365919_, p_361621_, DEFAULT_COMPATIBILITY); | |
} | |
public static RealmsWorldOptions createFromSettings(LevelSettings p_361674_, String p_370223_) { | |
return createDefaultsWith(p_361674_.gameType(), p_361674_.difficulty(), p_361674_.hardcore(), p_370223_, p_361674_.levelName()); | |
} | |
public static RealmsWorldOptions createEmptyDefaults() { | |
RealmsWorldOptions realmsworldoptions = createDefaults(); | |
realmsworldoptions.setEmpty(true); | |
return realmsworldoptions; | |
} | |
public void setEmpty(boolean p_87631_) { | |
this.empty = p_87631_; | |
} | |
public static RealmsWorldOptions parse(JsonObject p_87629_, RealmsSettings p_363227_) { | |
RealmsWorldOptions realmsworldoptions = new RealmsWorldOptions( | |
JsonUtils.getBooleanOr("pvp", p_87629_, true), | |
JsonUtils.getBooleanOr("spawnMonsters", p_87629_, true), | |
JsonUtils.getIntOr("spawnProtection", p_87629_, 0), | |
JsonUtils.getBooleanOr("commandBlocks", p_87629_, false), | |
JsonUtils.getIntOr("difficulty", p_87629_, 2), | |
JsonUtils.getIntOr("gameMode", p_87629_, 0), | |
p_363227_.hardcore(), | |
JsonUtils.getBooleanOr("forceGameMode", p_87629_, false), | |
JsonUtils.getRequiredStringOr("slotName", p_87629_, ""), | |
JsonUtils.getRequiredStringOr("version", p_87629_, ""), | |
RealmsServer.getCompatibility(JsonUtils.getRequiredStringOr("compatibility", p_87629_, RealmsServer.Compatibility.UNVERIFIABLE.name())) | |
); | |
realmsworldoptions.templateId = JsonUtils.getLongOr("worldTemplateId", p_87629_, -1L); | |
realmsworldoptions.templateImage = JsonUtils.getStringOr("worldTemplateImage", p_87629_, DEFAULT_TEMPLATE_IMAGE); | |
return realmsworldoptions; | |
} | |
public String getSlotName(int p_87627_) { | |
if (StringUtil.isBlank(this.slotName)) { | |
return this.empty ? I18n.get("mco.configure.world.slot.empty") : this.getDefaultSlotName(p_87627_); | |
} else { | |
return this.slotName; | |
} | |
} | |
public String getDefaultSlotName(int p_87634_) { | |
return I18n.get("mco.configure.world.slot", p_87634_); | |
} | |
public String toJson() { | |
JsonObject jsonobject = new JsonObject(); | |
if (!this.pvp) { | |
jsonobject.addProperty("pvp", this.pvp); | |
} | |
if (!this.spawnMonsters) { | |
jsonobject.addProperty("spawnMonsters", this.spawnMonsters); | |
} | |
if (this.spawnProtection != 0) { | |
jsonobject.addProperty("spawnProtection", this.spawnProtection); | |
} | |
if (this.commandBlocks) { | |
jsonobject.addProperty("commandBlocks", this.commandBlocks); | |
} | |
if (this.difficulty != 2) { | |
jsonobject.addProperty("difficulty", this.difficulty); | |
} | |
if (this.gameMode != 0) { | |
jsonobject.addProperty("gameMode", this.gameMode); | |
} | |
if (this.hardcore) { | |
jsonobject.addProperty("hardcore", this.hardcore); | |
} | |
if (this.forceGameMode) { | |
jsonobject.addProperty("forceGameMode", this.forceGameMode); | |
} | |
if (!Objects.equals(this.slotName, "")) { | |
jsonobject.addProperty("slotName", this.slotName); | |
} | |
if (!Objects.equals(this.version, "")) { | |
jsonobject.addProperty("version", this.version); | |
} | |
if (this.compatibility != DEFAULT_COMPATIBILITY) { | |
jsonobject.addProperty("compatibility", this.compatibility.name()); | |
} | |
return jsonobject.toString(); | |
} | |
public RealmsWorldOptions clone() { | |
return new RealmsWorldOptions( | |
this.pvp, | |
this.spawnMonsters, | |
this.spawnProtection, | |
this.commandBlocks, | |
this.difficulty, | |
this.gameMode, | |
this.hardcore, | |
this.forceGameMode, | |
this.slotName, | |
this.version, | |
this.compatibility | |
); | |
} | |
} |