Silent's Mechanisms

Silent's Mechanisms

7M Downloads

Empty Canisters Don't Stack Sometimes

random51 opened this issue ยท 4 comments

commented

Versions

  • Silent's Mechanisms: 1.15.2-0.7.050
  • Silent Lib: 1.15.2-4.6.048
  • Forge: 31.1.18
  • Modpack: FTB Origins (beta testing)

Expected Behavior

All empty canisters to stack up to item stack limit.

Actual Behavior

Some stack and some don't. It appears one or more of the machines that can empty them aren't setting the data right on the canister.

Links/Images

  • (Link)

Steps to Reproduce the Problem

Process oil all the way to plastic reusing your empty canisters as you go along and sooner or later you'll get one or more canisters that won't stack with the rest.

commented

FWIW, it's not just emptied canisters. While making the Refinery in a normal crafting bench, I pressed "+" in JEI to move the items into the crafting grid, and took out the Refinery. Afterwards, I had 2 canisters that wouldn't stack with the other 6. And as you say, no NBT data; with F3+H on, I can see other items have NBT, like the Silent Gear sword with 4 tags.

While writing this up, it occurred to me that getting the canisters back really didn't make sense, so I had a look and indeed, the recipe JSON seems to show a standard "here's a grid of inputs, and here's the output", so I presume it should have been consumed.

...and now I've done a little testing; still in Survival, used /give to give myself lots of ingredients, and every time I craft the refinery I get the canisters back. However, the canisters I get back are stacking fine now, so I suppose that fits with the "sooner or later" of the original report.

commented

Possibly fixed in version 0.8.0 by dcb6a49. Old empty canisters can be converted into the new item by placing them in a crafting grid.

commented

I can confirm this bug also happens on the 1.14.4 latest version (0.6.13+49) as well. (Do note that I'm playing ATM4, but I've double checked to make sure this is the latest mod version) https://www.youtube.com/watch?v=SBKcI78t138

commented

Still have no idea why this happens. It almost seems like newly emptied canisters are still retaining NBT on the server side, but I don't know how. Trying to use the /sl_nbt item command on unruly canisters will just report "no NBT on item", but strangely it also fixes them in the process, allowing stacks to be merged.

If anyone wants to take a look at this, I recommend looking at these classes:

  • net.silentchaos512.mechanisms.block.AbstractFluidMachineTileEntity (and the classes that inherit from it)
  • net.silentchaos512.mechanisms.item.CanisterItem