Version getters

This commit is contained in:
paulevsGitch 2021-06-11 23:09:30 +03:00
parent 5cef3a03eb
commit c6a527714e
2 changed files with 21 additions and 1 deletions

View file

@ -33,7 +33,7 @@ public class DataFixerAPI {
Collection<ModContainer> mods = FabricLoader.getInstance().getAllMods();
for (ModContainer mod: mods) {
String name = mod.getMetadata().getId();
int preVersion = getModVersion(WorldDataAPI.getRootTag(name).getString("version"));
int preVersion = WorldDataAPI.getIntModVersion(name);
int version = getModVersion(mod.getMetadata().getVersion().toString());
if (version > preVersion) {
int fixVersion = FIX_VERSIONS.getOrDefault(name, version);

View file

@ -93,6 +93,10 @@ public class WorldDataAPI {
return tag;
}
/**
* Forces mod cache file to be saved.
* @param modID {@link String} mod ID.
*/
public static void saveFile(String modID) {
try {
NbtIo.writeCompressed(getRootTag(modID), new File(dataDir, modID + ".nbt"));
@ -101,4 +105,20 @@ public class WorldDataAPI {
BCLib.LOGGER.error("World data saving failed", e);
}
}
/**
* Get stored mod version (only for mods with registered cache).
* @return {@link String} mod version.
*/
public static String getModVersion(String modID) {
return getRootTag(modID).getString("version");
}
/**
* Get stored mod version as integer (only for mods with registered cache).
* @return {@code int} mod version.
*/
public static int getIntModVersion(String modID) {
return DataFixerAPI.getModVersion(getModVersion(modID));
}
}