mojira.dev
MC-311681

Dispensers can remove TNT from primed sulfur cubes

Survival reproduction

  1. Confine an adult sulfur cube in front of two dispensers.

  2. Use the first dispenser to give it TNT.

  3. Ignite the cube.

  4. During its six-second fuse, activate the second dispenser containing a stone block or shears.

  5. Wait for the fuse to finish.

  6. 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

https://youtu.be/Y5gWwNArSJU

Attachments

Comments 2

image-20260904-220427.png

Nice find 😄 looks funny

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.

pxrune

(Unassigned)

1687784

Confirmed

Expansion A

Normal

26.2, 26.3 Pre-Release 2

Retrieved