diff --git a/src/main/java/org/auioc/mcmod/arnicalib/game/mixin/server/IMixinEyeOfEnder.java b/src/main/java/org/auioc/mcmod/arnicalib/game/mixin/server/IMixinEyeOfEnder.java deleted file mode 100644 index 0db60a09..00000000 --- a/src/main/java/org/auioc/mcmod/arnicalib/game/mixin/server/IMixinEyeOfEnder.java +++ /dev/null @@ -1,12 +0,0 @@ -package org.auioc.mcmod.arnicalib.game.mixin.server; - -import java.util.Random; -import java.util.function.Function; - -public interface IMixinEyeOfEnder { - - void setSurvivable(boolean survivable); - - void setSurvivable(Function survivable); - -} diff --git a/src/main/java/org/auioc/mcmod/arnicalib/mixin/server/MixinEnderEyeItem.java b/src/main/java/org/auioc/mcmod/arnicalib/mixin/server/MixinEnderEyeItem.java deleted file mode 100644 index 1f96c26b..00000000 --- a/src/main/java/org/auioc/mcmod/arnicalib/mixin/server/MixinEnderEyeItem.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.auioc.mcmod.arnicalib.mixin.server; - -import org.auioc.mcmod.arnicalib.game.mixin.server.IMixinEyeOfEnder; -import org.auioc.mcmod.arnicalib.server.event.AHServerEventFactory; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; -import net.minecraft.core.BlockPos; -import net.minecraft.server.level.ServerLevel; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.InteractionHand; -import net.minecraft.world.InteractionResultHolder; -import net.minecraft.world.entity.player.Player; -import net.minecraft.world.entity.projectile.EyeOfEnder; -import net.minecraft.world.item.EnderEyeItem; -import net.minecraft.world.item.ItemStack; -import net.minecraft.world.level.Level; -import net.minecraft.world.phys.HitResult; - -@Mixin(value = EnderEyeItem.class) -public abstract class MixinEnderEyeItem { - - @SuppressWarnings("rawtypes") - // @org.spongepowered.asm.mixin.Debug(export = true, print = true) - @Inject( - method = "Lnet/minecraft/world/item/EnderEyeItem;use(Lnet/minecraft/world/level/Level;Lnet/minecraft/world/entity/player/Player;Lnet/minecraft/world/InteractionHand;)Lnet/minecraft/world/InteractionResultHolder;", - at = @At( - value = "INVOKE", - target = "Lnet/minecraft/world/level/Level;addFreshEntity(Lnet/minecraft/world/entity/Entity;)Z", - shift = At.Shift.BEFORE - ), - locals = LocalCapture.CAPTURE_FAILHARD, - require = 1, - allow = 1 - ) - private void use( - Level p_41184_, Player p_41185_, InteractionHand p_41186_, - CallbackInfoReturnable cir, - ItemStack itemstack, HitResult hitresult, ServerLevel serverlevel, BlockPos blockpos, EyeOfEnder eyeofender - ) { - ((IMixinEyeOfEnder) eyeofender).setSurvivable(AHServerEventFactory.onEyeOfEnderSetSurvivable((ServerPlayer) p_41185_, eyeofender)); - } - -} diff --git a/src/main/java/org/auioc/mcmod/arnicalib/mixin/server/MixinEyeOfEnder.java b/src/main/java/org/auioc/mcmod/arnicalib/mixin/server/MixinEyeOfEnder.java deleted file mode 100644 index fdf22895..00000000 --- a/src/main/java/org/auioc/mcmod/arnicalib/mixin/server/MixinEyeOfEnder.java +++ /dev/null @@ -1,49 +0,0 @@ -package org.auioc.mcmod.arnicalib.mixin.server; - -import java.util.Random; -import java.util.function.Function; -import org.auioc.mcmod.arnicalib.game.mixin.server.IMixinEyeOfEnder; -import org.objectweb.asm.Opcodes; -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.Redirect; -import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntityType; -import net.minecraft.world.entity.projectile.EyeOfEnder; -import net.minecraft.world.level.Level; - -@Mixin(value = EyeOfEnder.class) -public abstract class MixinEyeOfEnder extends Entity implements IMixinEyeOfEnder { - - public MixinEyeOfEnder(EntityType p_19870_, Level p_19871_) { - super(p_19870_, p_19871_); - } - - @Shadow - private boolean surviveAfterDeath; - - @Override - public void setSurvivable(boolean survivable) { - this.surviveAfterDeath = survivable; - } - - @Override - public void setSurvivable(Function survivable) { - this.surviveAfterDeath = survivable.apply(this.random); - } - - @Redirect( - method = "Lnet/minecraft/world/entity/projectile/EyeOfEnder;signalTo(Lnet/minecraft/core/BlockPos;)V", - at = @At( - value = "FIELD", - target = "Lnet/minecraft/world/entity/projectile/EyeOfEnder;surviveAfterDeath:Z", - opcode = Opcodes.PUTFIELD - ), - require = 1, - allow = 1 - ) - private void ignorePutFiled_surviveAfterDeath(EyeOfEnder e, boolean z) {} - -} - diff --git a/src/main/java/org/auioc/mcmod/arnicalib/server/event/AHServerEventFactory.java b/src/main/java/org/auioc/mcmod/arnicalib/server/event/AHServerEventFactory.java index 3661d452..95498558 100644 --- a/src/main/java/org/auioc/mcmod/arnicalib/server/event/AHServerEventFactory.java +++ b/src/main/java/org/auioc/mcmod/arnicalib/server/event/AHServerEventFactory.java @@ -1,18 +1,13 @@ package org.auioc.mcmod.arnicalib.server.event; import static org.auioc.mcmod.arnicalib.ArnicaLib.LOGGER; -import java.util.Random; -import java.util.function.Function; import org.apache.logging.log4j.Marker; import org.auioc.mcmod.arnicalib.base.log.LogUtil; import org.auioc.mcmod.arnicalib.game.chat.TextUtils; -import org.auioc.mcmod.arnicalib.server.event.impl.EyeOfEnderSurvivableEvent; import org.auioc.mcmod.arnicalib.server.event.impl.ServerLoginEvent; import net.minecraft.network.Connection; import net.minecraft.network.protocol.handshake.ClientIntentionPacket; import net.minecraft.network.protocol.login.ClientboundLoginDisconnectPacket; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.projectile.EyeOfEnder; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.eventbus.api.IEventBus; @@ -39,10 +34,4 @@ public static boolean onServerLogin(final ClientIntentionPacket packet, final Co return false; } - public static Function onEyeOfEnderSetSurvivable(ServerPlayer player, EyeOfEnder eye) { - EyeOfEnderSurvivableEvent event = new EyeOfEnderSurvivableEvent(player, eye); - BUS.post(event); - return event.getSurvivable(); - } - } diff --git a/src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/EyeOfEnderSurvivableEvent.java b/src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/EyeOfEnderSurvivableEvent.java deleted file mode 100644 index ab67d36b..00000000 --- a/src/main/java/org/auioc/mcmod/arnicalib/server/event/impl/EyeOfEnderSurvivableEvent.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.auioc.mcmod.arnicalib.server.event.impl; - -import java.util.Random; -import java.util.function.Function; -import org.auioc.mcmod.arnicalib.game.event.ServerPlayerEvent; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.projectile.EyeOfEnder; - -public class EyeOfEnderSurvivableEvent extends ServerPlayerEvent { - - private final EyeOfEnder eye; - private Function survivable; - - public EyeOfEnderSurvivableEvent(ServerPlayer player, EyeOfEnder eye) { - super(player); - this.eye = eye; - this.survivable = (random) -> (random.nextInt(5) > 0); - } - - public EyeOfEnder getEye() { - return this.eye; - } - - public Function getSurvivable() { - return this.survivable; - } - - public void setSurvivable(Function survivable) { - this.survivable = survivable; - } - - public void setSurvivable(boolean survivable) { - this.survivable = (random) -> survivable; - } - -} diff --git a/src/main/resources/arnicalib.mixin.json b/src/main/resources/arnicalib.mixin.json index 3c2d1de9..9f14e05c 100644 --- a/src/main/resources/arnicalib.mixin.json +++ b/src/main/resources/arnicalib.mixin.json @@ -9,9 +9,7 @@ "common.MixinArrow", "common.MixinEnchantment", "server.MixinServerLifecycleHooks", - "server.MixinLootContext", - "server.MixinEyeOfEnder", - "server.MixinEnderEyeItem" + "server.MixinLootContext" ], "client": [], "server": [],