Posted April 23, 20214 yr So basically I want to give the player a regeneration effect when they're wearing an armour piece I made, but the onArmorTick will rapidly give the player regeneration, disabling the delay and maxing out their health almost instantly. I had this problem with the health boost effect so I made a custom potion effect for that, but the regeneration effect is harder to do. I'm wondering if I need to figure out how to create the custom regeneration effect, or if theres another bypass I can do. Heres the code I have for it (Only the iron crown and shulker crown I have difficulty with): @Override public void onArmorTick(ItemStack stack, World world, PlayerEntity player) { if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.LEATHER_CROWN.get()) && player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem().equals(Items.LEATHER_CHESTPLATE) && player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem().equals(Items.LEATHER_LEGGINGS) && player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem().equals(Items.LEATHER_BOOTS)) { player.addPotionEffect(new EffectInstance(Effects.HASTE, 15, 1, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.LEATHER_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.HASTE, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.CHAINMAIL_CROWN.get()) && player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem().equals(Items.CHAINMAIL_CHESTPLATE) && player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem().equals(Items.CHAINMAIL_LEGGINGS) && player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem().equals(Items.CHAINMAIL_BOOTS)) { player.addPotionEffect(new EffectInstance(Effects.RESISTANCE, 15, 1, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.CHAINMAIL_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.RESISTANCE, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.GOLD_CROWN.get()) && player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem().equals(Items.GOLDEN_CHESTPLATE) && player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem().equals(Items.GOLDEN_LEGGINGS) && player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem().equals(Items.GOLDEN_BOOTS)) { player.addPotionEffect(new EffectInstance(PotionList.MORE_HEALTH_EFFECT.get(), 15, 1, false, false)); player.addPotionEffect(new EffectInstance(Effects.HERO_OF_THE_VILLAGE, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.GOLD_CROWN.get())) { player.addPotionEffect(new EffectInstance(PotionList.MORE_HEALTH_EFFECT.get(), 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.IRON_CROWN.get()) && player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem().equals(Items.IRON_CHESTPLATE) && player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem().equals(Items.IRON_LEGGINGS) && player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem().equals(Items.IRON_BOOTS)) { player.addPotionEffect(new EffectInstance(Effects.REGENERATION, 15, 0, false, false)); player.addPotionEffect(new EffectInstance(Effects.SPEED, 15, 1, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.IRON_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.SPEED, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem().equals(Items.DIAMOND_CHESTPLATE) && player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem().equals(Items.DIAMOND_LEGGINGS) && player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem().equals(Items.DIAMOND_BOOTS) && player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.DIAMOND_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.CONDUIT_POWER, 15, 0, false, false)); player.addPotionEffect(new EffectInstance(Effects.DOLPHINS_GRACE, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.DIAMOND_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.CONDUIT_POWER, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.CHEST).getItem().equals(Items.NETHERITE_CHESTPLATE) && player.getItemStackFromSlot(EquipmentSlotType.LEGS).getItem().equals(Items.NETHERITE_LEGGINGS) && player.getItemStackFromSlot(EquipmentSlotType.FEET).getItem().equals(Items.NETHERITE_BOOTS) && player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.NETHERITE_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.FIRE_RESISTANCE, 15, 0, false, false)); player.addPotionEffect(new EffectInstance(Effects.STRENGTH, 15, 0, false, false)); player.addPotionEffect(new EffectInstance(Effects.NIGHT_VISION, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.NETHERITE_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.FIRE_RESISTANCE, 15, 0, false, false)); } else if (player.getItemStackFromSlot(EquipmentSlotType.HEAD).getItem().equals(ItemInit.SHULKER_CROWN.get())) { player.addPotionEffect(new EffectInstance(Effects.REGENERATION, 15, 1, false, false)); player.addPotionEffect(new EffectInstance(Effects.LEVITATION, 15, 0, false, false)); } } }
April 24, 20214 yr ...just have the effect apply per every ___ ticks. I.e. do effect if player's tick count % 40 is 0
April 25, 20223 yr On 4/23/2021 at 8:50 PM, Turtledove said: ...just have the effect apply per every ___ ticks. I.e. do effect if player's tick count % 40 is 0 THANK YOU SM ❤️ this helped me fix my issue. if(player.tickCount % 40 == 0)
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.