From 186103e0c5e81cd1e44e19b1dc7d7ea4705fa4f0 Mon Sep 17 00:00:00 2001 From: 3944Realms Date: Sun, 7 Dec 2025 19:42:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=88=E6=9C=AC=E6=9B=B4=E6=96=B0=E5=88=B00.?= =?UTF-8?q?0.0.9=20=E5=AF=B9WayStone=E5=81=9A=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.gradle | 2 ++ gradle.properties | 2 +- .../superleadrope/SuperLeadRope.java | 2 ++ .../superleadrope/compat/WayStoneCompat.java | 26 +++++++++++++++++++ 4 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/main/java/top/r3944realms/superleadrope/compat/WayStoneCompat.java diff --git a/build.gradle b/build.gradle index e021de0..fa02b2b 100644 --- a/build.gradle +++ b/build.gradle @@ -165,6 +165,8 @@ dependencies { modImplementation("blank:curtain-1.20.1:1.3.2") modImplementation("dev.kosmx.player-anim:player-animation-lib-forge:${player_anim_version}") modImplementation("curse.maven:bendy-lib-623373:4550371") + modImplementation("curse.maven:waystones-245755:6856603") + modImplementation("curse.maven:balm-531761:7087245") // modRuntimeOnly("curse.maven:luckperms-431733:4738950") modImplementation("software.bernie.geckolib:geckolib-forge-${minecraft_version}:${geckolib_version}") implementation("com.eliotlash.mclib:mclib:20") diff --git a/gradle.properties b/gradle.properties index edcc65e..8c818cc 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=0.0.0.8 +mod_version=0.0.0.9 # 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/SuperLeadRope.java b/src/main/java/top/r3944realms/superleadrope/SuperLeadRope.java index bc695aa..9a46cc5 100644 --- a/src/main/java/top/r3944realms/superleadrope/SuperLeadRope.java +++ b/src/main/java/top/r3944realms/superleadrope/SuperLeadRope.java @@ -23,6 +23,7 @@ import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import top.r3944realms.superleadrope.compat.WayStoneCompat; import top.r3944realms.superleadrope.config.LeashCommonConfig; import top.r3944realms.superleadrope.core.register.SLPEntityTypes; import top.r3944realms.superleadrope.core.register.SLPItems; @@ -68,6 +69,7 @@ public class SuperLeadRope { ConfigUtil.createFile(new String[]{c}); ModLoadingContext modLoadingContext = ModLoadingContext.get(); ConfigUtil.registerConfig(modLoadingContext, ModConfig.Type.COMMON, LeashCommonConfig.SPEC, c, "leash"); + WayStoneCompat.init(); } /** diff --git a/src/main/java/top/r3944realms/superleadrope/compat/WayStoneCompat.java b/src/main/java/top/r3944realms/superleadrope/compat/WayStoneCompat.java new file mode 100644 index 0000000..44b37ba --- /dev/null +++ b/src/main/java/top/r3944realms/superleadrope/compat/WayStoneCompat.java @@ -0,0 +1,26 @@ +package top.r3944realms.superleadrope.compat; + +import net.blay09.mods.waystones.api.WaystoneTeleportEvent; +import net.minecraft.world.entity.Entity; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.ModList; +import org.jetbrains.annotations.NotNull; +import top.r3944realms.superleadrope.api.type.util.ILeashHelper; +import top.r3944realms.superleadrope.api.workspace.Services; + +import java.util.Set; + +public class WayStoneCompat { + public final static boolean isModLoaded = ModList.get().isLoaded("waystones"); + public static void init() { + if (isModLoaded) { + MinecraftForge.EVENT_BUS.addListener(WayStoneCompat::onWayStoneTeleport); + } + } + public static void onWayStoneTeleport(WaystoneTeleportEvent.@NotNull Pre event) { + Entity entity = event.getContext().getEntity(); + ILeashHelper.IHolder holderHelper = Services.WORK_SPACE.getLeashHelper().getHolderHelper(entity); + Set allLeashedEntities = holderHelper.getAllLeashedEntities(); + allLeashedEntities.forEach(event::addAdditionalEntity); + } +}