mojira.dev
MCPE-43960

Bucket doesn't collect water/lava just after it spreads

Update from [~GoldenHelmet]

This issue affects both water and lava, and seems to be due to how the server thread handles liquid flow state updates. On MCPE-100598 it was noted that

If the player attempts to pick up the water/lava within this duration (a short number of ticks after the liquid starts to spread), the hotbar will register the lava being picked up for a split second but then will flash back to the empty bucket. The server does not detect the client picking up the liquid either.

.... For whatever reason, [it appears that] the bedrock server engine converts the solid liquid into flowing liquid for a few ticks to allow the solid liquid to start flowing, and then quickly converts the source block back to a liquid "block", which then can be picked up with a bucket. Of course, flowing water or lava cannot be picked up with a bucket, so I think this is the culprit.

This theory also explains another observation reported on MCPE-80911:

When picking up lava with a bucket and quickly placing it on a neighbouring lava source, it completely disappears.

Found an issue since 1.10 that when emptying and trying to collect the water immediately its not collecting the water. Makes it difficult when you can't collect it and pushes you backwards. Found this issue on Xbox One, not a beta version. 

Linked issues

Attachments

Comments

[Mod] OcelotOnesie

Having the same issue on Windows 10.

migrated

Good to know its just not me. Very annoying. 

[Mojang] Mega_Spud (Jay)

Is this in a multiplayer game, or a single player / local world?

migrated

Single player local world

killerbeenl83

@@unknown Just to make sure we are talking about the same problem. Does the issue look like the problem shown in the video?

[media]

migrated

Looks like the same issue I am having

[Mod] OcelotOnesie

Affects 1.11.1.

[Mod] OcelotOnesie

Affects 1.12.0.

migrated

affects 1.16.40, 1.16.200.53

migrated

affects 1.16.200, 1.16.210

migrated

I fixed this via a dll with the bedrock dedicated server. The fix basically resends the transaction with solid liquid (mStaticLava / mStaticWater) at the blocksource, as opposed to mDynamicLava / mDynamicWater. Its technically a workaround but I have no problems with it whatsoever. if the devs want to be lazy, this is a potential solution.  

The symbol of the function in question is "?handle@ItemUseInventoryTransaction@@UEBA?AW4InventoryTransactionError@@AEAVPlayer@@_N@Z" , and the transaction error type is 2 / BalanceMismatch

DeeFeeCee

Affects 1.17.10

DeeFeeCee

Affects 1.18.1

migrated
[media][media]

It occurs in The third step of spreading liquid (water source -> the first liquid flow -> the second flow)

migrated

I noticed this 4 years ago (but only posted it to Reddit) and realized it’s still a problem today on version 1.20.32

[media]

 

migrated

(Unassigned)

204332, 384987, 419037, 1314988

Confirmed

Multiple

1.17.11 Hotfix, 1.16.200.53 Beta, 1.16.0.68 Beta, 1.16.0.67 Beta, 1.16.0.64 Beta, ..., 1.18.1 Hotfix, 1.19.60, 1.20.40, 1.21.40.23 Preview, 1.21.81 Hotfix

Retrieved