From b936b4853ab02dced3c105f11c7301cae04e0ba3 Mon Sep 17 00:00:00 2001 From: jhqwqmc <2110242767@qq.com> Date: Wed, 10 Sep 2025 10:19:43 +0800 Subject: [PATCH] =?UTF-8?q?refactor(block):=20=E4=BC=98=E5=8C=96=E6=96=B9?= =?UTF-8?q?=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../block/behavior/BouncingBlockBehavior.java | 8 +- .../main/resources/additional-real-blocks.yml | 2 +- .../default/configuration/blocks.yml | 226 ++++-------------- gradle.properties | 2 +- 4 files changed, 51 insertions(+), 187 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java index 551c1c0b4..6a68455aa 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/BouncingBlockBehavior.java @@ -7,8 +7,7 @@ import net.momirealms.craftengine.core.block.CustomBlock; import net.momirealms.craftengine.core.block.behavior.BlockBehaviorFactory; import net.momirealms.craftengine.core.util.ResourceConfigUtils; import net.momirealms.craftengine.core.util.VersionHelper; -import org.bukkit.entity.Entity; -import org.bukkit.entity.Player; +import org.bukkit.util.Vector; import java.util.Map; import java.util.concurrent.Callable; @@ -23,7 +22,7 @@ public class BouncingBlockBehavior extends BukkitBlockBehavior { } @Override - public void fallOn(Object thisBlock, Object[] args, Callable superMethod) throws Exception { + public void fallOn(Object thisBlock, Object[] args, Callable superMethod) { Object entity = args[3]; Object finalFallDistance; if (VersionHelper.isOrAbove1_21_5()) { @@ -42,6 +41,8 @@ public class BouncingBlockBehavior extends BukkitBlockBehavior { public void updateEntityMovementAfterFallOn(Object thisBlock, Object[] args, Callable superMethod) throws Exception { Object entity = args[1]; if (FastNMS.INSTANCE.method$Entity$getSharedFlag(entity, 1)) { + superMethod.call(); + } else { bounceUp(entity); } } @@ -56,6 +57,7 @@ public class BouncingBlockBehavior extends BukkitBlockBehavior { -FastNMS.INSTANCE.field$Vec3$y(deltaMovement) * this.bounceHeight * d, FastNMS.INSTANCE.field$Vec3$z(deltaMovement) ); + FastNMS.INSTANCE.field$Entity$hurtMarked(entity, true); } } diff --git a/common-files/src/main/resources/additional-real-blocks.yml b/common-files/src/main/resources/additional-real-blocks.yml index c425a70f3..8de88617e 100644 --- a/common-files/src/main/resources/additional-real-blocks.yml +++ b/common-files/src/main/resources/additional-real-blocks.yml @@ -81,5 +81,5 @@ minecraft:cherry_fence_gate: 16 minecraft:bamboo_fence_gate: 16 minecraft:crimson_fence_gate: 16 minecraft:warped_fence_gate: 16 -minecraft:barrier: 24 +minecraft:barrier: 128 minecraft:white_bed: 1 \ No newline at end of file diff --git a/common-files/src/main/resources/resources/default/configuration/blocks.yml b/common-files/src/main/resources/resources/default/configuration/blocks.yml index 4a197f8df..71db60034 100644 --- a/common-files/src/main/resources/resources/default/configuration/blocks.yml +++ b/common-files/src/main/resources/resources/default/configuration/blocks.yml @@ -585,6 +585,8 @@ items#misc: hit: minecraft:block.wood.hit place: minecraft:block.wood.place step: minecraft:block.wood.step + tags: + - minecraft:mineable/axe behavior: type: bouncing_block bounce-height: 0.66 @@ -639,253 +641,113 @@ items#misc: hit: minecraft:block.wood.hit place: minecraft:block.wood.place step: minecraft:block.wood.step - behavior: - type: sofa_block + tags: + - minecraft:mineable/axe + behaviors: + - type: sofa_block + - type: bouncing_block + bounce-height: 0.66 states: properties: facing: type: horizontal_direction shape: type: sofa_shape - waterlogged: - type: boolean - default: false appearances: - facing=east,shape=straight,waterlogged=false: + facing=east,shape=straight: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_straight yaw: 90 - facing=north,shape=straight,waterlogged=false: + facing=north,shape=straight: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_straight - facing=south,shape=straight,waterlogged=false: + facing=south,shape=straight: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_straight yaw: 180 - facing=west,shape=straight,waterlogged=false: + facing=west,shape=straight: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_straight yaw: 270 - facing=east,shape=straight,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_straight - yaw: 90 - facing=north,shape=straight,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_straight - facing=south,shape=straight,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_straight - yaw: 180 - facing=west,shape=straight,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_straight - yaw: 270 - facing=east,shape=inner_left,waterlogged=false: + facing=east,shape=inner_left: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner - facing=north,shape=inner_left,waterlogged=false: + facing=north,shape=inner_left: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner yaw: 270 - facing=south,shape=inner_left,waterlogged=false: + facing=south,shape=inner_left: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner yaw: 90 - facing=west,shape=inner_left,waterlogged=false: + facing=west,shape=inner_left: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner yaw: 180 - facing=east,shape=inner_left,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - facing=north,shape=inner_left,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - yaw: 270 - facing=south,shape=inner_left,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - yaw: 90 - facing=west,shape=inner_left,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - yaw: 180 - facing=east,shape=inner_right,waterlogged=false: + facing=east,shape=inner_right: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner yaw: 90 - facing=north,shape=inner_right,waterlogged=false: + facing=north,shape=inner_right: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner - facing=south,shape=inner_right,waterlogged=false: + facing=south,shape=inner_right: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner yaw: 180 - facing=west,shape=inner_right,waterlogged=false: + facing=west,shape=inner_right: state: barrier[waterlogged=false] entity-renderer: item: default:connectable_sofa_inner yaw: 270 - facing=east,shape=inner_right,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - yaw: 90 - facing=north,shape=inner_right,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - facing=south,shape=inner_right,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - yaw: 180 - facing=west,shape=inner_right,waterlogged=true: - state: barrier[waterlogged=true] - entity-renderer: - item: default:connectable_sofa_inner - yaw: 270 variants: - facing=east,shape=inner_left,waterlogged=false: - appearance: facing=east,shape=inner_left,waterlogged=false + facing=east,shape=inner_left: + appearance: facing=east,shape=inner_left id: 0 - facing=east,shape=inner_right,waterlogged=false: - appearance: facing=east,shape=inner_right,waterlogged=false + facing=east,shape=inner_right: + appearance: facing=east,shape=inner_right id: 1 - facing=east,shape=straight,waterlogged=false: - appearance: facing=east,shape=straight,waterlogged=false + facing=east,shape=straight: + appearance: facing=east,shape=straight id: 2 - facing=north,shape=inner_left,waterlogged=false: - appearance: facing=north,shape=inner_left,waterlogged=false + facing=north,shape=inner_left: + appearance: facing=north,shape=inner_left id: 3 - facing=north,shape=inner_right,waterlogged=false: - appearance: facing=north,shape=inner_right,waterlogged=false + facing=north,shape=inner_right: + appearance: facing=north,shape=inner_right id: 4 - facing=north,shape=straight,waterlogged=false: - appearance: facing=north,shape=straight,waterlogged=false + facing=north,shape=straight: + appearance: facing=north,shape=straight id: 5 - facing=south,shape=inner_left,waterlogged=false: - appearance: facing=south,shape=inner_left,waterlogged=false + facing=south,shape=inner_left: + appearance: facing=south,shape=inner_left id: 6 - facing=south,shape=inner_right,waterlogged=false: - appearance: facing=south,shape=inner_right,waterlogged=false + facing=south,shape=inner_right: + appearance: facing=south,shape=inner_right id: 7 - facing=south,shape=straight,waterlogged=false: - appearance: facing=south,shape=straight,waterlogged=false + facing=south,shape=straight: + appearance: facing=south,shape=straight id: 8 - facing=west,shape=inner_left,waterlogged=false: - appearance: facing=west,shape=inner_left,waterlogged=false + facing=west,shape=inner_left: + appearance: facing=west,shape=inner_left id: 9 - facing=west,shape=inner_right,waterlogged=false: - appearance: facing=west,shape=inner_right,waterlogged=false + facing=west,shape=inner_right: + appearance: facing=west,shape=inner_right id: 10 - facing=west,shape=straight,waterlogged=false: - appearance: facing=west,shape=straight,waterlogged=false + facing=west,shape=straight: + appearance: facing=west,shape=straight id: 11 - facing=east,shape=inner_left,waterlogged=true: - appearance: facing=east,shape=inner_left,waterlogged=true - id: 12 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=east,shape=inner_right,waterlogged=true: - appearance: facing=east,shape=inner_right,waterlogged=true - id: 13 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=east,shape=straight,waterlogged=true: - appearance: facing=east,shape=straight,waterlogged=true - id: 14 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=north,shape=inner_left,waterlogged=true: - appearance: facing=north,shape=inner_left,waterlogged=true - id: 15 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=north,shape=inner_right,waterlogged=true: - appearance: facing=north,shape=inner_right,waterlogged=true - id: 16 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=north,shape=straight,waterlogged=true: - appearance: facing=north,shape=straight,waterlogged=true - id: 17 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=south,shape=inner_left,waterlogged=true: - appearance: facing=south,shape=inner_left,waterlogged=true - id: 18 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=south,shape=inner_right,waterlogged=true: - appearance: facing=south,shape=inner_right,waterlogged=true - id: 19 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=south,shape=straight,waterlogged=true: - appearance: facing=south,shape=straight,waterlogged=true - id: 20 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=west,shape=inner_left,waterlogged=true: - appearance: facing=west,shape=inner_left,waterlogged=true - id: 21 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=west,shape=inner_right,waterlogged=true: - appearance: facing=west,shape=inner_right,waterlogged=true - id: 22 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water - facing=west,shape=straight,waterlogged=true: - appearance: facing=west,shape=straight,waterlogged=true - id: 23 - settings: - resistance: 1200.0 - burnable: false - fluid-state: water recipes#misc: default:chinese_lantern: type: shaped diff --git a/gradle.properties b/gradle.properties index 4b1e6f2a5..63049c23f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -50,7 +50,7 @@ byte_buddy_version=1.17.5 ahocorasick_version=0.6.3 snake_yaml_version=2.5 anti_grief_version=0.20 -nms_helper_version=1.0.81 +nms_helper_version=1.0.82 evalex_version=3.5.0 reactive_streams_version=1.0.4 amazon_awssdk_version=2.33.1