From 7867177f946481701d16d7d676428be96c576d6d Mon Sep 17 00:00:00 2001 From: WakelessSloth56 Date: Sat, 17 Sep 2022 00:40:47 +0800 Subject: [PATCH] feat(mixin): mixin arrow to get,set effects of tipped arrow --- .../api/mixin/common/IMixinArrow.java | 7 ++++ .../arnicalib/mixin/common/MixinArrow.java | 37 +++++++++++++++++++ src/main/resources/arnicalib.mixin.json | 1 + 3 files changed, 45 insertions(+) create mode 100644 src/main/java/org/auioc/mcmod/arnicalib/api/mixin/common/IMixinArrow.java create mode 100644 src/main/java/org/auioc/mcmod/arnicalib/mixin/common/MixinArrow.java diff --git a/src/main/java/org/auioc/mcmod/arnicalib/api/mixin/common/IMixinArrow.java b/src/main/java/org/auioc/mcmod/arnicalib/api/mixin/common/IMixinArrow.java new file mode 100644 index 00000000..3ea562bf --- /dev/null +++ b/src/main/java/org/auioc/mcmod/arnicalib/api/mixin/common/IMixinArrow.java @@ -0,0 +1,7 @@ +package org.auioc.mcmod.arnicalib.api.mixin.common; + +import org.auioc.mcmod.arnicalib.api.game.entity.ITippedArrow; + +public interface IMixinArrow extends ITippedArrow { + +} diff --git a/src/main/java/org/auioc/mcmod/arnicalib/mixin/common/MixinArrow.java b/src/main/java/org/auioc/mcmod/arnicalib/mixin/common/MixinArrow.java new file mode 100644 index 00000000..1cf9151a --- /dev/null +++ b/src/main/java/org/auioc/mcmod/arnicalib/mixin/common/MixinArrow.java @@ -0,0 +1,37 @@ +package org.auioc.mcmod.arnicalib.mixin.common; + +import java.util.Set; +import org.auioc.mcmod.arnicalib.api.mixin.common.IMixinArrow; +import org.spongepowered.asm.mixin.Final; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.Shadow; +import net.minecraft.world.effect.MobEffectInstance; +import net.minecraft.world.entity.projectile.Arrow; +import net.minecraft.world.item.alchemy.Potion; + +@Mixin(value = Arrow.class) +public class MixinArrow implements IMixinArrow { + + @Shadow + private Potion potion; + + @Shadow + @Final + private Set effects; + + @Override + public Set getEffects() { + return this.effects; + } + + @Override + public Potion getPotion() { + return this.potion; + } + + @Override + public void setPotion(Potion potion) { + this.potion = potion; + } + +} diff --git a/src/main/resources/arnicalib.mixin.json b/src/main/resources/arnicalib.mixin.json index 781d0cb0..db4aec2d 100644 --- a/src/main/resources/arnicalib.mixin.json +++ b/src/main/resources/arnicalib.mixin.json @@ -8,6 +8,7 @@ "common.MixinCommandSourceStack", "common.MixinCreativeModeTab", "common.MixinItemStack", + "common.MixinArrow", "server.MixinServerLifecycleHooks", "server.MixinLootContext", "server.MixinServerPlayer",