Survival reproduction
Confine an adult sulfur cube in front of two dispensers.
Use the first dispenser to give it TNT.
Ignite the cube.
During its six-second fuse, activate the second dispenser containing a stone block or shears.
Wait for the fuse to finish.
The dispenser ejects the TNT from the sulfur cube. The cube reaches fuse:0 without exploding and remains.
Root Cause
The dispenser behavior calls equipItem without checking isPrimed(). Priming permanently enables invulnerability, while fuse expiry only explodes or discards the cube if its current block still provides explosion data.
// net/minecraft/core/dispenser/SulfurCubeBlockDispenseItemBehavior.java
public static boolean dispenseBlock(final ServerLevel level, final BlockPos pos, final ItemStack dispensed) {
for (SulfurCube entity : level.getEntitiesOfClass(SulfurCube.class, new AABB(pos))) {
if (entity.equipItem(dispensed)) {
dispensed.shrink(1);
return true;
}
}
return false;
}// net/minecraft/world/entity/monster/cubemob/SulfurCube.java
private void tickFuse() {
if (this.fuse > 0) {
this.fuse--;
}
if (!this.explosionData.isEmpty()) {POC
Attachments
Comments 2
This issue has been reviewed by our team.
Please add new, relevant information if it helps us understand or reproduce the issue. To show that you’re affected, use the vote feature rather than commenting.
If a fix is implemented, it will be listed in our official changelogs.
For major outages or urgent assistance, visit the Minecraft Help Center.
Nice find 😄 looks funny