Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Things that ought to be blacklisted from UU replication by default #881

Open
MuteTiefling opened this issue Sep 11, 2024 · 10 comments
Open

Comments

@MuteTiefling
Copy link

ae2 storage cells and likewise from ae2 addons like appmek

'pneumaticcraft:smart_chest' and 'pneumaticcraft:reinforced_chest' which both retain inventory when picked up like a shulker box

Sophisticated Storage chests/barrels/shulkers/backpacks

Functional Storage drawers which retain inventory and can be used to dupe UU matter

Will add more as I find them

@MuteTiefling
Copy link
Author

MuteTiefling commented Sep 12, 2024

Here's a dump of everything I've found. This is the entire tag as I've set it for e10, so it includes your defaults already.

"#c:shulker_boxes",
"#modern_industrialization:barrels",
"#modern_industrialization:tanks",
"ae2:creative_storage_cell",
"ae2:fluid_storage_cell_16k",
"ae2:fluid_storage_cell_1k",
"ae2:fluid_storage_cell_256k",
"ae2:fluid_storage_cell_4k",
"ae2:fluid_storage_cell_64k",
"ae2:item_storage_cell_16k",
"ae2:item_storage_cell_1k",
"ae2:item_storage_cell_256k",
"ae2:item_storage_cell_4k",
"ae2:item_storage_cell_64k",
"ae2:portable_fluid_cell_16k",
"ae2:portable_fluid_cell_1k",
"ae2:portable_fluid_cell_256k",
"ae2:portable_fluid_cell_4k",
"ae2:portable_fluid_cell_64k",
"ae2:portable_item_cell_16k",
"ae2:portable_item_cell_1k",
"ae2:portable_item_cell_256k",
"ae2:portable_item_cell_4k",
"ae2:portable_item_cell_64k",
"ae2:spatial_storage_cell_128",
"ae2:spatial_storage_cell_16",
"ae2:spatial_storage_cell_2",
"ae2:view_cell",
"appmek:chemical_storage_cell_16k",
"appmek:chemical_storage_cell_1k",
"appmek:chemical_storage_cell_256k",
"appmek:chemical_storage_cell_4k",
"appmek:chemical_storage_cell_64k",
"appmek:portable_chemical_cell_16k",
"appmek:portable_chemical_cell_1k",
"appmek:portable_chemical_cell_256k",
"appmek:portable_chemical_cell_4k",
"appmek:portable_chemical_cell_64k",
"ars_additions:handy_haversack",
"ars_elemental:caster_bag",
"ars_elemental:curio_bag",
"ars_nouveau:mob_jar",
"evilcraft:dark_tank",
"functionalstorage:acacia_1",
"functionalstorage:acacia_2",
"functionalstorage:acacia_4",
"functionalstorage:armory_cabinet",
"functionalstorage:birch_1",
"functionalstorage:birch_2",
"functionalstorage:birch_4",
"functionalstorage:cherry_1",
"functionalstorage:cherry_2",
"functionalstorage:cherry_4",
"functionalstorage:compacting_drawer",
"functionalstorage:compacting_framed_drawer",
"functionalstorage:crimson_1",
"functionalstorage:crimson_2",
"functionalstorage:crimson_4",
"functionalstorage:dark_oak_1",
"functionalstorage:dark_oak_2",
"functionalstorage:dark_oak_4",
"functionalstorage:ender_drawer",
"functionalstorage:fluid_1",
"functionalstorage:fluid_2",
"functionalstorage:fluid_4",
"functionalstorage:framed_1",
"functionalstorage:framed_2",
"functionalstorage:framed_4",
"functionalstorage:framed_simple_compacting_drawer",
"functionalstorage:jungle_1",
"functionalstorage:jungle_2",
"functionalstorage:jungle_4",
"functionalstorage:mangrove_1",
"functionalstorage:mangrove_2",
"functionalstorage:mangrove_4",
"functionalstorage:oak_1",
"functionalstorage:oak_2",
"functionalstorage:oak_4",
"functionalstorage:simple_compacting_drawer",
"functionalstorage:spruce_1",
"functionalstorage:spruce_2",
"functionalstorage:spruce_4",
"functionalstorage:warped_1",
"functionalstorage:warped_2",
"functionalstorage:warped_4",
"mekanism:advanced_bin",
"mekanism:advanced_chemical_tank",
"mekanism:advanced_fluid_tank",
"mekanism:basic_bin",
"mekanism:basic_chemical_tank",
"mekanism:basic_fluid_tank",
"mekanism:cardboard_box",
"mekanism:creative_bin",
"mekanism:creative_chemical_tank",
"mekanism:creative_fluid_tank",
"mekanism:elite_bin",
"mekanism:elite_chemical_tank",
"mekanism:elite_fluid_tank",
"mekanism:personal_barrel",
"mekanism:personal_chest",
"mekanism:qio_drive_array",
"mekanism:qio_drive_base",
"mekanism:qio_drive_hyper_dense",
"mekanism:qio_drive_supermassive",
"mekanism:qio_drive_time_dilating",
"mekanism:ultimate_bin",
"mekanism:ultimate_chemical_tank",
"mekanism:ultimate_fluid_tank",
"minecraft:bundle",
"modern_industrialization:portable_storage_unit",
"occultism:satchel",
"occultism:soul_gem",
"occultism:soul_shard",
"occultism:storage_controller",
"pneumaticcraft:collector_drone",
"pneumaticcraft:drone",
"pneumaticcraft:drone_interface",
"pneumaticcraft:etching_tank",
"pneumaticcraft:guard_drone",
"pneumaticcraft:harvesting_drone",
"pneumaticcraft:huge_tank",
"pneumaticcraft:large_tank",
"pneumaticcraft:logistics_drone",
"pneumaticcraft:medium_tank",
"pneumaticcraft:reinforced_chest",
"pneumaticcraft:small_tank",
"pneumaticcraft:smart_chest",
"shrink:shrink_bottle",
"sophisticatedbackpacks:backpack",
"sophisticatedbackpacks:copper_backpack",
"sophisticatedbackpacks:diamond_backpack",
"sophisticatedbackpacks:gold_backpack",
"sophisticatedbackpacks:iron_backpack",
"sophisticatedbackpacks:netherite_backpack",
"sophisticatedstorage:barrel",
"sophisticatedstorage:chest",
"sophisticatedstorage:copper_barrel",
"sophisticatedstorage:copper_chest",
"sophisticatedstorage:copper_shulker_box",
"sophisticatedstorage:diamond_barrel",
"sophisticatedstorage:diamond_chest",
"sophisticatedstorage:diamond_shulker_box",
"sophisticatedstorage:gold_barrel",
"sophisticatedstorage:gold_chest",
"sophisticatedstorage:gold_shulker_box",
"sophisticatedstorage:iron_barrel",
"sophisticatedstorage:iron_chest",
"sophisticatedstorage:iron_shulker_box",
"sophisticatedstorage:limited_barrel_1",
"sophisticatedstorage:limited_barrel_2",
"sophisticatedstorage:limited_barrel_3",
"sophisticatedstorage:limited_barrel_4",
"sophisticatedstorage:limited_copper_barrel_1",
"sophisticatedstorage:limited_copper_barrel_2",
"sophisticatedstorage:limited_copper_barrel_3",
"sophisticatedstorage:limited_copper_barrel_4",
"sophisticatedstorage:limited_diamond_barrel_1",
"sophisticatedstorage:limited_diamond_barrel_2",
"sophisticatedstorage:limited_diamond_barrel_3",
"sophisticatedstorage:limited_diamond_barrel_4",
"sophisticatedstorage:limited_gold_barrel_1",
"sophisticatedstorage:limited_gold_barrel_2",
"sophisticatedstorage:limited_gold_barrel_3",
"sophisticatedstorage:limited_gold_barrel_4",
"sophisticatedstorage:limited_iron_barrel_1",
"sophisticatedstorage:limited_iron_barrel_2",
"sophisticatedstorage:limited_iron_barrel_3",
"sophisticatedstorage:limited_iron_barrel_4",
"sophisticatedstorage:limited_netherite_barrel_1",
"sophisticatedstorage:limited_netherite_barrel_2",
"sophisticatedstorage:limited_netherite_barrel_3",
"sophisticatedstorage:limited_netherite_barrel_4",
"sophisticatedstorage:netherite_barrel",
"sophisticatedstorage:netherite_chest",
"sophisticatedstorage:netherite_shulker_box",
"sophisticatedstorage:shulker_box",
"the_bumblezone:bee_cannon",
"the_bumblezone:buzzing_briefcase",
"the_bumblezone:honey_cocoon"

