From e2aa482187bd623c31a0f7b8806bba1c19b1050d Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 8 Aug 2023 10:24:28 -0400 Subject: [PATCH 1/2] Try to provide more guidance to users when reloading configs --- .../assets/modernfix/lang/en_us.json | 1 + .../forge/config/NightConfigFixer.java | 24 ++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/common/src/main/resources/assets/modernfix/lang/en_us.json b/common/src/main/resources/assets/modernfix/lang/en_us.json index 2d56e1be..5f32b072 100644 --- a/common/src/main/resources/assets/modernfix/lang/en_us.json +++ b/common/src/main/resources/assets/modernfix/lang/en_us.json @@ -7,6 +7,7 @@ "modernfix.perf_mod_warning": "It is recommended to install the mods, but the warning(s) can be disabled in the ModernFix config.", "modernfix.config": "ModernFix mixin config", "modernfix.config.done_restart": "Done (restart required)", + "modernfix.message.reload_config": "Run /mfrc after changing configs on disk for them to take effect.", "modernfix.option.on": "on", "modernfix.option.off": "off", "modernfix.option.disabled": "disabled", diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java b/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java index a471e9ac..8ae460a7 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java @@ -2,6 +2,8 @@ package org.embeddedt.modernfix.forge.config; import com.electronwill.nightconfig.core.file.FileWatcher; import cpw.mods.modlauncher.api.LamdbaExceptionUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.network.chat.TranslatableComponent; import net.minecraftforge.fml.common.ObfuscationReflectionHelper; import net.minecraftforge.fml.loading.FMLLoader; import org.embeddedt.modernfix.ModernFix; @@ -14,6 +16,7 @@ import java.util.ArrayList; import java.util.LinkedHashSet; import java.util.List; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; import java.util.function.Function; public class NightConfigFixer { @@ -48,10 +51,10 @@ public class NightConfigFixer { ModernFix.LOGGER.info("Processed {} config reloads", runnablesToRun.size()); } - private static final Class WATCHED_FILE = LamdbaExceptionUtils.uncheck(() -> Class.forName("com.electronwill.nightconfig.core.file.FileWatcher$WatchedFile")); - private static final Field CHANGE_HANDLER = ObfuscationReflectionHelper.findField(WATCHED_FILE, "changeHandler"); - static class MonitoringMap extends ConcurrentHashMap { + private static final Class WATCHED_FILE = LamdbaExceptionUtils.uncheck(() -> Class.forName("com.electronwill.nightconfig.core.file.FileWatcher$WatchedFile")); + private static final Field CHANGE_HANDLER = ObfuscationReflectionHelper.findField(WATCHED_FILE, "changeHandler"); + public MonitoringMap(ConcurrentHashMap oldMap) { super(oldMap); } @@ -71,6 +74,19 @@ public class NightConfigFixer { } } + private static long lastConfigTrigger = System.nanoTime(); + + private static void triggerConfigMessage() { + if((System.nanoTime() - lastConfigTrigger) >= TimeUnit.SECONDS.toNanos(5)) { + lastConfigTrigger = System.nanoTime(); + Minecraft.getInstance().execute(() -> { + if(Minecraft.getInstance().level != null) { + Minecraft.getInstance().gui.getChat().addMessage(new TranslatableComponent("modernfix.message.reload_config")); + } + }); + } + } + static class MonitoringConfigTracker implements Runnable { private final Runnable configTracker; @@ -84,6 +100,8 @@ public class NightConfigFixer { @Override public void run() { synchronized(configsToReload) { + if(FMLLoader.getDist().isClient()) + triggerConfigMessage(); if(configsToReload.size() == 0) ModernFixMixinPlugin.instance.logger.info("Please use /{} to reload any changed mod config files", FMLLoader.getDist().isDedicatedServer() ? "mfsrc" : "mfrc"); configsToReload.add(configTracker); From 6c465c7182a3680b82a9d21570e35818be94fcb8 Mon Sep 17 00:00:00 2001 From: embeddedt <42941056+embeddedt@users.noreply.github.com> Date: Tue, 8 Aug 2023 10:26:57 -0400 Subject: [PATCH 2/2] Update use of Component --- .../embeddedt/modernfix/forge/config/NightConfigFixer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java b/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java index cf5f6768..f412dae2 100644 --- a/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java +++ b/forge/src/main/java/org/embeddedt/modernfix/forge/config/NightConfigFixer.java @@ -3,7 +3,7 @@ package org.embeddedt.modernfix.forge.config; import com.electronwill.nightconfig.core.file.FileWatcher; import cpw.mods.modlauncher.api.LamdbaExceptionUtils; import net.minecraft.client.Minecraft; -import net.minecraft.network.chat.TranslatableComponent; +import net.minecraft.network.chat.Component; import net.minecraftforge.fml.loading.FMLLoader; import net.minecraftforge.fml.util.ObfuscationReflectionHelper; import org.embeddedt.modernfix.ModernFix; @@ -81,7 +81,7 @@ public class NightConfigFixer { lastConfigTrigger = System.nanoTime(); Minecraft.getInstance().execute(() -> { if(Minecraft.getInstance().level != null) { - Minecraft.getInstance().gui.getChat().addMessage(new TranslatableComponent("modernfix.message.reload_config")); + Minecraft.getInstance().gui.getChat().addMessage(Component.translatable("modernfix.message.reload_config")); } }); }