Refined Storage

Refined Storage

77M Downloads

Highly irregular behaviour involving whitelists/blacklists and item variants when "Use Damage" is disabled

KirikaAetheria opened this issue ยท 4 comments

commented

Issue description: When importing or exporting items, if "Use Damage" is disabled, the whitelist/blacklist does not work as it should, and imports/exports all variants of a given item.

What happens:

When "Use Damage" is disabled, all variants of an item are considered the same item. This leads to several items unintentionally going through. For example:

  • I placed a one stone (0001/0), granite (0001/1), and andesite (0001/5) block in a chest which was attached to a disabled importer
    1

  • I then accessed the importer, set it to blacklist only granite, disabled the "Use Damage" filtering option, and enabled said importer
    2

  • Upon checking the grid, neither of the three blocks passed through the importer
    3

However, if I re-enable the "Use Damage" option, the stone and andesite blocks will be pulled from the chest, and the granite block will remain, as intended. This issue will happen with any blocks that share the same variant, like stone bricks and cracked stone bricks, for instance.

What you expected to happen:

That regardless of the "Use Damage" setting, the granite block would remain in the chest, while the stone and andesite blocks would be imported into the grid

Steps to reproduce:

  1. Put down a chest, attach importer or exporter to it
  2. Access the importer/exporter, blacklist any item that shares an ID with variants, and turn off the "Use Damage" option
  3. Place said item along with several of its variants in the chest/grid
  4. No items will have gone through the importer/exporter

Version (make sure you are on the latest version before reporting):

  • Minecraft: 1.12.2
  • Forge: 1.12.2 - 14.23.5.2847
  • Refined Storage: 1.6.15

Does this issue occur on a server? Yes

If a (crash)log is relevant for this issue, link it here: N/A

commented

In 1.12 and below the "Use Damage" option refers to whether or not a filter should comparing items metadata value or if it should ignore their metadata value.
The name "Use Damage" comes from the fact that damaged items use the metadata value to indicate how damaged they are.
Unfortunately, other things like stone, wool, wood, concrete, etc. also use the metadata value for differentiating between different variants of the same block.

The behavior you are seeing is completely correct and intended. With damage disabled, the filter will match all variants of stone while enabled it will only blacklist granite.

In 1.13+ metadata is gone and these things should no longer be quite as unintuitive.

commented

I see. I understand how metadata works, and that a proper durability filter would be bothersome to implement, but in that case, shouldn't the option at least be relabeled in 1.12.2 to "match metadata" or something along those lines? This behaviour might be correct and intended, but the description is inaccurate to say the least

commented

True. But this won't be changed anymore.

commented

that's fair. this does make sense when you look at the whole picture, it was a misconception on my part