From 24512f44ad4b305c74b6f69f849d14b83e2b09b0 Mon Sep 17 00:00:00 2001 From: Sally Knight Date: Sat, 21 Mar 2026 03:02:11 +0300 Subject: [PATCH 1/2] feat(jui): remap creative inventory to C This will allow players to open their survival inventory in Creative mode on the java UI --- Minecraft.Client/Minecraft.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Minecraft.Client/Minecraft.cpp b/Minecraft.Client/Minecraft.cpp index bf98a63cb..a42a51feb 100644 --- a/Minecraft.Client/Minecraft.cpp +++ b/Minecraft.Client/Minecraft.cpp @@ -3683,10 +3683,7 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures) { Minecraft::GetInstance()->player); ui.PlayUISFX(eSFX_Press); #ifdef ENABLE_JAVA_GUIS - if (gameMode->hasInfiniteItems()) - setScreen(new CreativeInventoryScreen(player)); - else - setScreen(new InventoryScreen(player)); + setScreen(new InventoryScreen(player)); #else app.LoadInventoryMenu(iPad, player); #endif @@ -3706,6 +3703,10 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures) { // Creative mode ui.PlayUISFX(eSFX_Press); +#ifdef ENABLE_JAVA_GUIS + setScreen(new CreativeInventoryScreen(player)); + } +#else app.LoadCreativeMenu(iPad, player); } // 4J-PB - Microsoft request that we use the 3x3 crafting if someone @@ -3725,6 +3726,7 @@ void Minecraft::tick(bool bFirst, bool bUpdateTextures) { ui.PlayUISFX(eSFX_Press); app.LoadCrafting2x2Menu(iPad, player); } +#endif } if ((player->ullButtonsPressed & (1LL << MINECRAFT_ACTION_PAUSEMENU)) From 7f39d575a4f02669c29fcf976ba40172d748b46c Mon Sep 17 00:00:00 2001 From: Sally Knight Date: Sat, 21 Mar 2026 03:05:42 +0300 Subject: [PATCH 2/2] fix(jui): ensure serverside unpausing in all scenarios --- Minecraft.Client/UI/Screen.cpp | 6 ++++++ Minecraft.Client/UI/Screens/PauseScreen.cpp | 9 --------- Minecraft.Client/UI/Screens/PauseScreen.h | 1 - 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/Minecraft.Client/UI/Screen.cpp b/Minecraft.Client/UI/Screen.cpp index 9098c0094..c3260a893 100644 --- a/Minecraft.Client/UI/Screen.cpp +++ b/Minecraft.Client/UI/Screen.cpp @@ -29,6 +29,12 @@ void Screen::keyPressed(wchar_t eventCharacter, int eventKey) { if (eventKey == Keyboard::KEY_ESCAPE) { minecraft->setScreen(NULL); // minecraft->grabMouse(); // 4J - removed + // 4jcraft: moved here from PauseScreen to ensure that serverside + // unpausing is done in all scenarios + if (g_NetworkManager.IsLocalGame() && + g_NetworkManager.GetPlayerCount() == 1) + app.SetXuiServerAction(ProfileManager.GetPrimaryPad(), + eXuiServerAction_PauseServer, (void*)FALSE); } } diff --git a/Minecraft.Client/UI/Screens/PauseScreen.cpp b/Minecraft.Client/UI/Screens/PauseScreen.cpp index 8c451b4ee..1837a5a99 100644 --- a/Minecraft.Client/UI/Screens/PauseScreen.cpp +++ b/Minecraft.Client/UI/Screens/PauseScreen.cpp @@ -54,15 +54,6 @@ void PauseScreen::init() { */ } -void PauseScreen::keyPressed(wchar_t eventCharacter, int eventKey) { - if (eventKey == Keyboard::KEY_ESCAPE && g_NetworkManager.IsLocalGame() && - g_NetworkManager.GetPlayerCount() == 1) - app.SetXuiServerAction(ProfileManager.GetPrimaryPad(), - eXuiServerAction_PauseServer, (void*)FALSE); - - Screen::keyPressed(eventCharacter, eventKey); -} - void PauseScreen::exitWorld(Minecraft* minecraft, bool save) { // 4jcraft: made our own static method for use in the java gui (other // places such as the deathscreen need this) diff --git a/Minecraft.Client/UI/Screens/PauseScreen.h b/Minecraft.Client/UI/Screens/PauseScreen.h index 6f71beb09..375d03eb6 100644 --- a/Minecraft.Client/UI/Screens/PauseScreen.h +++ b/Minecraft.Client/UI/Screens/PauseScreen.h @@ -9,7 +9,6 @@ private: public: PauseScreen(); // 4J added virtual void init(); - virtual void keyPressed(wchar_t eventCharacter, int eventKey); static void exitWorld(Minecraft* minecraft, bool save); protected: