GUI where you can only place certain items

Started by RexCerv on

Topic category: Advanced modding

Joined Oct 2020
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
GUI where you can only place certain items

So I wanted to make a GUI and for testing, I made only 1 slot, in this slot I wanted to know if it's possible to specify only to accept certain items, so I first added a random block in the specification and then going to the code and deleting it, then I tried adding the stuff I want to specify where the random block was (and yes I did Import all of the items and delete completely the other block). And because it didn't work, I was wondering if there's a way to do it with procedures or just coding, maybe I did it wrong. By the way, I'm in 2021.1, Minecraft Version 1.16. 

(If anyone didn't understand what I meant, here's an example: Imagine I want to only be able to put Gold, Diamond, Iron, Coal, etc on 1 slot, but I can't put other items like dirt or other things. And yes MCreator does let me specify items per slot, but it only lets me specify 1 item, when I want to specify at least 10.)

Joined Jun 2021
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
That will take a lot of…
Wed, 08/04/2021 - 14:57

That will take a lot of procedures I recommend trying a tutorial from Mod monster or cursed warrior

Joined Oct 2020
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
@RRTropical u got a link?
Wed, 08/04/2021 - 23:20

@RRTropical u got a link?

Joined Jun 2022
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
In the workspace right click…
Fri, 02/10/2023 - 19:32

In the workspace right click your GUI and select "lock/unlock mod element", then double click and open the GUIMenu.java, search for the custom slots, it should look like this (I'll use the minecraft arrow for example):

this.customSlots.put(0, this.addSlot(new SlotItemHandler(internal, 0, 44, 31) {
@Override
public boolean mayPlace(ItemStack stack) {
return (Items.ARROW == stack.getItem());
}
}));

Now what you need to do is add the items you want:

this.customSlots.put(0, this.addSlot(new SlotItemHandler(internal, 0, 44, 31) {
    @Override
    public boolean mayPlace(ItemStack stack) {
       return (Items.ARROW == stack.getItem() || ProjectLkModItems.SARTORIUM_ARROW.get() == stack.getItem() || Items.SPECTRAL_ARROW == stack.getItem() || Items.TIPPED_ARROW == stack.getItem());
    }
}));

You just need to add || between them, to get the vanilla items hold left control + left click on Items in "return (Items.ARROW" MCreator should open the items list, after all that press control + W so the code can fix and get the right imports, now just save the code and be happy.

Joined Feb 2018
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
RexCerv from 2023.1 you can…
Sun, 03/19/2023 - 10:12

RexCerv from 2023.1 you can do it without coding :)

Joined Sep 2020
Points:

User statistics:

  • Modifications:
  • Forum topics:
  • Wiki pages:
  • MCreator plugins:
  • Comments:
Yeah, you just need to use…
Sun, 03/19/2023 - 14:29

Yeah, you just need to use if and or.