Chests++

Chests++

16.6k Downloads

Item groups list

IMBeniamin opened this issue ยท 1 comments

commented

I have noticed the lack of documentation regarding the group filtering and would like to address it, perhaps by creating a list of some sort containing all the groups and their respective items.

There has also been another request for this in #4 and I had written about it in the discord server.

The goal of this issue thread is to compile a (hopefully) complete list of all the categories or tags of items that chests++ supports with their relative item types.

I do not have experience with the spigot/bukkit api but I have taken a look at the code and figured out some bits.

A custom tag class is created here for seeds

This tag then seems to be added to a new ArrayList here


which I assume contains all the tags that are used for filtering.
These are stored in the ItemTypeUtil class whose function isSimilarTag is used in
if (ItemTypeUtil.isSimilarTag(filter, itemStack)) return true;

It is curious however that right after the above call another call is made, which only gets executed when the above method returns false.

This call seems to match the item type directly per spigot's documentation
The function isFilteredByMeta which contains the above mentioned call seems to be itself called when a minecraft:item_frame has the rotation needed for "category" filtering, which is determined by the variable filterByItemMeta in
this.filterByItemMeta = itemFrame.getRotation().equals(Rotation.FLIPPED) || itemFrame.getRotation().equals(Rotation.COUNTER_CLOCKWISE);

Thus I deduce that the resultant list of category filters is made up of at least one custom type, SEEDS and the other bukkit types(or tags?) mentioned above.
For reference this is the list of all bukkit tags in the 1.20 version
Source file with tags definitions
I have also found a list of all minecraft tags with their associated blocks which might be very useful as the spigot one does not contain them

commented

Regardless of the list, a suggestion I would make, and I would like @JamesPeters98's input on this, is to allow the user to create a tag by specifying a filter in a command or on a sign, giving advanced users full freedom.
If it would be easier this could also be implemented by using items with special information, such as the tag being the item's name.