Skip to content

Commit f9a10b5

Browse files
committed
Only clear the receivers when the UI is actually being closed
1 parent 930935b commit f9a10b5

3 files changed

Lines changed: 15 additions & 1 deletion

File tree

src/main/java/gregtech/api/mui/GregTechGuiScreen.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package gregtech.api.mui;
22

33
import gregtech.api.GTValues;
4+
import gregtech.client.ClientProxy;
45
import gregtech.integration.jei.JustEnoughItemsModule;
56

67
import net.minecraftforge.fml.relauncher.Side;
@@ -48,7 +49,11 @@ public GregTechGuiScreen(String owner, ModularPanel mainPanel, String themeId) {
4849

4950
@Override
5051
public void onClose() {
51-
registeredRecipeTransferReceivers.clear();
52+
// Only clear all registered recipe receivers when the UI is truly closing, ie not just opening JEI over it.
53+
if (ClientProxy.isGUIClosingPermanently) {
54+
// Clear all registered recipe receivers on UI close, just in case.
55+
registeredRecipeTransferReceivers.clear();
56+
}
5257
}
5358

5459
@Override

src/main/java/gregtech/api/mui/sync/RecipeTransferSyncHandler.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ protected int getTransferHandlerPriority() {
2828
return 0;
2929
}
3030

31+
// TODO: this method is never actually called. Either fix on our side or wait for it to get fixed in MUI.
3132
@ApiStatus.OverrideOnly
3233
@MustBeInvokedByOverriders
3334
@Override

src/main/java/gregtech/client/ClientProxy.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
import net.minecraft.nbt.NBTTagCompound;
5858
import net.minecraft.util.text.TextFormatting;
5959
import net.minecraftforge.client.GuiIngameForge;
60+
import net.minecraftforge.client.event.GuiOpenEvent;
6061
import net.minecraftforge.client.event.ModelBakeEvent;
6162
import net.minecraftforge.client.event.ModelRegistryEvent;
6263
import net.minecraftforge.client.event.MouseEvent;
@@ -86,6 +87,8 @@
8687
@Mod.EventBusSubscriber(Side.CLIENT)
8788
public class ClientProxy extends CommonProxy {
8889

90+
public static boolean isGUIClosingPermanently = false;
91+
8992
public void onPreLoad() {
9093
super.onPreLoad();
9194

@@ -428,4 +431,9 @@ private static void renderToolbeltHotbar(GuiIngameForge gui, ItemStack stack, It
428431
GlStateManager.disableBlend();
429432
}
430433
}
434+
435+
@SubscribeEvent
436+
public static void onGuiChange(GuiOpenEvent event) {
437+
isGUIClosingPermanently = (event.getGui() == null);
438+
}
431439
}

0 commit comments

Comments
 (0)