From 4116287f00ec744a0b123f2d66e869309b6a114f Mon Sep 17 00:00:00 2001 From: alterNERDtive Date: Sun, 20 Aug 2023 20:46:51 +0200 Subject: [PATCH] fixed config loading race condition fixes #9 --- CHANGELOG.md | 1 + .../tv/alterNERD/VaultModTweaks/VaultModTweaks.java | 11 +++++++++++ .../resources/assets/the_vault_tweaks/lang/en_us.json | 2 ++ 3 files changed, 14 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2556a7e..94dba4b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ * Updated dependencies for Vault Hunters 3.11.2.2. * Fixed jewel cutting tweaks being en-/disabled via the Jeweller expertise switch, the dedicated option now takes effect. +* Fixed race condition between Vault Mod config loading and Tweaks Mod config loading; the Vault Mod config is now reloaded whenever the Tweaks Mod config is (re-)loaded. (fixes #9) # 3.11.2.1 (2023-08-07) diff --git a/src/main/java/tv/alterNERD/VaultModTweaks/VaultModTweaks.java b/src/main/java/tv/alterNERD/VaultModTweaks/VaultModTweaks.java index 914ad6d..8c61438 100644 --- a/src/main/java/tv/alterNERD/VaultModTweaks/VaultModTweaks.java +++ b/src/main/java/tv/alterNERD/VaultModTweaks/VaultModTweaks.java @@ -26,10 +26,13 @@ import net.minecraft.data.tags.BlockTagsProvider; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.config.ModConfig; +import net.minecraftforge.fml.event.config.ModConfigEvent; import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.forge.event.lifecycle.GatherDataEvent; +import iskallia.vault.init.ModConfigs; import tv.alterNERD.VaultModTweaks.integration.TagManager; +import tv.alterNERD.VaultModTweaks.util.I18n; @Mod("the_vault_tweaks") public class VaultModTweaks @@ -40,6 +43,7 @@ public class VaultModTweaks public VaultModTweaks() { FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup); FMLJavaModLoadingContext.get().getModEventBus().addListener(this::gatherData); + FMLJavaModLoadingContext.get().getModEventBus().addListener(this::configLoaded); ModLoadingContext.get().registerConfig(ModConfig.Type.SERVER, Configuration.CONFIG); ModLoadingContext.get().registerConfig(ModConfig.Type.CLIENT, Configuration.CLIENTCONFIG); } @@ -59,4 +63,11 @@ public class VaultModTweaks event.getExistingFileHelper()) ); } + + private void configLoaded(final ModConfigEvent event) { + if (event.getConfig().getType() == ModConfig.Type.SERVER) { + LOGGER.info(I18n.get("the_vault_tweaks.log.config.reloadvaultconfig")); + ModConfigs.register(); + } + } } diff --git a/src/main/resources/assets/the_vault_tweaks/lang/en_us.json b/src/main/resources/assets/the_vault_tweaks/lang/en_us.json index edddadb..cd09e11 100644 --- a/src/main/resources/assets/the_vault_tweaks/lang/en_us.json +++ b/src/main/resources/assets/the_vault_tweaks/lang/en_us.json @@ -15,6 +15,8 @@ "the_vault_tweaks.log.inject.vaultar.infusion": "Injecting Vault Altar infusion time: %1$ds …", "the_vault_tweaks.log.inject.vaultar.rock": "Injecting fake player interaction with Vault Altar …", + "the_vault_tweaks.log.config.reloadvaultconfig": "Config has changed, reloading Vault Mod configs …", + "block.minecraft.andesite": "Andesite", "block.minecraft.polished_andesite": "Polished Andesite", "block.minecraft.andesite_stairs": "Andesite Stairs",