From 39f9838823f0d4c739b0dcb599aed0771df16f5e Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Wed, 28 Sep 2016 08:26:56 +0200 Subject: [PATCH] Fix server crash, fixes #392 --- .../java/refinedstorage/RefinedStorage.java | 2 +- .../MessageGridCraftingPreviewResponse.java | 22 +++++-------------- .../refinedstorage/proxy/ClientProxy.java | 16 ++++++++++++++ 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/src/main/java/refinedstorage/RefinedStorage.java b/src/main/java/refinedstorage/RefinedStorage.java index c4d69d721..bbb8e2717 100755 --- a/src/main/java/refinedstorage/RefinedStorage.java +++ b/src/main/java/refinedstorage/RefinedStorage.java @@ -19,7 +19,7 @@ import refinedstorage.proxy.CommonProxy; public final class RefinedStorage { public static final String ID = "refinedstorage"; public static final String VERSION = "1.1.1"; - public static final String DEPENDENCIES = "required-after:Forge@[12.18.1.2088,);required-after:mcmultipart@[1.2.1,);"; + public static final String DEPENDENCIES = "required-after:Forge@[12.18.1.2088,);required-after:mcmultipart@[1.2.1,);after:JEI@[3.11.0,);"; public static final String GUI_FACTORY = "refinedstorage.gui.config.ModGuiFactory"; @SidedProxy(clientSide = "refinedstorage.proxy.ClientProxy", serverSide = "refinedstorage.proxy.ServerProxy") diff --git a/src/main/java/refinedstorage/network/MessageGridCraftingPreviewResponse.java b/src/main/java/refinedstorage/network/MessageGridCraftingPreviewResponse.java index da04f967e..60a63b6f4 100755 --- a/src/main/java/refinedstorage/network/MessageGridCraftingPreviewResponse.java +++ b/src/main/java/refinedstorage/network/MessageGridCraftingPreviewResponse.java @@ -1,23 +1,19 @@ package refinedstorage.network; import io.netty.buffer.ByteBuf; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiScreen; -import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.network.simpleimpl.IMessage; import net.minecraftforge.fml.common.network.simpleimpl.IMessageHandler; import net.minecraftforge.fml.common.network.simpleimpl.MessageContext; import refinedstorage.apiimpl.autocrafting.preview.CraftingPreviewStack; -import refinedstorage.gui.GuiCraftingPreview; -import refinedstorage.gui.grid.GuiCraftingStart; +import refinedstorage.proxy.ClientProxy; import java.util.Collection; import java.util.LinkedList; public class MessageGridCraftingPreviewResponse implements IMessage, IMessageHandler { - private Collection stacks; - private int hash; - private int quantity; + public Collection stacks; + public int hash; + public int quantity; public MessageGridCraftingPreviewResponse() { } @@ -56,14 +52,8 @@ public class MessageGridCraftingPreviewResponse implements IMessage, IMessageHan @Override public IMessage onMessage(MessageGridCraftingPreviewResponse message, MessageContext ctx) { - GuiScreen screen = Minecraft.getMinecraft().currentScreen; - - if (screen instanceof GuiCraftingStart) { - screen = ((GuiCraftingStart) screen).getParent(); - } - - FMLCommonHandler.instance().showGuiScreen(new GuiCraftingPreview(screen, message.stacks, message.hash, message.quantity)); - + ClientProxy.onReceiveCraftingPreviewResponse(message); + return null; } } diff --git a/src/main/java/refinedstorage/proxy/ClientProxy.java b/src/main/java/refinedstorage/proxy/ClientProxy.java index f170aa508..9b58d4912 100755 --- a/src/main/java/refinedstorage/proxy/ClientProxy.java +++ b/src/main/java/refinedstorage/proxy/ClientProxy.java @@ -4,6 +4,8 @@ import mcmultipart.client.multipart.ModelMultipartContainer; import mcmultipart.raytrace.PartMOP; import mcmultipart.raytrace.RayTraceUtils; import net.minecraft.block.state.IBlockState; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.GlStateManager; import net.minecraft.client.renderer.Tessellator; import net.minecraft.client.renderer.VertexBuffer; @@ -20,6 +22,7 @@ import net.minecraftforge.client.event.DrawBlockHighlightEvent; import net.minecraftforge.client.event.ModelBakeEvent; import net.minecraftforge.client.model.ModelLoader; import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.FMLCommonHandler; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; @@ -28,7 +31,10 @@ import refinedstorage.RefinedStorage; import refinedstorage.RefinedStorageBlocks; import refinedstorage.RefinedStorageItems; import refinedstorage.block.*; +import refinedstorage.gui.GuiCraftingPreview; +import refinedstorage.gui.grid.GuiCraftingStart; import refinedstorage.item.*; +import refinedstorage.network.MessageGridCraftingPreviewResponse; import refinedstorage.tile.TileController; import java.util.List; @@ -294,4 +300,14 @@ public class ClientProxy extends CommonProxy { return new ModelResourceLocation("refinedstorage:controller", "direction=north,energy=" + energy); }); } + + public static void onReceiveCraftingPreviewResponse(MessageGridCraftingPreviewResponse message) { + GuiScreen screen = Minecraft.getMinecraft().currentScreen; + + if (screen instanceof GuiCraftingStart) { + screen = ((GuiCraftingStart) screen).getParent(); + } + + FMLCommonHandler.instance().showGuiScreen(new GuiCraftingPreview(screen, message.stacks, message.hash, message.quantity)); + } }