Fix screen open firing too soon
This commit is contained in:
parent
6d8f90d303
commit
ade8f2789b
|
|
@ -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);
|
||||
});
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user