emilyploszaj / emi

A featureful and accessible item and recipe viewer
MIT License
221 stars 46 forks source link

[1.20.1] JEIEvents.hideItems kubejs event doesn't hide items with NBT data in EMI #429

Closed lonevox closed 5 months ago

lonevox commented 5 months ago

I have a JEIEvents.hideItems event in a kube script:

JEIEvents.hideItems(event => {
    for (const item of global.ItemsToRemove) {
        // Need to expand RegExps, since you cant use a RegExp to hide items
        global.Util.forEachItemRegExp(item, itemId => {
            console.log(itemId)
            event.hide(itemId)
        })
    }
})

The console.log(itemId) produces this:

[15:51:20] [INFO] jei_hide.js#6: create:unprocessed_obsidian_sheet
[15:51:20] [INFO] jei_hide.js#6: create:golden_sheet
[15:51:20] [INFO] jei_hide.js#6: create:sturdy_sheet
[15:51:20] [INFO] jei_hide.js#6: create:copper_sheet

The golden sheet, sturdy sheet, and copper sheet are all correctly hidden in EMI. However, the unprocessed obsidian sheet is still visible as seen here: image

If I run with only JEI and not EMI, create:unprocessed_obsidian_sheet is correctly hidden. I suspect this is because create:unprocessed_obsidian_sheet has a damage NBT, whereas the three other sheets have no NBT data.

emilyploszaj commented 5 months ago

kubejs's JEI events interact with JEI's API and not all that information can be conveyed to EMI. You'll have to use the c:hidden_from_recipe_viewers tag supported by every recipe viewer, or use EMI's resource formats for hiding https://github.com/emilyploszaj/emi/wiki/Hiding-and-Adding-Index-Stacks