PaperMC/paper-server/patches/sources/net/minecraft/world/level/block
Spottedleaf 47dd7e1c0a Fix piston physics inconsistency - MC-188840
Pistons invoke physics when they move blocks. The physics can cause
tnt blocks to ignite. However, pistons (when storing the blocks they "moved")
don't actually go back to the world state sometimes to check if something
like that happened. As a result they end up moving the tnt like it was
never ignited. This resulted in the ability to create machines
that can duplicate tnt, called "world eaters".
This patch makes the piston logic retrieve the block state from the world
prevent this from occuring.

This patch also sets the moved pos to air immediately after creating
the moving piston TE. This prevents the block from being updated from
other physics calls by the piston.

Tested against the following tnt duper design:
https://www.youtube.com/watch?v=mS7xxNGhjxs

This patch also affects every type of machine that utilises
this mechanic. For example, dead coral is removed by a physics
update when being moved while it is attached to slimeblocks.

Standard piston machines that don't destroy or modify the
blocks they move by physics updates should be entirely
unaffected.

This patch fixes https://bugs.mojang.com/browse/MC-188840

This patch also fixes rail duping and carpet duping.
2020-06-11 17:29:42 -07:00
..
entity Dont send unnecessary sign update 2021-09-11 11:56:51 +02:00
grower Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
piston Fix piston physics inconsistency - MC-188840 2020-06-11 17:29:42 -07:00
state Optimize CraftBlockData Creation 2018-08-23 11:45:32 -04:00
AbstractCandleBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BambooSaplingBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
BambooStalkBlock.java.patch Configurable cactus bamboo and reed growth height 2016-03-01 13:02:51 -06:00
BaseFireBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BasePressurePlateBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BedBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BeehiveBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BellBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BigDripleafBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
Block.java.patch ExperienceOrbs API for Reason/Source/Triggering player 2017-12-19 16:31:46 -05:00
BuddingAmethystBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BushBlock.java.patch Only process BlockPhysicsEvent if a plugin has a listener 2016-03-28 19:55:45 -04:00
ButtonBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CactusBlock.java.patch Configurable cactus bamboo and reed growth height 2016-03-01 13:02:51 -06:00
CakeBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CampfireBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CarvedPumpkinBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CauldronBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CaveVines.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CeilingHangingSignBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ChangeOverTimeBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ChestBlock.java.patch Configurable Disabling Cat Chest Detection 2016-03-03 01:13:45 -06:00
ChorusFlowerBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CocoaBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
CommandBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ComparatorBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ComposterBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ConcretePowderBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CoralBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CoralFanBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CoralPlantBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CoralWallFanBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CrafterBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
CropBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
DaylightDetectorBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DecoratedPotBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DetectorRailBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DiodeBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DirtPathBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DispenserBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DoorBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DoubleBlockCombiner.java.patch Don't load Chunks from Hoppers and other things 2016-11-03 20:28:12 -04:00
DoublePlantBlock.java.patch Only process BlockPhysicsEvent if a plugin has a listener 2016-03-28 19:55:45 -04:00
DragonEggBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DropExperienceBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
DropperBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
EndGatewayBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
EndPortalBlock.java.patch Configurable end credits 2016-03-16 02:21:39 -05:00
FarmBlock.java.patch Configurable random tick rates for blocks 2016-04-03 16:28:17 -04:00
FenceGateBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
FireBlock.java.patch Don't fire BlockFade on worldgen threads 2020-04-23 01:36:39 -04:00
FrogspawnBlock.java.patch Fixes and additions to the spawn reason API 2019-03-24 00:24:52 -04:00
FrostedIceBlock.java.patch Add ability to configure frosted_ice properties 2016-04-21 23:51:55 -07:00
FungusBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
GrowingPlantHeadBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
IceBlock.java.patch Improve Block#breakNaturally API 2020-01-02 12:25:07 -06:00
InfestedBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LayeredCauldronBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LeavesBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LecternBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LeverBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LightningRodBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LiquidBlock.java.patch Configurable speed for water flowing over lava 2018-08-08 16:33:21 -06:00
MagmaBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
MultifaceSpreader.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
MushroomBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
NetherPortalBlock.java.patch Add option to nerf pigmen from nether portals 2020-02-07 14:36:56 -06:00
NetherWartBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
NoteBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
NyliumBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ObserverBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
PointedDripstoneBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
PowderSnowBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
PoweredRailBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
PressurePlateBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
RedstoneLampBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
RedStoneOreBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
RedstoneTorchBlock.java.patch Faster redstone torch rapid clock removal 2016-05-23 12:12:37 +02:00
RespawnAnchorBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
RootedDirtBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SaplingBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
ScaffoldingBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SculkBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SculkCatalystBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SculkSensorBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SculkShriekerBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SculkSpreader.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SculkVeinBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
ShulkerBoxBlock.java.patch LootTable API and replenishable lootables 2016-05-01 21:19:14 -04:00
SignBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SnifferEggBlock.java.patch Fixes and additions to the spawn reason API 2019-03-24 00:24:52 -04:00
SnowLayerBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SpawnerBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
SpongeBlock.java.patch Fix SpongeAbsortEvent handling 2018-11-10 05:15:21 +00:00
SpreadingSnowyDirtBlock.java.patch Configurable random tick rates for blocks 2016-04-03 16:28:17 -04:00
StemBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
SugarCaneBlock.java.patch Configurable cactus bamboo and reed growth height 2016-03-01 13:02:51 -06:00
SweetBerryBushBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
TntBlock.java.patch Add TNTPrimeEvent 2018-07-16 00:05:05 +03:00
TrapDoorBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
TripWireBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
TripWireHookBlock.java.patch Validate tripwire hook placement before update 2020-03-07 00:07:51 +00:00
TurtleEggBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
VineBlock.java.patch Crop Growth Rates 2016-03-07 22:14:13 +11:00
WallHangingSignBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
WaterlilyBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
WeightedPressurePlateBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
WitherRoseBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
WitherSkullBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00