Fix server crash, fixes #392

This commit is contained in:
Raoul Van den Berge
2016-09-28 08:26:56 +02:00
parent 843e84209f
commit 39f9838823
3 changed files with 23 additions and 17 deletions

View File

@@ -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")

View File

@@ -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<MessageGridCraftingPreviewResponse, IMessage> {
private Collection<CraftingPreviewStack> stacks;
private int hash;
private int quantity;
public Collection<CraftingPreviewStack> 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;
}
}

View File

@@ -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));
}
}