soiz1's picture
Upload folder using huggingface_hub
d46f4a3 verified
package com.mojang.realmsclient.util;
import com.google.gson.annotations.SerializedName;
import com.mojang.logging.LogUtils;
import com.mojang.realmsclient.dto.GuardedSerializer;
import com.mojang.realmsclient.dto.ReflectionBasedSerialization;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.NoSuchFileException;
import java.nio.file.Path;
import net.minecraft.client.Minecraft;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import org.slf4j.Logger;
@OnlyIn(Dist.CLIENT)
public class RealmsPersistence {
private static final String FILE_NAME = "realms_persistence.json";
private static final GuardedSerializer GSON = new GuardedSerializer();
private static final Logger LOGGER = LogUtils.getLogger();
public RealmsPersistence.RealmsPersistenceData read() {
return readFile();
}
public void save(RealmsPersistence.RealmsPersistenceData p_167617_) {
writeFile(p_167617_);
}
public static RealmsPersistence.RealmsPersistenceData readFile() {
Path path = getPathToData();
try {
String s = Files.readString(path, StandardCharsets.UTF_8);
RealmsPersistence.RealmsPersistenceData realmspersistence$realmspersistencedata = GSON.fromJson(
s, RealmsPersistence.RealmsPersistenceData.class
);
if (realmspersistence$realmspersistencedata != null) {
return realmspersistence$realmspersistencedata;
}
} catch (NoSuchFileException nosuchfileexception) {
} catch (Exception exception) {
LOGGER.warn("Failed to read Realms storage {}", path, exception);
}
return new RealmsPersistence.RealmsPersistenceData();
}
public static void writeFile(RealmsPersistence.RealmsPersistenceData p_90173_) {
Path path = getPathToData();
try {
Files.writeString(path, GSON.toJson(p_90173_), StandardCharsets.UTF_8);
} catch (Exception exception) {
}
}
private static Path getPathToData() {
return Minecraft.getInstance().gameDirectory.toPath().resolve("realms_persistence.json");
}
@OnlyIn(Dist.CLIENT)
public static class RealmsPersistenceData implements ReflectionBasedSerialization {
@SerializedName("newsLink")
public String newsLink;
@SerializedName("hasUnreadNews")
public boolean hasUnreadNews;
}
}