9
0
mirror of https://github.com/Samsuik/Sakura.git synced 2025-12-28 11:19:08 +00:00
Files
SakuraMC/patches/server/0032-Falling-Block-Stacking-Restrictions.patch
Samsuik 5bcd0f7459 Add entity travel distance limits
Configuration example

chunk-travel-limit:
  ender_pearl: 6
  arrow: 6
  falling_block: 60
  tnt: 60
2024-02-26 22:11:22 +00:00

35 lines
2.6 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Samsuik <40902469+Samsuik@users.noreply.github.com>
Date: Thu, 16 Nov 2023 20:53:51 +0000
Subject: [PATCH] Falling Block Stacking Restrictions
diff --git a/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
index 3d58183f9f3748cfb35a9c70ad434b29064783f2..eee7932c4adf769a01a65a8fc8bae41badfe573f 100644
--- a/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
+++ b/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java
@@ -70,8 +70,8 @@ public class WorldConfiguration extends ConfigurationPart {
public boolean preventAtWorldHeight = false;
public boolean isFallingBlockInBounds(FallingBlockEntity entity) {
- return (!preventAgainstBorder || !io.papermc.paper.util.CollisionUtil.isAlmostCollidingOnBorder(entity.level().getWorldBorder(), entity.getBoundingBox()))
- && (!preventAtWorldHeight || entity.blockPosition().getY() < entity.level().getMaxBuildHeight() - 1);
+ return (!preventAgainstBorder || !io.papermc.paper.util.CollisionUtil.isAlmostCollidingOnBorder(entity.level.getWorldBorder(), entity.getBoundingBox().inflate(0.01)))
+ && (!preventAtWorldHeight || entity.blockPosition().getY() < entity.level.getMaxBuildHeight() - 1);
}
}
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
index 2a311de57a178160f5f15dd77467240d089e5fba..1ed64e59d83191fdd81450ccc3e0573a5af5adb5 100644
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
@@ -259,7 +259,7 @@ public class FallingBlockEntity extends Entity {
boolean flag3 = FallingBlock.isFree(this.level.getBlockState(blockposition.below())) && (!flag || !flag1);
boolean flag4 = this.blockState.canSurvive(this.level, blockposition) && !flag3;
- if (flag2 && flag4) {
+ if (flag2 && flag4 && level.sakuraConfig().cannons.sand.isFallingBlockInBounds(this)) { // Sakura
if (this.blockState.hasProperty(BlockStateProperties.WATERLOGGED) && this.level.getFluidState(blockposition).getType() == Fluids.WATER) {
this.blockState = (BlockState) this.blockState.setValue(BlockStateProperties.WATERLOGGED, true);
}