RealmsPersistence.java

com.mojang.realmsclient.util.RealmsPersistence

信息

  • 全限定名:com.mojang.realmsclient.util.RealmsPersistence
  • 类型:public class
  • 包:com.mojang.realmsclient.util
  • 源码路径:src/main/java/com/mojang/realmsclient/util/RealmsPersistence.java
  • 起始行号:L18
  • 职责:

    TODO

字段/常量

  • FILE_NAME

    • 类型: String
    • 修饰符: private static final
    • 源码定位: L19
    • 说明:

      TODO

  • GSON

    • 类型: GuardedSerializer
    • 修饰符: private static final
    • 源码定位: L20
    • 说明:

      TODO

  • LOGGER

    • 类型: Logger
    • 修饰符: private static final
    • 源码定位: L21
    • 说明:

      TODO

内部类/嵌套类型

  • com.mojang.realmsclient.util.RealmsPersistence.RealmsPersistenceData
    • 类型: class
    • 修饰符: public static
    • 源码定位: L62
    • 说明:

      TODO

构造器

方法

下面的方法块按源码顺序生成。

public RealmsPersistence.RealmsPersistenceData read() @ L23

  • 方法名:read
  • 源码定位:L23
  • 返回类型:RealmsPersistence.RealmsPersistenceData
  • 修饰符:public

参数:

说明:

TODO

public void save(RealmsPersistence.RealmsPersistenceData data) @ L27

  • 方法名:save
  • 源码定位:L27
  • 返回类型:void
  • 修饰符:public

参数:

  • data: RealmsPersistence.RealmsPersistenceData

说明:

TODO

public static RealmsPersistence.RealmsPersistenceData readFile() @ L31

  • 方法名:readFile
  • 源码定位:L31
  • 返回类型:RealmsPersistence.RealmsPersistenceData
  • 修饰符:public static

参数:

说明:

TODO

public static void writeFile(RealmsPersistence.RealmsPersistenceData data) @ L48

  • 方法名:writeFile
  • 源码定位:L48
  • 返回类型:void
  • 修饰符:public static

参数:

  • data: RealmsPersistence.RealmsPersistenceData

说明:

TODO

private static Path getPathToData() @ L57

  • 方法名:getPathToData
  • 源码定位:L57
  • 返回类型:Path
  • 修饰符:private static

参数:

说明:

TODO

代码

@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 data) {
        writeFile(data);
    }
 
    public static RealmsPersistence.RealmsPersistenceData readFile() {
        Path file = getPathToData();
 
        try {
            String contents = Files.readString(file, StandardCharsets.UTF_8);
            RealmsPersistence.RealmsPersistenceData realmsPersistenceData = GSON.fromJson(contents, RealmsPersistence.RealmsPersistenceData.class);
            if (realmsPersistenceData != null) {
                return realmsPersistenceData;
            }
        } catch (NoSuchFileException var3) {
        } catch (Exception var4) {
            LOGGER.warn("Failed to read Realms storage {}", file, var4);
        }
 
        return new RealmsPersistence.RealmsPersistenceData();
    }
 
    public static void writeFile(RealmsPersistence.RealmsPersistenceData data) {
        Path file = getPathToData();
 
        try {
            Files.writeString(file, GSON.toJson(data), StandardCharsets.UTF_8);
        } catch (Exception var3) {
        }
    }
 
    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 @Nullable String newsLink;
        @SerializedName("hasUnreadNews")
        public boolean hasUnreadNews;
    }
}

引用的其他类

  • GuardedSerializer

    • 引用位置: 字段/构造调用
    • 关联成员: GuardedSerializer()
  • Minecraft

    • 引用位置: 方法调用
    • 关联成员: Minecraft.getInstance()