use of logisticspipes.network.packets.gui.GUIPacket in project LogisticsPipes by RS485.
the class NewGuiHandler method openGui.
public static void openGui(GuiProvider guiProvider, EntityPlayer oPlayer) {
if (!(oPlayer instanceof EntityPlayerMP)) {
throw new UnsupportedOperationException("Gui can only be opened on the server side");
}
EntityPlayerMP player = (EntityPlayerMP) oPlayer;
Container container = guiProvider.getContainer(player);
if (container == null) {
if (guiProvider instanceof PopupGuiProvider) {
GUIPacket packet = PacketHandler.getPacket(GUIPacket.class);
packet.setGuiID(guiProvider.getId());
packet.setWindowID(-2);
packet.setGuiData(LPDataIOWrapper.collectData(guiProvider::writeData));
MainProxy.sendPacketToPlayer(packet, player);
}
return;
}
player.getNextWindowId();
player.closeContainer();
int windowId = player.currentWindowId;
GUIPacket packet = PacketHandler.getPacket(GUIPacket.class);
packet.setGuiID(guiProvider.getId());
packet.setWindowID(windowId);
packet.setGuiData(LPDataIOWrapper.collectData(guiProvider::writeData));
MainProxy.sendPacketToPlayer(packet, player);
player.openContainer = container;
player.openContainer.windowId = windowId;
player.openContainer.addCraftingToCrafters(player);
}
Aggregations