Posted June 8, 20241 yr I am trying to make a machine that has an upgrade slot that has an item limit of 1. I've tried overriding a lot of functions and even making a custom SlotItemHandler class, but nothing worked. How would one go about making this?
June 9, 20241 yr i have not test it but you must extend the slot class overriding the max stack size to 1 public int getMaxStackSize() { return this.container.getMaxStackSize(); } then in the menu class use your custome slot class to declare the slot this.addSlot(new SlotItemHandler(handler00, 6, 62, 35));//slot zero this.addSlot(new ArmourSlotItemHandler(handler00, null,5, 80, 8));//head
June 10, 20241 yr Author Got it to work, for anyone that has this same question, here's the code: - In the EntityMenu this.blockEntity.getCapability(ForgeCapabilities.ITEM_HANDLER).ifPresent(iItemHandler -> { this.addSlot(new SlotItemHandler(iItemHandler, 0, 12, 15) { @Override public int getMaxStackSize() { return 1; } @Override public int getMaxStackSize(@NotNull ItemStack stack) { return 1; } @Override public void set(@NotNull ItemStack stack) { ItemStack copiedItemStack = stack.copyWithCount(1); super.set(copiedItemStack); return; } }); this.addSlot(new SlotItemHandler(iItemHandler, 1, 86, 15)); this.addSlot(new SlotItemHandler(iItemHandler, 2, 86, 60)); }); Adding an anonymous class to the slot you want to have this, and in the class you override the three methods. Now if you want other number of items, replace the 1's in the methods with the number you want. PS. The return line at the end of set() is not needed. Edited June 10, 20241 yr by IlluminatiJoe
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.