Search in sources :

Example 1 with IngameMenuScreen

use of net.minecraft.client.gui.screen.IngameMenuScreen in project iChunUtil by iChun.

the class EventHandlerClient method onGuiInit.

@SubscribeEvent
public void onGuiInit(GuiScreenEvent.InitGuiEvent.Post event) {
    if ((iChunUtil.configClient.buttonOptionsShiftOpensMods || ObfHelper.isDevEnvironment()) && event.getGui() instanceof IngameMenuScreen) {
        for (Widget widget : event.getWidgetList()) {
            if (widget instanceof Button && widget.getMessage() instanceof TranslationTextComponent && ((TranslationTextComponent) widget.getMessage()).getKey().equals("menu.options")) {
                Button.IPressable oriPress = ((Button) widget).onPress;
                ((Button) widget).onPress = button -> {
                    if (ObfHelper.isDevEnvironment() && !Screen.hasControlDown()) {
                        if (Screen.hasShiftDown()) {
                            oriPress.onPress(button);
                        } else {
                            Minecraft.getInstance().displayGuiScreen(getConfigGui(Minecraft.getInstance(), Minecraft.getInstance().currentScreen));
                        }
                    } else if (iChunUtil.configClient.buttonOptionsShiftOpensMods) {
                        if (Screen.hasShiftDown()) {
                            Minecraft.getInstance().displayGuiScreen(new net.minecraftforge.fml.client.gui.screen.ModListScreen(Minecraft.getInstance().currentScreen));
                        } else {
                            oriPress.onPress(button);
                        }
                    }
                };
                break;
            }
        }
    }
}
Also used : Button(net.minecraft.client.gui.widget.button.Button) Widget(net.minecraft.client.gui.widget.Widget) IngameMenuScreen(net.minecraft.client.gui.screen.IngameMenuScreen) TranslationTextComponent(net.minecraft.util.text.TranslationTextComponent) SubscribeEvent(net.minecraftforge.eventbus.api.SubscribeEvent)

Aggregations

IngameMenuScreen (net.minecraft.client.gui.screen.IngameMenuScreen)1 Widget (net.minecraft.client.gui.widget.Widget)1 Button (net.minecraft.client.gui.widget.button.Button)1 TranslationTextComponent (net.minecraft.util.text.TranslationTextComponent)1 SubscribeEvent (net.minecraftforge.eventbus.api.SubscribeEvent)1