From c6a527714ed6a551719b04afb153ea5a22a08cf8 Mon Sep 17 00:00:00 2001 From: paulevsGitch Date: Fri, 11 Jun 2021 23:09:30 +0300 Subject: [PATCH] Version getters --- src/main/java/ru/bclib/api/DataFixerAPI.java | 2 +- src/main/java/ru/bclib/api/WorldDataAPI.java | 20 ++++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/main/java/ru/bclib/api/DataFixerAPI.java b/src/main/java/ru/bclib/api/DataFixerAPI.java index 95c4a67a..cf644539 100644 --- a/src/main/java/ru/bclib/api/DataFixerAPI.java +++ b/src/main/java/ru/bclib/api/DataFixerAPI.java @@ -33,7 +33,7 @@ public class DataFixerAPI { Collection 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); diff --git a/src/main/java/ru/bclib/api/WorldDataAPI.java b/src/main/java/ru/bclib/api/WorldDataAPI.java index f2ef5e74..6927c9ed 100644 --- a/src/main/java/ru/bclib/api/WorldDataAPI.java +++ b/src/main/java/ru/bclib/api/WorldDataAPI.java @@ -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)); + } }