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");
}
}
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");
}
}