Skip to content

Commit b1cf8cb

Browse files
committed
config sync fix number 2
1 parent 7061419 commit b1cf8cb

File tree

2 files changed

+25
-13
lines changed

2 files changed

+25
-13
lines changed

src/main/java/com/falsepattern/lib/internal/impl/config/event/ClientEventHandlerPost.java

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,24 @@
2727
import lombok.NoArgsConstructor;
2828
import lombok.SneakyThrows;
2929

30+
import net.minecraft.client.entity.EntityClientPlayerMP;
31+
import net.minecraftforge.common.MinecraftForge;
32+
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
3033
import cpw.mods.fml.common.FMLCommonHandler;
3134
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
35+
import cpw.mods.fml.common.network.FMLNetworkEvent;
3236
import cpw.mods.fml.relauncher.Side;
3337
import cpw.mods.fml.relauncher.SideOnly;
3438

39+
import java.util.concurrent.atomic.AtomicBoolean;
40+
3541
@NoArgsConstructor(access = AccessLevel.PRIVATE)
3642
@SideOnly(Side.CLIENT)
3743
public final class ClientEventHandlerPost {
3844
private static final ClientEventHandlerPost INSTANCE = new ClientEventHandlerPost();
3945

4046
public static void registerBus() {
47+
MinecraftForge.EVENT_BUS.register(INSTANCE);
4148
FMLCommonHandler.instance().bus().register(INSTANCE);
4249
}
4350

@@ -47,4 +54,22 @@ public static void registerBus() {
4754
public void onSyncRequestClient(ConfigSyncRequestEvent.Client e) {
4855
ConfigurationManagerImpl.sendSyncRequest();
4956
}
57+
58+
private AtomicBoolean shouldDoConfigSync = new AtomicBoolean(false);
59+
60+
@SneakyThrows
61+
@SubscribeEvent
62+
public void onJoinWorld(FMLNetworkEvent.ClientConnectedToServerEvent e) {
63+
if (e.isLocal)
64+
return;
65+
shouldDoConfigSync.set(true);
66+
}
67+
68+
@SneakyThrows
69+
@SubscribeEvent
70+
public void onJoinWorld(EntityJoinWorldEvent e) {
71+
if (e.world.isRemote && e.entity instanceof EntityClientPlayerMP && shouldDoConfigSync.compareAndSet(true, false)) {
72+
ConfigurationManagerImpl.sendSyncRequest();
73+
}
74+
}
5075
}

src/main/java/com/falsepattern/lib/internal/impl/config/event/CommonEventHandlerPost.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,17 +23,13 @@
2323

2424
import com.falsepattern.lib.config.event.ConfigSyncRequestEvent;
2525
import com.falsepattern.lib.internal.FalsePatternLib;
26-
import com.falsepattern.lib.internal.impl.config.ConfigurationManagerImpl;
2726
import com.falsepattern.lib.internal.impl.config.net.SyncPrompt;
2827
import lombok.AccessLevel;
2928
import lombok.NoArgsConstructor;
30-
import lombok.SneakyThrows;
3129
import lombok.val;
3230

33-
import net.minecraft.client.entity.EntityClientPlayerMP;
3431
import net.minecraft.entity.player.EntityPlayerMP;
3532
import net.minecraftforge.common.MinecraftForge;
36-
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
3733
import cpw.mods.fml.common.FMLCommonHandler;
3834
import cpw.mods.fml.common.eventhandler.SubscribeEvent;
3935

@@ -42,18 +38,9 @@ public class CommonEventHandlerPost {
4238
private static final CommonEventHandlerPost INSTANCE = new CommonEventHandlerPost();
4339

4440
public static void registerBus() {
45-
MinecraftForge.EVENT_BUS.register(INSTANCE);
4641
FMLCommonHandler.instance().bus().register(INSTANCE);
4742
}
4843

49-
@SneakyThrows
50-
@SubscribeEvent
51-
public void onJoinWorld(EntityJoinWorldEvent e) {
52-
if (e.world.isRemote && e.entity instanceof EntityClientPlayerMP) {
53-
ConfigurationManagerImpl.sendSyncRequest();
54-
}
55-
}
56-
5744
@SubscribeEvent
5845
public void onSyncRequestServer(ConfigSyncRequestEvent.Server e) {
5946
val players = e.getPlayers();

0 commit comments

Comments
 (0)