diff options
Diffstat (limited to 'src/main/java/kubatech/loaders/MobRecipeLoader.java')
-rw-r--r-- | src/main/java/kubatech/loaders/MobRecipeLoader.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/main/java/kubatech/loaders/MobRecipeLoader.java b/src/main/java/kubatech/loaders/MobRecipeLoader.java index 85702af08a..6b183aa205 100644 --- a/src/main/java/kubatech/loaders/MobRecipeLoader.java +++ b/src/main/java/kubatech/loaders/MobRecipeLoader.java @@ -602,13 +602,19 @@ public class MobRecipeLoader { File cache = Config.getConfigFile("MobRecipeLoader.cache"); Gson gson = GSONUtils.GSON_BUILDER.create(); - if (cache.exists()) { + String modlistversion; + if (Config.regenerationTrigger == Config._CacheRegenerationTrigger.ModAdditionRemoval) + modlistversion = ModUtils.getModListVersionIgnoringModVersions(); + else modlistversion = ModUtils.getModListVersion(); + + if (Config.regenerationTrigger != Config._CacheRegenerationTrigger.Always && cache.exists()) { LOG.info("Parsing Cached map"); Reader reader = null; try { reader = Files.newReader(cache, StandardCharsets.UTF_8); MobRecipeLoaderCacheStructure s = gson.fromJson(reader, MobRecipeLoaderCacheStructure.class); - if (s.version.equals(ModUtils.getModListVersion())) { + if (Config.regenerationTrigger == Config._CacheRegenerationTrigger.Never + || s.version.equals(modlistversion)) { for (Map.Entry<String, ArrayList<MobDrop>> entry : s.moblist.entrySet()) { try { EntityLiving e; @@ -641,7 +647,7 @@ public class MobRecipeLoader { } } } else { - LOG.info("Cached map doesn't exist, generating a new one"); + LOG.info("Cached map doesn't exist or config option forced, generating a new one"); } isInGenerationProcess = true; @@ -1095,7 +1101,7 @@ public class MobRecipeLoader { LOG.info("Saving generated map to file"); MobRecipeLoaderCacheStructure s = new MobRecipeLoaderCacheStructure(); - s.version = ModUtils.getModListVersion(); + s.version = modlistversion; s.moblist = new HashMap<>(); GeneralMobList.forEach((k, v) -> s.moblist.put(k, v.drops)); Writer writer = null; |