From b1179c576d0984ffbf85a7dc66bef08d6f88033e Mon Sep 17 00:00:00 2001 From: jhqwqmc Date: Fri, 12 Dec 2025 13:40:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8C=89=E9=92=AE=E8=A1=8C?= =?UTF-8?q?=E4=B8=BA=E5=9C=A81.21.11=E8=A7=A6=E5=8F=91=E6=B8=B8=E6=88=8F?= =?UTF-8?q?=E4=BA=8B=E4=BB=B6=E7=9A=84=E6=97=B6=E5=80=99=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/block/behavior/ButtonBlockBehavior.java | 4 ++-- .../bukkit/plugin/reflection/minecraft/MGameEvents.java | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java index 956830c86..cacffd9f0 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/block/behavior/ButtonBlockBehavior.java @@ -148,7 +148,7 @@ public class ButtonBlockBehavior extends BukkitBlockBehavior { updateNeighbours(thisBlock, blockState, level, pos); playSound(level, pos, on); Object gameEvent = VersionHelper.isOrAbove1_20_5() - ? FastNMS.INSTANCE.method$Holder$direct(on ? MGameEvents.BLOCK_ACTIVATE : MGameEvents.BLOCK_DEACTIVATE) + ? on ? MGameEvents.BLOCK_ACTIVATE$holder : MGameEvents.BLOCK_DEACTIVATE$holder : on ? MGameEvents.BLOCK_ACTIVATE : MGameEvents.BLOCK_DEACTIVATE; FastNMS.INSTANCE.method$LevelAccessor$gameEvent(level, arrow, gameEvent, pos); } @@ -192,7 +192,7 @@ public class ButtonBlockBehavior extends BukkitBlockBehavior { FastNMS.INSTANCE.method$LevelWriter$setBlock(level, pos, state.with(this.poweredProperty, true).customBlockState().literalObject(), UpdateOption.UPDATE_ALL.flags()); FastNMS.INSTANCE.method$ScheduledTickAccess$scheduleBlockTick(level, pos, thisBlock, this.ticksToStayPressed); playSound(level, pos, true); - Object gameEvent = VersionHelper.isOrAbove1_20_5() ? FastNMS.INSTANCE.method$Holder$direct(MGameEvents.BLOCK_ACTIVATE) : MGameEvents.BLOCK_ACTIVATE; + Object gameEvent = VersionHelper.isOrAbove1_20_5() ? MGameEvents.BLOCK_ACTIVATE$holder : MGameEvents.BLOCK_ACTIVATE; FastNMS.INSTANCE.method$LevelAccessor$gameEvent(level, player, gameEvent, pos); } diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/MGameEvents.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/MGameEvents.java index fad931574..736971f0c 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/MGameEvents.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/reflection/minecraft/MGameEvents.java @@ -6,10 +6,17 @@ public final class MGameEvents { private MGameEvents() {} public static final Object BLOCK_ACTIVATE = getById("block_activate"); + public static final Object BLOCK_ACTIVATE$holder = getHolderById("block_activate"); public static final Object BLOCK_DEACTIVATE = getById("block_deactivate"); + public static final Object BLOCK_DEACTIVATE$holder = getHolderById("block_deactivate"); private static Object getById(String id) { Object rl = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", id); return FastNMS.INSTANCE.method$Registry$getValue(MBuiltInRegistries.GAME_EVENT, rl); } + + private static Object getHolderById(String id) { + Object rl = FastNMS.INSTANCE.method$ResourceLocation$fromNamespaceAndPath("minecraft", id); + return FastNMS.INSTANCE.method$Registry$getHolderByResourceLocation(MBuiltInRegistries.GAME_EVENT, rl).orElseThrow(); + } }