Fix screen open firing too soon

This commit is contained in:
embeddedt 2023-05-01 21:23:10 -04:00
parent 6d8f90d303
commit ade8f2789b
No known key found for this signature in database
GPG Key ID: A69433EC199B5613

View File

@ -4,6 +4,9 @@ import net.fabricmc.api.ClientModInitializer;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.screen.v1.ScreenEvents;
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents;
import net.minecraft.client.Minecraft;
import java.util.concurrent.atomic.AtomicBoolean;
public class ModernFixClientFabric implements ClientModInitializer {
public static ModernFixClient commonMod;
@ -13,7 +16,16 @@ public class ModernFixClientFabric implements ClientModInitializer {
commonMod = new ModernFixClient();
ClientTickEvents.END_CLIENT_TICK.register((mc) -> commonMod.onRenderTickEnd());
ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> commonMod.onScreenOpening(screen));
ScreenEvents.AFTER_INIT.register((client, screen, scaledWidth, scaledHeight) -> {
AtomicBoolean hasOpened = new AtomicBoolean(false);
ScreenEvents.beforeTick(screen).register(screen1 -> {
if(Minecraft.getInstance().overlay != null)
return;
if(!hasOpened.getAndSet(true)) {
commonMod.onScreenOpening(screen1);
}
});
});
ServerLifecycleEvents.SERVER_STARTED.register(server -> {
commonMod.onServerStarted(server);
});