[1.19.2] Multi Item Fluid Containers dupe fluids
Speiger opened this issue ยท 7 comments
Describe the bug
When you click with a stackable fluid container on to a skystone tank to dump fluids into it it will consume 1x the container but 2x insert the fluid.
How to reproduce the bug
- 1: Implement a simple stackable fluid container that is like a bucket.
- 2: Try to drain the stackable container into skystone tank.
- 3: Magic!
Expected behavior
That stackable containers don't dupe fluids
Additional details
This only happens if the stacksize of the container is greater then 1
My best guess is that this is a forge bug.
But since I have a no forge bugreport policy and it only happens with your mod, you get it instead.
Also code line in question.
https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/forge/master/src/main/java/appeng/blockentity/storage/SkyStoneTankBlockEntity.java#L58
A additonal bug, offhand support?
Which minecraft version are you using?
1.19
On which mod loaders does it happen?
Forge
Crash log
No Crash.
Hi, thanks for the code suggestion. However I would rather PR the fix to Forge, which I just did (PR 9004).
Edit: I have known this bug since 1.14... And nobody found it so far?
(And a few other bugs that are still addressed in ic2c itself as i found them)
It seems that many people find these bugs, but instead of reporting them, they just implement a workaround on their end. Then people like me come along and try to use these methods. ๐ข
Closing as this should be addressed by Forge and not by AE2.
@Technici4n I am physically unable to report bugs to forge xD
- 1: Forge doesn't want my bugreports
- 2: I don't want to deal with their bullshit that reminds me of a certain year in germany.
I see it as a mutual understanding that forge and i don't talk xD
Ok so lets hope they accept this patch xD
Looks like a Forge bug indeed, but I will investigate. Which container did you use here?
@Technici4n i have solved the problem by wrapping/copying the target container on the first attempt...
This is IC2Classics solution to deal with forges bug...
public static boolean drainContainers(ItemStack source, Player player, IFluidHandler handler)
{
if(source.isEmpty())
{
return false;
}
IItemTransporter transporter = TransporterManager.getTransporter(player.getCapability(ForgeCapabilities.ITEM_HANDLER, Direction.DOWN).orElse(null));
if(transporter == null)
{
return false;
}
FluidActionResult emptyingResult = FluidUtil.tryEmptyContainer(source, new FillHandlerWrapper(handler), handler.getTankCapacity(0), null, true);
if(!emptyingResult.isSuccess())
{
return false;
}
if(transporter.addItem(emptyingResult.getResult(), Direction.DOWN, true) <= 0)
{
return false;
}
emptyingResult = FluidUtil.tryEmptyContainer(source, handler, handler.getTankCapacity(0), null, true);
source.shrink(1);
transporter.addItem(emptyingResult.getResult(), Direction.DOWN, false);
return true;
}
The FillHandlerWrapper turns all "Actions" to Simulate forcefully.
@Su5eD If you want to report this bug to forge, go ahead, but i am not reporting bugs to forge anymore ever since i realized how shitty they are.
I rather implement fixes on my end then deal with their "We are gods" bullshit.
Edit: I have known this bug since 1.14... And nobody found it so far?
(And a few other bugs that are still addressed in ic2c itself as i found them)