mojira.dev
MC-249463

Shulkers in boats with chests are lowered

In normal boats and minecarts, shulkers use a custom height offset so that they do not intersect their vehicle. This override is defined within Yarn mappings' ShulkerEntity#getHeightOffset:

@Override
public double getHeightOffset() {
	EntityType<?> entityType = this.getVehicle().getType();
	if (entityType == EntityType.BOAT || entityType == EntityType.MINECART) {
		return 0.1875 - this.getVehicle().getMountedHeightOffset();
	}
	return super.getHeightOffset();
}

In case it isn't obvious, boats aren't boats with chests. That's actually not that obvious, but boats are the entity type minecraft:boat, while boats with chests are the entity type minecraft:chest_boat. As such, for boats with chests, entityType == EntityType.BOAT is false (and of course, in case it isn't obvious, boats aren't minecarts).

This problem is easily fixed by expanding the vehicle check. For example:

  • Checking for the entity type minecraft:chest_boat as well

  • An entity type tag!

  • Checking entityType instanceof BoatEntity, which both boats and boats with chests satisfy

The last proposed solution is ideal since modded boats otherwise need to solve this same issue.

Linked issues

Attachments

Comments

Avoma

I can also confirm this behavior.

[media][media]

You can execute the following commands to observe this issue.

/summon minecraft:boat ~-2 ~ ~ {Passengers:[{id:"minecraft:shulker"}]}
/summon minecraft:chest_boat ~2 ~ ~ {Passengers:[{id:"minecraft:shulker"}]}

haykam

v-armanv

Confirmed

Normal

Mob behaviour

boat-with-chest, shulker

22w12a, 22w14a, 22w15a, 22w18a, 1.19 Pre-release 3, 1.19 Release Candidate 2, 1.19, 1.19.1 Release Candidate 1

22w42a

Retrieved