Uploaded image for project: 'Minecraft: Java Edition'
  1. Minecraft: Java Edition
  2. MC-210153

Sculk sensors are not activated upon eyes of ender popping

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • None
    • 20w51a, 21w03a, 21w05a, 21w05b, 21w06a, 21w07a, 21w08b, 21w10a, 21w14a, 21w15a, 21w17a, 21w19a, 21w20a, 1.17 Pre-release 1, 1.17 Release Candidate 1, 1.17, 1.17.1 Pre-release 1, 1.17.1, 21w38a, 21w40a, 1.18, 1.18.1, 1.18.2, 22w14a, 22w17a, 22w18a, 1.19 Pre-release 1, 1.19, 1.19.2, 1.19.3, 23w06a, 1.19.4, 1.20.1, 23w33a, 23w43a
    • Confirmed
    • Game Events
    • Low
    • Gameplay

      The Bug:

      Sculk sensors are not activated upon eyes of ender popping.

      Steps to Reproduce:

      1. Summon a large area of sculk sensors above your head by using the command provided below.
        /fill ~13 ~11 ~13 ~-13 ~11 ~-13 minecraft:sculk_sensor
      2. Throw an eye of ender, wait for it to pop, and watch the sculk sensor closely as this happens.
      3. Take note as to whether or not sculk sensors are activated upon eyes of ender popping.

      Observed Behavior:

      Sculk sensors aren't activated.

      Expected Behavior:

      Sculk sensors would be activated.

      Code Analysis:

      Code analysis by Avoma can be found below.

      The following is based on a decompiled version of Minecraft 1.18.2 using MCP-Reborn.

      net.minecraft.world.entity.projectile.EyeOfEnder.java
      public class EyeOfEnder extends Entity implements ItemSupplier {
         ...
         public void tick() {
            super.tick();
            Vec3 vec3 = this.getDeltaMovement();
            double d0 = this.getX() + vec3.x;
            double d1 = this.getY() + vec3.y;
            double d2 = this.getZ() + vec3.z;
            ...
            if (!this.level.isClientSide) {
               this.setPos(d0, d1, d2);
               ++this.life;
               if (this.life > 80 && !this.level.isClientSide) {
                  this.playSound(SoundEvents.ENDER_EYE_DEATH, 1.0F, 1.0F);
                  this.discard();
                  if (this.surviveAfterDeath) {
                     this.level.addFreshEntity(new ItemEntity(this.level, this.getX(), this.getY(), this.getZ(), this.getItem()));
                  } else {
                     this.level.levelEvent(2003, this.blockPosition(), 0);
                  }
               }
            } else {
               this.setPosRaw(d0, d1, d2);
            }
         ...

      If we look at the above class, we can see that eye of enders popping (dying) simply isn't registered as a game event as the gameEvent() method is never called, thus not detecting this action as a vibration.

        1. MC-210153.mp4
          3.44 MB
        2. MC-210153.png
          MC-210153.png
          1.11 MB

            kingbdogz [Mojang] Brandon Pearce
            Avoma [Mod] Avoma
            Votes:
            14 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated:
              CHK: