SwimmingTuna Posted January 26 Posted January 26 Hey there, currently trying to figure out how to make it so an item that gives potion effects can't have those potion effects cured by milk. I don't think I can add setCurativeItems in the item class (1st piece of code) so I tried to instead make my own potion effect which just has those 3 effects (2nd piece of code) and tried to make it so that it has no curative items. It doesn't work and I'm not sure how I should go about doing this other than trying to remake the potion effects and setting it so it cant be cured by milk. Any advice would be appreciated thank you. public class Spectator9Potion extends Item{ public Spectator9Potion(Properties pProperties) { super(pProperties); } @Override public InteractionResultHolder<ItemStack> use(Level level,Player pPlayer,InteractionHand hand) { ItemStack itemStack = pPlayer.getItemInHand(hand); if (!level.isClientSide()) { pPlayer.getCapability(SpectatorSequenceProvider.SPECTATORSEQUENCE).ifPresent(spectatorSequence -> { if (spectatorSequence.getSpectatorSequence() <= 0){ spectatorSequence.addSpectatorSequence(1);}}); level.playSound(null,pPlayer.getOnPos(), SoundEvents.PORTAL_AMBIENT, SoundSource.PLAYERS,0.5f,level.random.nextFloat() * 0.1F + 0.9F); pPlayer.sendSystemMessage(Component.literal("Worked")); pPlayer.addEffect(new MobEffectInstance(ModEffects.BLINDNESS.get(),1,1)); if (!pPlayer.getAbilities().instabuild) { itemStack.shrink(1); }} return super.use(level,pPlayer,hand);}} ----------------------------------------------------------- public class AdvancementEffect extends MobEffect { public AdvancementEffect(MobEffectCategory mobEffectCategory, int color) { super(mobEffectCategory,color);} @Override public void applyEffectTick(LivingEntity pEntity, int pAmplifier) { if (!pEntity.level().isClientSide()) { pEntity.addEffect(new MobEffectInstance(MobEffects.BLINDNESS, 120)); pEntity.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SLOWDOWN,120,3)); pEntity.addEffect(new MobEffectInstance(MobEffects.CONFUSION,120,1)); } super.applyEffectTick(pEntity, pAmplifier); } @Override public List<ItemStack> getCurativeItems() { return List.of(null); } @Override public boolean isDurationEffectTick(int pDuration,int pAmplifier) { return true; } } Thank you! Quote
vemerion Posted January 26 Posted January 26 I think something like this should work: var effect = new MobEffectInstance(ModEffects.BLINDNESS.get(),1,1); effect.setCurativeItems(List.of()); pEntity.addEffect(effect); Quote
SwimmingTuna Posted January 26 Author Posted January 26 1 hour ago, vemerion said: I think something like this should work: var effect = new MobEffectInstance(ModEffects.BLINDNESS.get(),1,1); effect.setCurativeItems(List.of()); pEntity.addEffect(effect); Yep, this worked perfectly, really appreciated because I had no idea where to go. Really appreciated 1 Quote
vemerion Posted January 27 Posted January 27 8 hours ago, SwimmingTuna said: Yep, this worked perfectly, really appreciated because I had no idea where to go. Really appreciated Glad it worked, happy to help! Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.