Résolu Effet de healt-boost réitéré a chaque tick
-
Merci a @UtopiePhysique grâce a lui j’ai trouvé la solution, je la poste donc ici:
@Override public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) { boolean isDay = world instanceof World ? (((World)world).getWorldTime() % 24000 < 13000) : true; boolean iswearingfullset = isWearingFullSet(player, TutorialItems.SOLARIUM_HELMET, TutorialItems.SOLARIUM_CHESTPLATE, TutorialItems.SOLARIUM_LEGGINGS, TutorialItems.SOLARIUM_BOOTS); boolean havePotionEffect = player.isPotionActive(Potion.getPotionById(21)); if (isDay && iswearingfullset && !havePotionEffect) // jour && fullstuff && pas l'effet = on l'ajoute player.addPotionEffect(new PotionEffect(Potion.getPotionById(21), Integer.MAX_VALUE, 4, false, false)); else if(!isDay && iswearingfullset && havePotionEffect || !iswearingfullset && havePotionEffect) // pas jour && fullstuff && l'effet || pas fullstuff && effet = on le retire player.removePotionEffect(Potion.getPotionById(21)); } @SideOnly(Side.CLIENT) private boolean isWearingFullSet(EntityPlayer player, Item helmet, Item chestplate, Item leggings, Item boots) { return player.inventory.armorItemInSlot(3) != null && player.inventory.armorItemInSlot(3).getItem() == helmet && player.inventory.armorItemInSlot(2) != null && player.inventory.armorItemInSlot(2).getItem() == chestplate && player.inventory.armorItemInSlot(1) != null && player.inventory.armorItemInSlot(1).getItem() == leggings && player.inventory.armorItemInSlot(0) != null && player.inventory.armorItemInSlot(0).getItem() == boots; }
Et voila cela fonctionne merci beaucoup
-
le dernier soucis est que graphiquement c’est pas beau, quand je retire les pièces d’armure, certains disparaissent graphiquement,d’autre non, parfois obligé de se /kill pour actualiser graphiquement