The GuiUtil interface provides helper functions for safely interacting with Minecraft’s GUI system.
Getting GuiUtil
val guiUtil = EssentialAPI.getGuiUtil()
GuiUtil guiUtil = EssentialAPI.getGuiUtil();
Opening screens
openScreen()
Queue a new screen for opening. This API ensures the GUI is displayed synchronously, avoiding mouse glitches and rendering issues.
val myScreen = MyCustomScreen()
guiUtil.openScreen(myScreen)
GuiScreen myScreen = new MyCustomScreen();
guiUtil.openScreen(myScreen);
The screen to open, or null to close the current screen
Always use guiUtil.openScreen() instead of directly setting Minecraft.currentScreen to avoid timing issues and mouse glitches.
Getting current screen
openedScreen()
Get the currently open screen, or null if no screen is open.
val currentScreen = guiUtil.openedScreen()
if (currentScreen != null) {
println("Current screen: ${currentScreen.javaClass.simpleName}")
}
GuiScreen currentScreen = guiUtil.openedScreen();
if (currentScreen != null) {
System.out.println("Current screen: " + currentScreen.getClass().getSimpleName());
}
GUI scale
getGuiScale()
Get the current Minecraft GUI scale setting.
val scale = guiUtil.getGuiScale()
// Returns -1 for auto, or positive integer for manual scale (1-4)
int scale = guiUtil.getGuiScale();
// Returns -1 for auto, or positive integer for manual scale (1-4)
getGuiScale(step)
Get the GUI scale with a specific step value.
val scale = guiUtil.getGuiScale(2)
int scale = guiUtil.getGuiScale(2);
The step value for scale calculation
Static helpers
The GuiUtil companion object provides convenient static methods:
// Open a screen
GuiUtil.open(myScreen)
// Get current screen
val screen = GuiUtil.getOpenedScreen()
// Open a screen
GuiUtil.open(myScreen);
// Get current screen
GuiScreen screen = GuiUtil.getOpenedScreen();
Example: Safe screen navigation
import gg.essential.api.EssentialAPI
import net.minecraft.client.gui.GuiScreen
class MyMod {
fun openSettings() {
val guiUtil = EssentialAPI.getGuiUtil()
// Check if a screen is already open
val currentScreen = guiUtil.openedScreen()
if (currentScreen != null) {
println("A screen is already open, closing it first")
}
// Open settings screen safely
guiUtil.openScreen(SettingsScreen())
}
}
See also
Source: api/src/main/kotlin/gg/essential/api/utils/GuiUtil.kt