XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEServerManager

【Java】我的世界XFE服务器管理器

公开
关注 0 Fork 0 Star 0
UTF-8
package com.xfestudio.xfeservermanager.platform.bridge;

import java.io.IOException;
import java.io.InputStream;
import java.util.Objects;
import java.util.Properties;

/** Build coordinates embedded into each platform jar. */
public record BuildMetadata(String modId, String modName, String modVersion, String minecraftVersion,
                            String forgeVersion) {
    private static final BuildMetadata CURRENT = load();

    public BuildMetadata {
        Objects.requireNonNull(modId, "modId");
        Objects.requireNonNull(modName, "modName");
        Objects.requireNonNull(modVersion, "modVersion");
        Objects.requireNonNull(minecraftVersion, "minecraftVersion");
        Objects.requireNonNull(forgeVersion, "forgeVersion");
    }

    public static BuildMetadata current() {
        return CURRENT;
    }

    private static BuildMetadata load() {
        Properties properties = new Properties();
        try (InputStream input = BuildMetadata.class.getResourceAsStream("/xfesm-build.properties")) {
            if (input == null) {
                return unknown();
            }
            properties.load(input);
            return new BuildMetadata(
                    properties.getProperty("mod.id", "xfeservermanager"),
                    properties.getProperty("mod.name", "XFEServerManager"),
                    properties.getProperty("mod.version", "unknown"),
                    properties.getProperty("minecraft.version", "unknown"),
                    properties.getProperty("forge.version", "unknown")
            );
        } catch (IOException ignored) {
            return unknown();
        }
    }

    private static BuildMetadata unknown() {
        return new BuildMetadata("xfeservermanager", "XFEServerManager", "unknown", "unknown", "unknown");
    }
}