From b088134311b0022dec7a201c8bb410a7db042d8b Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Sat, 25 Oct 2025 17:32:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=8B=E4=BB=B6=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=A3=B0=E9=9F=B3=E8=A2=AB=E6=92=AD=E6=94=BE=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bukkit/plugin/user/BukkitServerPlayer.java | 17 +++++++++++------ common-files/src/main/resources/config.yml | 3 ++- .../core/pack/AbstractPackManager.java | 4 ++-- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java index c52b0397e..7137b22a5 100644 --- a/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java +++ b/bukkit/src/main/java/net/momirealms/craftengine/bukkit/plugin/user/BukkitServerPlayer.java @@ -770,6 +770,7 @@ public class BukkitServerPlayer extends Player { // can break now if (this.miningProgress >= 1f) { + boolean breakResult = false; // for simplified adventure break, switch mayBuild temporarily if (isAdventureMode() && Config.simplifyAdventureBreakCheck()) { // check the appearance state @@ -777,20 +778,24 @@ public class BukkitServerPlayer extends Player { // Error might occur so we use try here try { FastNMS.INSTANCE.field$Player$mayBuild(serverPlayer, true); - CoreReflections.method$ServerPlayerGameMode$destroyBlock.invoke(gameMode, blockPos); + breakResult = (boolean) CoreReflections.method$ServerPlayerGameMode$destroyBlock.invoke(gameMode, blockPos); } finally { FastNMS.INSTANCE.field$Player$mayBuild(serverPlayer, false); } } } else { // normal break check - CoreReflections.method$ServerPlayerGameMode$destroyBlock.invoke(gameMode, blockPos); + breakResult = (boolean) CoreReflections.method$ServerPlayerGameMode$destroyBlock.invoke(gameMode, blockPos); } // send break particle + (removed sounds) - sendPacket(FastNMS.INSTANCE.constructor$ClientboundLevelEventPacket(WorldEvents.BLOCK_BREAK_EFFECT, blockPos, customState.customBlockState().registryId(), false), false); - this.lastSuccessfulBreak = currentTick; - this.destroyPos = null; - this.setIsDestroyingBlock(false, false); + if (breakResult) { + sendPacket(FastNMS.INSTANCE.constructor$ClientboundLevelEventPacket(WorldEvents.BLOCK_BREAK_EFFECT, blockPos, customState.customBlockState().registryId(), false), false); + this.lastSuccessfulBreak = currentTick; + this.destroyPos = null; + this.setIsDestroyingBlock(false, false); + } else { + this.setIsDestroyingBlock(true, true); + } } } } diff --git a/common-files/src/main/resources/config.yml b/common-files/src/main/resources/config.yml index 7a0fdfab9..27abf21ff 100644 --- a/common-files/src/main/resources/config.yml +++ b/common-files/src/main/resources/config.yml @@ -96,7 +96,8 @@ resource-pack: # .png texture: enable: true - exclude: [] + exclude: + - pack.png # .json / .mcmeta json: enable: true diff --git a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java index 9fe0693b2..a0f6da658 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java +++ b/core/src/main/java/net/momirealms/craftengine/core/pack/AbstractPackManager.java @@ -965,7 +965,7 @@ public abstract class AbstractPackManager implements PackManager { } } - { + if (Config.optimizeJson()) { this.plugin.logger().info("> Optimizing json files..."); AtomicLong previousBytes = new AtomicLong(0L); AtomicLong afterBytes = new AtomicLong(0L); @@ -1036,7 +1036,7 @@ public abstract class AbstractPackManager implements PackManager { this.plugin.logger().info("□ Before/After/Ratio: " + formatSize(originalSize) + "/" + formatSize(optimizedSize) + "/" + String.format("%.2f%%", compressionRatio)); } - { + if (Config.optimizeTexture()) { this.plugin.logger().info("> Optimizing textures..."); AtomicLong previousBytes = new AtomicLong(0L); AtomicLong afterBytes = new AtomicLong(0L);