Boats / rafts move into blocks when landing in less than one block deep water
The bug
A boat will glitch / sink through blocks when it falls onto shallow water (see screenshot for setup to reproduce glitch or 3 Glitches with Boats- 1.12 Vanilla Survival)
How to reproduce
- Grab a boat
- Create setup shown in screenshot
- Speed up using 'W' and move towards the waterfall. once you fall on the floor below, you will sink/glitch through the ground, as shown in the video here: https://www.youtube.com/watch?v=Q8mtxsNCOAE
Code analysis
Based on 1.12.2 decompiled using MCP 9.40
It appears the call to Entity.setPosition(double, double, double) in the method net.minecraft.entity.item.EntityBoat.updateMotion() is causing this:
if (this.previousStatus == EntityBoat.Status.IN_AIR && this.status != EntityBoat.Status.IN_AIR && this.status != EntityBoat.Status.ON_LAND) { this.waterLevel = this.getEntityBoundingBox().minY + (double)this.height; // The following line appears to be causing the bug this.setPosition(this.posX, (double)(this.getWaterLevelAbove() - this.height) + 0.101D, this.posZ); this.motionY = 0.0D; this.lastYd = 0.0D; this.status = EntityBoat.Status.IN_WATER; }
It is unknown if leaving this out solves this bug without causing any other problems.
2016-01-28, 06:34 PM
2024-05-07, 02:40 PM
2024-05-07, 02:40 PM
29
17
Minecraft 16w04a - 23w44a
Minecraft 16w04a, Minecraft 16w05b, Minecraft 16w06a, Minecraft 1.9 Pre-Release 1, Minecraft 1.9 Pre-Release 2, Minecraft 1.10.2, Minecraft 1.11, Minecraft 1.11.2, Minecraft 1.12 Pre-Release 6, Minecraft 1.12 Pre-Release 7, Minecraft 1.12.2, Minecraft 18w05a, Minecraft 1.14, Minecraft 1.14.1, 20w14a, 1.16.1, 20w28a, 1.16.3, 1.16.4, 20w46a, 20w48a, 21w05b, 21w06a, 21w13a, 1.17 Pre-release 1, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19 Pre-release 3, 1.19 Release Candidate 2, 1.19, 1.19.1 Pre-release 5, 1.19.2, 22w42a, 22w45a, 1.19.3, 1.20, 1.20.1, 23w44a