@Swedz
Copy link
Collaborator

Swedz commented Sep 12, 2024

Make sure required is set to false for each tag added, or else the tag will fail to load if one of these tags do not exist.

@Swedz
Copy link
Collaborator

Swedz commented Sep 12, 2024

Something else that may be worth mentioning, is it is better to use tag references instead of a massive list of items like this. Functional storage for example really should have a tag for all of its drawers.

@MuteTiefling
Copy link
Author

Yeah, would be better for sure but I don't think they do. Will double check though.

Would it be feasible to detect anything with fluid/item capabilities and auto add it? Might be easier than this too

@Swedz
Copy link
Collaborator

Swedz commented Sep 12, 2024

Should be possible but not with tags alone. It'd likely need to add to the tag at runtime via code which I'm not sure is very easy/good to do.

@MuteTiefling
Copy link
Author

MuteTiefling commented Sep 12, 2024

Yeah, that's what I mean, detect everything at runtime and just add it to the tag.

Alternatively, since the issue is NBT (or components, whatever), what if the default was to not copy nbt/components, and whitelist things that are allowed. I can think of only a very few things where you'd want to copy that information. For example, Industrial Foregoing's upgrades all use nbt/component data to determine custom tiers.

Would be a shorter list, by far.

@Technici4n
Copy link
Contributor

You mean whitelist which components get copied? That is a good solution I think. I hope that no mod crashes when an item is produced with default components. (AE2 Facades?)

The original idea behind the replicator was that you'd be able to dupe resources infinitely in most packs. But maybe packdevs don't like that? :D

@MuteTiefling
Copy link
Author

You mean whitelist which components get copied?

Was thinking more along the lines of whitelisting items where you are allowed to copy all components.

So you could add facades to the whitelist and get the data, but chests and things with inventories would just give the item without component data

@MuteTiefling
Copy link
Author

The original idea behind the replicator was that you'd be able to dupe resources infinitely in most packs. But maybe packdevs don't like that? :D

This isn't the issue so much as the fact that I was spending 100mb UU last night to dupe chests with 36k B of UU in tanks. It's one thing having an energy cost to dupe. It's another to make that energy free for more free duping.

@Swedz
Copy link
Collaborator

Swedz commented Sep 12, 2024

There's another issue with checking directly against capabilities too, since capabilities are not necessarily tied to an Item, and can be conditionally applied to items based on data or whatever. So it's not guaranteed an item will always have that capability so it makes no sense to tag them like that. Just my two cents.

Allow-listing items to permit NBT copying would be a good solution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants