mojira.dev
MC-266516

Arrows on fire set breezes on fire, despite being deflected

When a flame arrow hit a breeze, they deals no damage, but still set them on fire.

Linked issues

Attachments

Comments 1

ampolive

Code analysis (Mojang mappings, 23w45a): AbstractArrow#onHitEntity sets the hit entity on fire even if it is not hurt:

...
    @Override
    protected void onHitEntity(EntityHitResult $$0) {
        ...
        Entity $$1 = $$0.getEntity();
        ...
        boolean $$8 = $$1.getType() == EntityType.ENDERMAN;
        int $$9 = $$1.getRemainingFireTicks();
        // This should probably be moved to inside the hurt conditional below
        if (this.isOnFire() && !$$8) {
            $$1.setSecondsOnFire(5);
        }
        if ($$1.hurt($$7, (float)$$3)) {
            ...
        } else if ($$1.getType().is(EntityTypeTags.DEFLECTS_ARROWS)) {
            this.deflect();
        } else {
            ...
        }
    }
...

4ebugger

mgustavsson

1139292

Confirmed

Expansion B

Important

Mob behaviour, Projectiles

23w45a, 23w46a

1.20.3 Pre-Release 2

Retrieved