diff --git a/src/main/java/codechicken/nei/NEIClientUtils.java b/src/main/java/codechicken/nei/NEIClientUtils.java index e4a405e4..72e9435f 100644 --- a/src/main/java/codechicken/nei/NEIClientUtils.java +++ b/src/main/java/codechicken/nei/NEIClientUtils.java @@ -32,6 +32,7 @@ import net.minecraft.client.Minecraft; import net.minecraft.client.audio.PositionedSoundRecord; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.gui.inventory.GuiContainerCreative; import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.EntityPlayer; @@ -272,8 +273,18 @@ public class NEIClientUtils extends NEIServerUtils { given += qty; if (given >= stack.stackSize) break; } - if (given > 0) NEICPH.sendGiveItem(copyStack(typestack, given), false, false); - } else NEICPH.sendGiveItem(stack, infinite, true); + if (given > 0) { + if (mc().currentScreen instanceof GuiContainerCreative gcc) { + mc().thePlayer.inventory.addItemStackToInventory(stack); + gcc.inventorySlots.detectAndSendChanges(); + } else NEICPH.sendGiveItem(copyStack(typestack, given), false, false); + } + } else { + if (mc().currentScreen instanceof GuiContainerCreative gcc) { + mc().thePlayer.inventory.addItemStackToInventory(stack); + gcc.inventorySlots.detectAndSendChanges(); + } else NEICPH.sendGiveItem(stack, infinite, true); + } } else { for (int given = 0; given < stack.stackSize;) { int qty = Math.min(stack.stackSize - given, stack.getMaxStackSize()); diff --git a/src/main/java/codechicken/nei/recipe/CheatItemHandler.java b/src/main/java/codechicken/nei/recipe/CheatItemHandler.java index b51f9263..3d124f79 100644 --- a/src/main/java/codechicken/nei/recipe/CheatItemHandler.java +++ b/src/main/java/codechicken/nei/recipe/CheatItemHandler.java @@ -1,6 +1,9 @@ package codechicken.nei.recipe; +import static com.gtnewhorizon.gtnhlib.ClientProxy.mc; + import net.minecraft.client.gui.inventory.GuiContainer; +import net.minecraft.client.gui.inventory.GuiContainerCreative; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; @@ -30,9 +33,16 @@ public class CheatItemHandler extends INEIGuiAdapter { .min(contents + add, Math.min(overSlot.getSlotStackLimit(), draggedStack.getMaxStackSize())); if (total > contents) { - NEIClientUtils - .setSlotContents(overSlot.slotNumber, NEIServerUtils.copyStack(draggedStack, total), true); - NEICPH.sendGiveItem(NEIServerUtils.copyStack(draggedStack, total), false, false); + if (mc.currentScreen instanceof GuiContainerCreative gcc) { + mc.thePlayer.inventory.addItemStackToInventory(draggedStack); + gcc.inventorySlots.detectAndSendChanges(); + } else { + NEIClientUtils.setSlotContents( + overSlot.slotNumber, + NEIServerUtils.copyStack(draggedStack, total), + true); + NEICPH.sendGiveItem(NEIServerUtils.copyStack(draggedStack, total), false, false); + } draggedStack.stackSize -= total - contents; }