From c28664e84f0190f3d77219d63e2442bc6bf2f986 Mon Sep 17 00:00:00 2001 From: C-H716 <1536152356@qq.com> Date: Fri, 22 Aug 2025 13:52:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=87=E5=89=B2=E5=88=80?= =?UTF-8?q?=E5=A4=8D=E5=88=B6=E6=96=B9=E5=9D=97=E5=90=8D=E7=A7=B0=E5=B8=A6?= =?UTF-8?q?=E6=9C=89=E7=89=B9=E6=AE=8A=E6=A0=BC=E5=BC=8F=E7=9A=84=E5=89=8D?= =?UTF-8?q?=E7=BC=80=E5=90=8E=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ae2/QuartzCuttingKnifeItemMixin.java | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/src/main/java/com/extendedae_plus/mixin/ae2/QuartzCuttingKnifeItemMixin.java b/src/main/java/com/extendedae_plus/mixin/ae2/QuartzCuttingKnifeItemMixin.java index 53b2e1f..e8ddd97 100644 --- a/src/main/java/com/extendedae_plus/mixin/ae2/QuartzCuttingKnifeItemMixin.java +++ b/src/main/java/com/extendedae_plus/mixin/ae2/QuartzCuttingKnifeItemMixin.java @@ -48,6 +48,27 @@ import static com.extendedae_plus.util.ExtendedAELogger.LOGGER; */ @Mixin(value = QuartzCuttingKnifeItem.class) public abstract class QuartzCuttingKnifeItemMixin { + /** + * 清理方块名称,移除分节符号和其他格式字符 + */ + @Unique + private String eap$cleanBlockName(String name) { + if (name == null || name.isBlank()) { + return name; + } + + // 移除 Minecraft 分节符号 (§) 及其后面的字符 + name = name.replaceAll("§[0-9a-fk-or]", ""); + + // 移除多余的空白字符 + name = name.trim(); + + // 移除常见的格式字符 + name = name.replaceAll("[\\[\\](){}]", ""); + + return name; + } + @Inject(method = "use", at = @At("HEAD"), cancellable = true) private void eap$copyNameOnShiftRightClick(Level level, Player player, InteractionHand hand, CallbackInfoReturnable> cir) { @@ -69,6 +90,9 @@ public abstract class QuartzCuttingKnifeItemMixin { // 获取方块名称 String name = eap$getBlockName(level, pos, hr.getLocation()); + + // 清理名称,移除分节符号等格式字符 + name = eap$cleanBlockName(name); // 复制到剪贴板并反馈 boolean success = eap$tryCopyToClipboard(Minecraft.getInstance(), name); @@ -95,6 +119,9 @@ public abstract class QuartzCuttingKnifeItemMixin { // 获取方块名称 String name = eap$getBlockName(level, pos, context.getClickLocation()); + + // 清理名称,移除分节符号等格式字符 + name = eap$cleanBlockName(name); // 复制到剪贴板并反馈 boolean success = eap$tryCopyToClipboard(Minecraft.getInstance(), name);