From 5a3e15787996a208db3a0c95f4f396cb8d5b6f9d Mon Sep 17 00:00:00 2001 From: EoD <293499+EoD@users.noreply.github.com> Date: Fri, 2 May 2025 20:08:06 +0000 Subject: [PATCH] fix chat sync always being enabled reading CHAT_SYNC immediately within FMLCommonSetupEvent can lead to timing issues that the default value instead of the real config value is being returned. Moving them within event.enqueueWork() fixes the timing issue. --- src/main/java/vip/fubuki/playersync/PlayerSync.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/vip/fubuki/playersync/PlayerSync.java b/src/main/java/vip/fubuki/playersync/PlayerSync.java index e3b3ed6..2ca63a1 100644 --- a/src/main/java/vip/fubuki/playersync/PlayerSync.java +++ b/src/main/java/vip/fubuki/playersync/PlayerSync.java @@ -35,10 +35,14 @@ public class PlayerSync { private void commonSetup(final FMLCommonSetupEvent event) { VanillaSync.register(); - if (JdbcConfig.SYNC_CHAT.get()) { - LOGGER.info("Chat sync enabled."); - ChatSync.register(); - } + event.enqueueWork(() -> { + // read SYNC_CHAT only within the enqueueWork to reliably get the real + // config value and not its default value. + if (JdbcConfig.SYNC_CHAT.get()) { + LOGGER.info("Chat sync enabled."); + ChatSync.register(); + } + }); } @SubscribeEvent