Problème de Potion persistante…



  • Bonjour,
    Alors j'ai créé une épée qui rajoute un effet de force une fois équipé mais le problème c'est qu'une fois déséquipé l'effet perd petit à petit son second que j'ai défini mais reste bloqué à 0: 00…

    J'ai trouvé une "pseudosolution" en supprimant l'effet quand on n'a pas l'effet d'équipé malheureusement(ou plutôt logiquement...) il n'est plus possible d'avoir un effet de forge sans l'item...

    Voici la partie qui s'occupe de donner l'effet de force :

    
    @Override
        @SideOnly(Side.CLIENT)
        public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected)
        {
            super.onUpdate(stack, worldIn, entityIn, itemSlot, isSelected);
            {
                EntityPlayer playerIn = Minecraft.getMinecraft().player;
    
                if(isSelected)
                {
                    playerIn.addPotionEffect(new PotionEffect(MobEffects.STRENGTH, 04 * 20, 4, false, true));
                }
            }
        }
    
    

    j'ai cherché mais pas trouvé (surement a cause de mauvais mot-clé....) j'en reviens à venir demander de l'aide...

    Cordialement

    CyV


  • Administrateurs

    Salut,
    Ajoutes plutôt une condition du type if(!worldIn.isRemote) cela va éviter d'appliquer l'effet côté client et donc d'avoir ce genre de problème.
    Et remplace la ligne :

                EntityPlayer playerIn = Minecraft.getMinecraft().player;
    

    par :

                EntityPlayer playerIn = (EntityPlayer)entityIn;
    

    Il ne faut jamais de jamais utiliser Minecraft.getMinecraft() (ni autres classes clients) dans une fonction appelé par le serveur.



  • exacte merci…

    (le pire je pense c'est que dans une autre classe d'un autre item c'était fait.... #Boulet)

    Bref Merci bien !

    Cyv