From f9592b814a98e37d1bbac9116b583ae0abdb2330 Mon Sep 17 00:00:00 2001 From: TropheusJ Date: Tue, 4 Oct 2022 22:47:54 -0400 Subject: [PATCH] works in adventure HOW WAS THIS NOT FOUND --- .../nautical/succ/mixin/ItemStackMixin.java | 29 +++++++++++++++++++ src/main/resources/succ.mixins.json | 1 + 2 files changed, 30 insertions(+) create mode 100644 src/main/java/one/devos/nautical/succ/mixin/ItemStackMixin.java diff --git a/src/main/java/one/devos/nautical/succ/mixin/ItemStackMixin.java b/src/main/java/one/devos/nautical/succ/mixin/ItemStackMixin.java new file mode 100644 index 0000000..1423c4d --- /dev/null +++ b/src/main/java/one/devos/nautical/succ/mixin/ItemStackMixin.java @@ -0,0 +1,29 @@ +package one.devos.nautical.succ.mixin; + +import net.minecraft.core.Registry; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; + +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.state.pattern.BlockInWorld; + +import one.devos.nautical.succ.Succ; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; + +@Mixin(ItemStack.class) +public abstract class ItemStackMixin { + @Shadow + public abstract boolean is(Item item); + + @Inject(method = "hasAdventureModePlaceTagForBlock", at = @At("HEAD"), cancellable = true) + private void succ$allowAdventureClimbing(Registry blockRegistry, BlockInWorld pos, CallbackInfoReturnable cir) { + if (is(Succ.SUCTION_CUP)) { + cir.setReturnValue(Boolean.TRUE); + } + } +} diff --git a/src/main/resources/succ.mixins.json b/src/main/resources/succ.mixins.json index a9fba50..5c79515 100644 --- a/src/main/resources/succ.mixins.json +++ b/src/main/resources/succ.mixins.json @@ -4,6 +4,7 @@ "package": "one.devos.nautical.succ.mixin", "compatibilityLevel": "JAVA_17", "mixins": [ + "ItemStackMixin", "ServerGamePacketListenerImplMixin", "ServerPlayerGameModeMixin", "TeleportCommandMixin",