PaperMC/paper-server/patches/sources/net/minecraft/world/level
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
..
block Fix piston physics inconsistency - MC-188840 2020-06-11 17:29:42 -07:00
border Bound Treasure Maps to World Border 2016-12-20 15:15:11 -05:00
chunk Optimise Chunk#getFluid 2020-01-14 14:59:08 -08:00
dimension/end Add config to disable ender dragon legacy check 2018-06-22 10:38:31 -05:00
entity Add Debug Entities option to debug dupe uuid issues 2018-07-21 08:25:40 -04:00
gameevent Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
levelgen Add phantom creative and insomniac controls 2020-04-25 15:13:41 -05:00
material Prevent chunk loading from Fluid Flowing 2018-09-10 23:36:16 -04:00
pathfinder Mob Pathfinding API 2018-09-09 13:30:00 -04:00
portal Add configurable portal search radius 2016-03-03 02:46:17 -06:00
redstone Prevent NoClassDefError crash and notify on crash 2014-04-21 12:43:08 +01:00
saveddata/maps Adventure 2021-01-29 17:54:03 +01:00
storage Print Error details when failing to save player data 2018-06-15 20:37:03 -04:00
BaseCommandBlock.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
BaseSpawner.java.patch Mob Spawner API Enhancements 2019-04-19 12:41:13 -05:00
BlockGetter.java.patch Prevent various interactions from causing chunk loads 2018-09-10 23:56:36 -04:00
ChunkPos.java.patch MC Utils 2016-03-28 20:55:47 -04:00
ClipContext.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
EmptyBlockGetter.java.patch MC Utils 2016-03-28 20:55:47 -04:00
EntityGetter.java.patch SkeletonHorse Additions 2018-07-27 22:36:31 -05:00
GameRules.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
Level.java.patch Optimize Captured BlockEntity Lookup 2019-04-06 10:16:48 -04:00
LevelAccessor.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
LevelReader.java.patch MC Utils 2016-03-28 20:55:47 -04:00
LevelWriter.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00
NaturalSpawner.java.patch Only count Natural Spawned mobs towards natural spawn mob limit 2019-03-24 01:01:32 -04:00
PathNavigationRegion.java.patch MC Utils 2016-03-28 20:55:47 -04:00
ServerExplosion.java.patch Optimize call to getFluid for explosions 2020-01-14 17:49:03 -05:00
ServerLevelAccessor.java.patch Remap CraftBukkit to Mojang+Yarn Mappings 2024-12-11 22:26:55 +01:00