Jump to content

Help with removing/setting curative items for when an item that gives potion effects is used.


Recommended Posts

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); }


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){


level.playSound(null,pPlayer.getOnPos(), SoundEvents.PORTAL_AMBIENT, SoundSource.PLAYERS,0.5f,level.random.nextFloat() * 0.1F + 0.9F);


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) {


@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!


Link to comment
Share on other sites

1 hour ago, vemerion said:

I think something like this should work:

var effect = new MobEffectInstance(ModEffects.BLINDNESS.get(),1,1);


Yep, this worked perfectly, really appreciated because I had no idea where to go. Really appreciated :)

  • Like 1
Link to comment
Share on other sites

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.

Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use.