aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
diff options
context:
space:
mode:
authorNassim Jahnke <[email protected]>2023-09-23 09:38:10 +1000
committerNassim Jahnke <[email protected]>2023-09-23 09:38:10 +1000
commitb3ec8bd8ae19e40022ad4dd5db4a1414cb4330bb (patch)
tree429b9bd9ef2cc19e42b8656ef25ca1548f5efe88 /patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
parent81c5901c674e6ee89dbfed4848c9eb645bfb0f16 (diff)
downloadPaper-b3ec8bd8ae19e40022ad4dd5db4a1414cb4330bb.tar.gz
Paper-b3ec8bd8ae19e40022ad4dd5db4a1414cb4330bb.zip
Revert "re-add distance map patch"
This reverts commit 81c5901c674e6ee89dbfed4848c9eb645bfb0f16.
Diffstat (limited to 'patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch')
-rw-r--r--patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch215
1 files changed, 0 insertions, 215 deletions
diff --git a/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch b/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
deleted file mode 100644
index 729df02c4d..0000000000
--- a/patches/server/0787-Fix-new-block-data-for-EntityChangeBlockEvent.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: SoSeDiK <[email protected]>
-Date: Mon, 21 Mar 2022 20:00:53 +0200
-Subject: [PATCH] Fix new block data for EntityChangeBlockEvent
-
-Also standardizes how to handle EntityChangeBlockEvent before a removeBlock or destroyBlock
-call. Always use 'state.getFluidState().createLegacyBlock()' to get the new state instead of
-just using the 'air' state.
-
-Also fixes the new block data for EntityBreakDoorEvent (a sub-event from
-EntityChangeBlockEvent)
-
-Co-authored-by: Lulu13022002 <[email protected]>
-Co-authored-by: Jake Potrebic <[email protected]>
-
-diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
-index b7abd8309a7d9744d3b3df9be8cad54f8909cc15..d3a2a6dee2d83b3df0ddc521c080f7d72b709461 100644
---- a/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
-+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/HarvestFarmland.java
-@@ -107,7 +107,7 @@ public class HarvestFarmland extends Behavior<Villager> {
- Block block1 = world.getBlockState(this.aboveFarmlandPos.below()).getBlock();
-
- if (block instanceof CropBlock && ((CropBlock) block).isMaxAge(iblockdata)) {
-- if (CraftEventFactory.callEntityChangeBlockEvent(entity, this.aboveFarmlandPos, Blocks.AIR.defaultBlockState())) { // CraftBukkit
-+ if (CraftEventFactory.callEntityChangeBlockEvent(entity, this.aboveFarmlandPos, iblockdata.getFluidState().createLegacyBlock())) { // CraftBukkit // Paper - fix wrong block state
- world.destroyBlock(this.aboveFarmlandPos, true, entity);
- } // CraftBukkit
- }
-diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
-index 4253b3b1263a7ae5a2f5f3a34674dfea615a81ea..784a894688f98f9d0368a36d456c5c94e1ee3695 100644
---- a/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
-+++ b/src/main/java/net/minecraft/world/entity/ai/goal/BreakDoorGoal.java
-@@ -72,7 +72,7 @@ public class BreakDoorGoal extends DoorInteractGoal {
-
- if (this.breakTime == this.getDoorBreakTime() && this.isValidDifficulty(this.mob.level().getDifficulty())) {
- // CraftBukkit start
-- if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreakDoorEvent(this.mob, this.doorPos).isCancelled()) {
-+ if (org.bukkit.craftbukkit.event.CraftEventFactory.callEntityBreakDoorEvent(this.mob, this.doorPos, this.mob.level().getFluidState(this.doorPos).createLegacyBlock()).isCancelled()) { // Paper - fix wrong block state
- this.start();
- return;
- }
-diff --git a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
-index 9be4e715faefc5f7972abf064bfff3c1c980f7fc..b0caf52d00d8cd76550ab116291f8e11144a5e59 100644
---- a/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
-+++ b/src/main/java/net/minecraft/world/entity/ai/goal/EatBlockGoal.java
-@@ -67,8 +67,9 @@ public class EatBlockGoal extends Goal {
- if (this.eatAnimationTick == this.adjustedTickDelay(4)) {
- BlockPos blockposition = this.mob.blockPosition();
-
-- if (EatBlockGoal.IS_TALL_GRASS.test(this.level.getBlockState(blockposition))) {
-- if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, Blocks.AIR.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit
-+ final BlockState blockState = this.level.getBlockState(blockposition); // Paper - fix wrong block state
-+ if (EatBlockGoal.IS_TALL_GRASS.test(blockState)) { // Paper - fix wrong block state
-+ if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition, blockState.getFluidState().createLegacyBlock(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Paper - fix wrong block state
- this.level.destroyBlock(blockposition, false);
- }
-
-@@ -77,7 +78,7 @@ public class EatBlockGoal extends Goal {
- BlockPos blockposition1 = blockposition.below();
-
- if (this.level.getBlockState(blockposition1).is(Blocks.GRASS_BLOCK)) {
-- if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition1, Blocks.AIR.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit
-+ if (CraftEventFactory.callEntityChangeBlockEvent(this.mob, blockposition1, Blocks.DIRT.defaultBlockState(), !this.level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING))) { // CraftBukkit // Paper - Fix wrong block state
- this.level.levelEvent(2001, blockposition1, Block.getId(Blocks.GRASS_BLOCK.defaultBlockState()));
- this.level.setBlock(blockposition1, Blocks.DIRT.defaultBlockState(), 2);
- }
-diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
-index 6e1c67ad757e466d122badd547ee3f8421eba9ba..cf4859814a60468f683e3afe285b4934d35e9704 100644
---- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
-+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
-@@ -580,7 +580,7 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
-
- if (i == 0) {
- // CraftBukkit start
-- if (!CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockposition, Blocks.AIR.defaultBlockState())) {
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(this.rabbit, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- return;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
-index 703068eaff84bcce83f61d805afa6cc0fef909b1..1e07febcf7a3dfb281728cc5e3e4f15dd776d7e0 100644
---- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
-+++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
-@@ -373,7 +373,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob
-
- if (WitherBoss.canDestroy(iblockdata)) {
- // CraftBukkit start
-- if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, Blocks.AIR.defaultBlockState())) {
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- continue;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-index 74a4b1cdfe643007e0afd73f8eb0b1fbe29722cf..b0a97679157a18a3c623ce3b2ae315789772c254 100644
---- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
-@@ -580,7 +580,7 @@ public class EnderMan extends Monster implements NeutralMob {
- boolean flag = movingobjectpositionblock.getBlockPos().equals(blockposition);
-
- if (iblockdata.is(BlockTags.ENDERMAN_HOLDABLE) && flag) {
-- if (CraftEventFactory.callEntityChangeBlockEvent(this.enderman, blockposition, Blocks.AIR.defaultBlockState())) { // CraftBukkit - Place event
-+ if (CraftEventFactory.callEntityChangeBlockEvent(this.enderman, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // CraftBukkit - Place event // Paper - fix wrong block state
- world.removeBlock(blockposition, false);
- world.gameEvent(GameEvent.BLOCK_DESTROY, blockposition, GameEvent.Context.of(this.enderman, iblockdata));
- this.enderman.setCarriedBlock(iblockdata.getBlock().defaultBlockState());
-diff --git a/src/main/java/net/minecraft/world/entity/monster/Ravager.java b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
-index add3cd866452df727107e94fb2039bddebe909be..0c11d9bef8f0129c541e30ad057612e881703b24 100644
---- a/src/main/java/net/minecraft/world/entity/monster/Ravager.java
-+++ b/src/main/java/net/minecraft/world/entity/monster/Ravager.java
-@@ -158,7 +158,7 @@ public class Ravager extends Raider {
-
- if (block instanceof LeavesBlock) {
- // CraftBukkit start
-- if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState())) {
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(this, blockposition, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- continue;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
-index 6f452605e9dc9ebd9980eae9fdeea34417a37a88..2c60a3765d22909e73b660492410ab8456304b68 100644
---- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
-+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
-@@ -181,7 +181,8 @@ public class Silverfish extends Monster {
-
- if (block instanceof InfestedBlock) {
- // CraftBukkit start
-- if (!CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, blockposition1, net.minecraft.world.level.block.Blocks.AIR.defaultBlockState())) {
-+ BlockState afterState = world.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) ? iblockdata.getFluidState().createLegacyBlock() : ((InfestedBlock) block).hostStateByInfested(world.getBlockState(blockposition1)); // Paper - fix wrong block state
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(this.silverfish, blockposition1, afterState)) { // Paper - fix wrong block state
- continue;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
-index 3abcb29ff95c29b9b178e0a02d98bf26d60be173..06f44946e6cfb7da83a65850e06a9093712e24f9 100644
---- a/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
-+++ b/src/main/java/net/minecraft/world/entity/projectile/ThrownPotion.java
-@@ -306,7 +306,7 @@ public class ThrownPotion extends ThrowableItemProjectile implements ItemSupplie
-
- if (iblockdata.is(BlockTags.FIRE)) {
- // CraftBukkit start
-- if (CraftEventFactory.callEntityChangeBlockEvent(this, pos, Blocks.AIR.defaultBlockState())) {
-+ if (CraftEventFactory.callEntityChangeBlockEvent(this, pos, iblockdata.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- this.level().destroyBlock(pos, false, this);
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java b/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java
-index 258d453c37b7aae09874b24f61351e35212a1a40..e9beebedf1d60e06e16c442b64d28d022a3e3164 100644
---- a/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/ChorusFlowerBlock.java
-@@ -272,7 +272,7 @@ public class ChorusFlowerBlock extends Block {
-
- if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile.getType().is(EntityTypeTags.IMPACT_PROJECTILES)) {
- // CraftBukkit
-- if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) {
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- return;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java
-index 719c60316d6e22d8a6014fa491c904dec4bf2835..741aef7f4fbe1eba8db1eb4eb2ab255906863c66 100644
---- a/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/PointedDripstoneBlock.java
-@@ -129,7 +129,7 @@ public class PointedDripstoneBlock extends Block implements Fallable, SimpleWate
-
- if (!world.isClientSide && projectile.mayInteract(world, blockposition) && projectile instanceof ThrownTrident && projectile.getDeltaMovement().length() > 0.6D) {
- // CraftBukkit start
-- if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState())) {
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- return;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/level/block/TntBlock.java b/src/main/java/net/minecraft/world/level/block/TntBlock.java
-index ed90d126e317612f40b101b559a94aabf9ad7ee2..d73589ac6076f82f516c368acb17d280fb3c47e5 100644
---- a/src/main/java/net/minecraft/world/level/block/TntBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/TntBlock.java
-@@ -156,7 +156,7 @@ public class TntBlock extends Block {
-
- if (projectile.isOnFire() && projectile.mayInteract(world, blockposition)) {
- // CraftBukkit start
-- if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, Blocks.AIR.defaultBlockState()) || !CraftEventFactory.callTNTPrimeEvent(world, blockposition, PrimeCause.PROJECTILE, projectile, null)) {
-+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callEntityChangeBlockEvent(projectile, blockposition, state.getFluidState().createLegacyBlock()) || !CraftEventFactory.callTNTPrimeEvent(world, blockposition, PrimeCause.PROJECTILE, projectile, null)) { // Paper - fix wrong block state
- return;
- }
- // CraftBukkit end
-diff --git a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java
-index b13d89b1516130507402cd3b4bdb9f3c2a36e807..936644ec4a57e51a1c11a5bf4e8449abcc209edb 100644
---- a/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java
-+++ b/src/main/java/net/minecraft/world/level/block/WaterlilyBlock.java
-@@ -30,7 +30,7 @@ public class WaterlilyBlock extends BushBlock {
- if (!new io.papermc.paper.event.entity.EntityInsideBlockEvent(entity.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(world, pos)).callEvent()) { return; } // Paper
- if (world instanceof ServerLevel && entity instanceof Boat) {
- // CraftBukkit start
-- if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, Blocks.AIR.defaultBlockState())) {
-+ if (!CraftEventFactory.callEntityChangeBlockEvent(entity, pos, state.getFluidState().createLegacyBlock())) { // Paper - fix wrong block state
- return;
- }
- // CraftBukkit end
-diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-index f171124710b5e731652df0074fe24360239225b2..5a2fc10fb677291df95fceccff734cb9a78c81d6 100644
---- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
-@@ -1385,11 +1385,11 @@ public class CraftEventFactory {
- return event;
- }
-
-- public static EntityBreakDoorEvent callEntityBreakDoorEvent(Entity entity, BlockPos pos) {
-+ public static EntityBreakDoorEvent callEntityBreakDoorEvent(Entity entity, BlockPos pos, net.minecraft.world.level.block.state.BlockState newState) { // Paper
- org.bukkit.entity.Entity entity1 = entity.getBukkitEntity();
- Block block = CraftBlock.at(entity.level(), pos);
-
-- EntityBreakDoorEvent event = new EntityBreakDoorEvent((LivingEntity) entity1, block);
-+ EntityBreakDoorEvent event = new EntityBreakDoorEvent((LivingEntity) entity1, block, newState.createCraftBlockData()); // Paper
- entity1.getServer().getPluginManager().callEvent(event);
-
- return event;