The Bug:
Sculk sensors are not activated upon eyes of ender popping.
Steps to Reproduce:
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
Throw an eye of ender, wait for it to pop, and watch the sculk sensor closely as this happens.
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 @unknown 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.
Can confirm.