diff --git a/build.gradle b/build.gradle index 7cb380fff..752c8e4b7 100644 --- a/build.gradle +++ b/build.gradle @@ -133,6 +133,18 @@ allprojects { } } + exclusiveContent { + forRepository { + maven { + name = "quiltmc" + url = "https://maven.quiltmc.org/repository/release" + } + } + filter { + includeGroup "org.quiltmc.parsers" + } + } + exclusiveContent { forRepository { ivy { diff --git a/common/build.gradle b/common/build.gradle index 72e9b7261..de954b420 100644 --- a/common/build.gradle +++ b/common/build.gradle @@ -45,6 +45,10 @@ dependencies { transitive(false) } + // for origins compat + modCompileOnly "maven.modrinth:origins:1.11.3" + modCompileOnlyApi "com.github.apace100:apoli:2.10.3" + // needed dependencies compileOnly("com.google.code.findbugs:jsr305:3.0.2") compileOnly('com.electronwill.night-config:toml:3.6.6') diff --git a/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/ClimbTracker.java b/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/ClimbTracker.java index 3926e0fde..cafee2216 100644 --- a/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/ClimbTracker.java +++ b/common/src/main/java/org/vivecraft/client_vr/gameplay/trackers/ClimbTracker.java @@ -24,6 +24,7 @@ import org.vivecraft.client_vr.gameplay.VRPlayer; import org.vivecraft.client_vr.provider.ControllerType; import org.vivecraft.common.network.CommonNetworkHelper; +import org.vivecraft.mod_compat_vr.origins.OriginsHelper; import java.util.*; @@ -113,7 +114,7 @@ public boolean isClimbeyClimb() { } public boolean isClimbeyClimbEquipped() { - return ClientNetworking.serverAllowsClimbey && ((PlayerExtension) this.mc.player).vivecraft$isClimbeyClimbEquipped(); + return ClientNetworking.serverAllowsClimbey && (((PlayerExtension) this.mc.player).vivecraft$isClimbeyClimbEquipped() || (OriginsHelper.isLoaded() && OriginsHelper.hasClimbingPower(this.mc.player))); } private boolean canstand(BlockPos bp, LocalPlayer p) { diff --git a/common/src/main/java/org/vivecraft/mod_compat_vr/origins/OriginsHelper.java b/common/src/main/java/org/vivecraft/mod_compat_vr/origins/OriginsHelper.java new file mode 100644 index 000000000..b81d330b0 --- /dev/null +++ b/common/src/main/java/org/vivecraft/mod_compat_vr/origins/OriginsHelper.java @@ -0,0 +1,19 @@ +package org.vivecraft.mod_compat_vr.origins; + +import java.util.List; + +import org.vivecraft.client.Xplat; +import io.github.apace100.apoli.component.PowerHolderComponent; +import io.github.apace100.apoli.power.ClimbingPower; +import net.minecraft.world.entity.LivingEntity; + +public class OriginsHelper { + public static boolean isLoaded() { + return Xplat.isModLoaded("origins"); + } + + public static boolean hasClimbingPower(LivingEntity entity) { + List powers = PowerHolderComponent.getPowers(entity, ClimbingPower.class); + return !powers.isEmpty(); + } +}