#remove tag from tag

16 messages · Page 1 of 1 (latest)

fiery summit
#

why are nether wood blocks not properly removed from these tags?

event.add('kubejs:nether_wood',[
    'minecraft:crimson_stem',
    'minecraft:warped_stem',
    'minecraft:crimson_hyphae',
    'minecraft:warped_hyphae',
    'minecraft:stripped_crimson_stem',
    'minecraft:stripped_warped_stem',
    'minecraft:stripped_crimson_hyphae',
    'minecraft:stripped_warped_hyphae'])
    event.add('kubejs:burntable_logs', '#forge:logs')
    event.remove('kubejs:burntable_logs', '#kubejs:nether_wood')
    event.add('kubejs:burntable_woods', '#forge:wood')
    event.remove('kubejs:burntable_woods', '#kubejs:nether_wood')
    event.add('kubejs:stripped_burntable_logs', '#forge:stripped_logs')
    event.remove('kubejs:stripped_burntable_logs', '#kubejs:nether_wood')
    event.add('kubejs:stripped_burntable_woods', '#forge:stripped_wood')
    event.remove('kubejs:stripped_burntable_woods', '#kubejs:nether_wood')

$aceplanteissue

grim sapphireBOT
#

Once your ticket has been resolved, please close it with </ticket close:1054771505520717835> command!

fiery summit
#

Even doing a manual list they are still not removed

    event.add('kubejs:burntable_logs', '#forge:logs')
    event.remove('kubejs:burntable_logs', ['minecraft:crimson_stem','minecraft:warped_stem'])
    event.add('kubejs:burntable_woods', '#forge:wood')
    event.remove('kubejs:burntable_woods', ['minecraft:crimson_hyphae','minecraft:warped_hyphae'])
    event.add('kubejs:stripped_burntable_logs', '#forge:stripped_logs')
    event.remove('kubejs:stripped_burntable_logs', ['minecraft:stripped_crimson_stem','minecraft:stripped_warped_stem'])
    event.add('kubejs:stripped_burntable_woods', '#forge:stripped_wood')
    event.remove('kubejs:stripped_burntable_woods', ['minecraft:stripped_crimson_hyphae','minecraft:stripped_warped_hyphae'])
compact hawk
#

Can we see the tag in JEI in game? Some recipe that uses it, for instance?

fiery summit
compact hawk
#

OK, I see. I was thinking maybe there was a typo, but that's definitely the same tag.

fiery summit
#

Even INDIVIDUALLY they are still not removed??

    event.add('kubejs:burntable_logs', '#forge:logs')
    event.remove('kubejs:burntable_logs', 'minecraft:crimson_stem')
    event.remove('kubejs:burntable_logs', 'minecraft:warped_stem')
#

can i just not remove items from tags now?

compact hawk
#

Are you able to test removing an item from a tag that existed before KubeJS modified it?

fiery summit
#

yeah ive done that plenty of times

compact hawk
#

Hmm. OK. I want you to try something.
console.log(event.get("forge:logs"))
I want to see if that returns a list object.

#

If event.get("forge:logs") returns a proper javascript array, or something close enough to it, we could do

const logs = event.get("forge:logs")
const nether_wood = event.get("kubejs:nether_wood") // or just make this the array that you later add to the tag
const burntable_logs = logs.filter(item => !nether_wood.includes(item))
event.add('kubejs:burntable_logs',burntable_logs)
#

OK, looks like it doesn't, instead it returns a tagWrapper, but it does have a method that returns a list. Or a property, rather.
so after each .get("string") here, just add .entries

fiery summit
#

im currently just making a new tag manually

#

but we really should be able to remove items by tag

compact hawk
#

Well, I think it's just trying to do it concurrently, and due to some race condition, it's removing them before adding them. Even though you wrote the add to come first.

Anyways, if I'm right, then taking your original script, I should be able to do this:

    const nether_wood = [
    'minecraft:crimson_stem',
    'minecraft:warped_stem',
    'minecraft:crimson_hyphae',
    'minecraft:warped_hyphae',
    'minecraft:stripped_crimson_stem',
    'minecraft:stripped_warped_stem',
    'minecraft:stripped_crimson_hyphae',
    'minecraft:stripped_warped_hyphae']
    event.add('kubejs:nether_wood', nether_wood)

    const forge_logs = event.get("forge:logs").entries
    event.add('kubejs:burntable_logs', forge_logs.filter(item => !nether_wood.includes(item)))

    const forge_wood = event.get("forge:wood").entries
    event.add('kubejs:burntable_woods', forge_wood.filter(item => !nether_wood.includes(item)))
    
    const forge_stripped_logs = event.get("forge:stripped_logs").entries
    event.add('kubejs:stripped_burntable_logs', forge_stripped_logs.filter(item => !nether_wood.includes(item)))

    const forge_stripped_wood = event.get("forge:stripped_wood").entries
    event.add('kubejs:stripped_burntable_woods', forge_stripped_wood.filter(item => !nether_wood.includes(item)))

And this should do it all, without needing to do it manually.