Steps to reproduce:
Create a setup like in fig1.png
Run /tick freeze
Break the redstone block followed by the piston head (the order is important)
Place a piston against the oak planks so it faces downwards
Compare your setup to fig2.png
Run /tick unfreeze
Compare your setup to fig3.png
Observed behavior:
The block below the piston breaks but doesn't drop anything
Expected behavior:
The block below the piston breaks and drops a block according to the rules of /setblock <coordinates> air destroy
Suggested fix:
On a piston retraction if the block in front of the base is a minecraft:pison_head do nothing and continue to retraction logic,
Otherwise, break the block in front of the base rather than setting it to air
Java-like pseudocode:
public class PistonBase {
public void onRetract() {
// If the block is a piston head, do nothing
if(this.getBlockInFront() instanceof PistonHead)
this.getBlockInFront().getLocation().getBlock(AIR);
// If the block is not a piston head, break it
else
this.getBlockInFront().getLocation().destroy();
// The rest of the logic in this function
}
}
Attachments
Comments 3
Since the issue describes behavior of blocks drops and does not exactly match MC-27056 entirely, I can confirm.
Thank you for your report!
After consideration, the issue is being closed as Invalid.
This report does not describe a bug.
Quick Links:
📓 Bug Tracker Guidelines – 💬 Community Support – 📧 Mojang Support (Technical Issues) – 📧 Microsoft Support (Account Issues)
📓 Project Summary – ✍️ Feedback and Suggestions – 📖 Game Wiki
Based off of other similarly resolved issues, this seems to be the same behavior as MC-27056, but using /tick instead of TNT to destroy the piston in the same game tick the placed piston is powered. See the video in MC-227170 (which was a dupe of MC-27056) that shows the described behavior in action.