From 47ec1af5c1352525044cb4ae7a164894c1012391 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Tue, 17 Feb 2026 13:26:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=89=88=E6=9C=AC=20v1.1.0?= =?UTF-8?q?=20->=20v1.2.0=20=E4=BF=AE=E5=A4=8DAPI=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gradle.properties | 2 +- .../api/type/util/ILeashHelper.java | 17 ++++----------- .../superleadrope/compat/jei/JEIPlugin.java | 5 +++++ .../config/LeashConfigManager.java | 21 +++++++++---------- 4 files changed, 20 insertions(+), 25 deletions(-) diff --git a/gradle.properties b/gradle.properties index b472ae4..4d7c948 100644 --- a/gradle.properties +++ b/gradle.properties @@ -59,7 +59,7 @@ mod_name=Super Lead Rope # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=GPLv3 # The mod version. See https://semver.org/ -mod_version=1.1.0 +mod_version=1.2.0 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/top/r3944realms/superleadrope/api/type/util/ILeashHelper.java b/src/main/java/top/r3944realms/superleadrope/api/type/util/ILeashHelper.java index 2d5c059..cd4096d 100644 --- a/src/main/java/top/r3944realms/superleadrope/api/type/util/ILeashHelper.java +++ b/src/main/java/top/r3944realms/superleadrope/api/type/util/ILeashHelper.java @@ -24,6 +24,7 @@ import top.r3944realms.superleadrope.api.SuperLeadRopeApi; import top.r3944realms.superleadrope.api.type.capabilty.ILeashData; import top.r3944realms.superleadrope.api.type.capabilty.LeashInfo; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.UUID; @@ -211,7 +212,7 @@ public interface ILeashHelper { * @return the boolean */ default boolean isHoldingLeash(Entity entity) { - return getAllLeash().stream().anyMatch(i -> i.isLeashedBy(entity)); + return getAllLeash().stream().anyMatch(i -> Objects.equals(i.self(), entity)); } /** @@ -221,17 +222,7 @@ public interface ILeashHelper { * @return the boolean */ default boolean isHoldingLeash(UUID uuid) { - return getAllLeash().stream().anyMatch(i -> i.isLeashedBy(uuid)); - } - - /** - * 检查是否持有特定实体的拴绳 - * - * @param blockPos the block pos - * @return the boolean - */ - default boolean isHoldingLeash(BlockPos blockPos) { - return getAllLeash().stream().anyMatch(i -> i.isLeashedBy(blockPos)); + return getAllLeash().stream().anyMatch(i -> Objects.equals(i.self().getUUID(), uuid)); } /** @@ -267,7 +258,7 @@ public interface ILeashHelper { if (SuperLeadRopeApi.isLeashable(target)) { if (!isHoldingLeash(target)) { return false; - } else return unleashEntity(target.getUUID()); + } else return unleashEntity(getHolderEntity().getUUID()); } return false; } diff --git a/src/main/java/top/r3944realms/superleadrope/compat/jei/JEIPlugin.java b/src/main/java/top/r3944realms/superleadrope/compat/jei/JEIPlugin.java index a935c80..d4d656e 100644 --- a/src/main/java/top/r3944realms/superleadrope/compat/jei/JEIPlugin.java +++ b/src/main/java/top/r3944realms/superleadrope/compat/jei/JEIPlugin.java @@ -28,6 +28,11 @@ import top.r3944realms.superleadrope.SuperLeadRope; public class JEIPlugin implements IModPlugin { private static final ResourceLocation UID = new ResourceLocation(SuperLeadRope.MOD_ID, "jei_plugin"); + /** + * Gets plugin uid. + * + * @return the plugin uid + */ @Override public @NotNull ResourceLocation getPluginUid() { return UID; diff --git a/src/main/java/top/r3944realms/superleadrope/config/LeashConfigManager.java b/src/main/java/top/r3944realms/superleadrope/config/LeashConfigManager.java index 333dfbf..3d55e74 100644 --- a/src/main/java/top/r3944realms/superleadrope/config/LeashConfigManager.java +++ b/src/main/java/top/r3944realms/superleadrope/config/LeashConfigManager.java @@ -29,7 +29,6 @@ import top.r3944realms.superleadrope.network.NetworkHandler; import top.r3944realms.superleadrope.network.toClient.CommonConfigHashInformPacket; import java.util.*; -import java.util.concurrent.ConcurrentHashMap; import java.util.function.Predicate; import java.util.regex.Matcher; @@ -75,13 +74,13 @@ public class LeashConfigManager { */ public volatile static int cacheHash = -1; // ========== 偏移映射 ========== - private final Map entityHolderMap = new ConcurrentHashMap<>(); - private final Map tagHolderMap = new ConcurrentHashMap<>(); - private final Map modHolderMap = new ConcurrentHashMap<>(); + private final Map entityHolderMap = new TreeMap<>(); + private final Map tagHolderMap = new TreeMap<>(); + private final Map modHolderMap = new TreeMap<>(); - private final Map entityLeashMap = new ConcurrentHashMap<>(); - private final Map tagLeashMap = new ConcurrentHashMap<>(); - private final Map modLeashMap = new ConcurrentHashMap<>(); + private final Map entityLeashMap = new TreeMap<>(); + private final Map tagLeashMap = new TreeMap<>(); + private final Map modLeashMap = new TreeMap<>(); // ========== 缓存配置 ========== private volatile List teleportWhitelistCache = Collections.emptyList(); @@ -110,9 +109,9 @@ public class LeashConfigManager { // ================== 偏移解析 ================== private @NotNull @Unmodifiable Map> parseOffsetList(@NotNull List offsetConfigs) { - Map entityMap = new HashMap<>(); - Map tagMap = new HashMap<>(); - Map modMap = new HashMap<>(); + Map entityMap = new TreeMap<>(); + Map tagMap = new TreeMap<>(); + Map modMap = new TreeMap<>(); for (String config : offsetConfigs) { Matcher matcher = OFFSET_PATTERN.matcher(config); @@ -566,7 +565,7 @@ public class LeashConfigManager { Map tagMap, Map modMap) { - Map> offsetToTargets = new HashMap<>(); + Map> offsetToTargets = new LinkedHashMap<>(); // 收集entity映射 for (Map.Entry entry : entityMap.entrySet()) {