Problème d'enchantements d'arc dans les kits essentials



  • Bonjour, j'ai crée un arc modée en rubis !
    il fonctionne bien je peux crée des kits essentials avec mais quand je l'enchante l'enchantement a l'air de fonctionner je peux crée le kit mais quand je fait /kit arc une erreur apparait me disais que le kit est mal configurer et j'ai se message dans la console : [20:31:03 WARN]: [Essentials] Enchantment ARROW_DAMAGE: Specified enchantment cannot be applied to this itemstack

    ma classe arc :

    package fr.xenofight.mod.item;
    
    import java.util.List;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import fr.xenofight.mod.init.ItemMod;
    import net.minecraft.client.renderer.texture.IIconRegister;
    import net.minecraft.enchantment.Enchantment;
    import net.minecraft.enchantment.EnchantmentHelper;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraft.entity.projectile.EntityArrow;
    import net.minecraft.init.Items;
    import net.minecraft.item.EnumAction;
    import net.minecraft.item.Item;
    import net.minecraft.item.ItemStack;
    import net.minecraft.util.IIcon;
    import net.minecraft.world.World;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.event.entity.player.ArrowLooseEvent;
    import net.minecraftforge.event.entity.player.ArrowNockEvent;
    
    public class RubisBow extends Item{
    
     public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"};
       @SideOnly(Side.CLIENT)
       private IIcon[] iconArray;
       private static final String __OBFID = "CL_00001777";
    
       public RubisBow(int dura)
       {
           this.maxStackSize = 1;
           this.setMaxDamage(dura);
           this.setFull3D();
       }
    
       /**
        * called when the player releases the use item button. Args: itemstack, world, entityplayer, itemInUseCount
        */
       public void onPlayerStoppedUsing(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer, int par4)
       {
           int j = this.getMaxItemUseDuration(par1ItemStack) - par4;
    
           ArrowLooseEvent event = new ArrowLooseEvent(par3EntityPlayer, par1ItemStack, j);
           MinecraftForge.EVENT_BUS.post(event);
           if (event.isCanceled())
           {
               return;
           }
           j = event.charge;
    
           boolean flag = par3EntityPlayer.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, par1ItemStack) > 0;
    
           if (flag || par3EntityPlayer.inventory.hasItem(Items.arrow))
           {
               float f = (float)j / 16.0F;
               f = (f * f + f * 2.0F) / 3.0F;
    
               if ((double)f < 0.1D)
               {
                   return;
               }
    
               if (f > 1.0F)
               {
                   f = 1.0F;
               }
    
               EntityArrow entityarrow = new EntityArrow(par2World, par3EntityPlayer, f * 2.0F);
    
               if (f == 1.0F)
               {
                   entityarrow.setIsCritical(true);
               }
    
               int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, par1ItemStack);
    
               if (k > 0)
               {
                   entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D);
               }
    
               int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, par1ItemStack);
    
               if (l > 0)
               {
                   entityarrow.setKnockbackStrength(l);
               }
    
               if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, par1ItemStack) > 0)
               {
                   entityarrow.setFire(110);
               }
    
               par1ItemStack.damageItem(1, par3EntityPlayer);
               par2World.playSoundAtEntity(par3EntityPlayer, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F);
    
               if (flag)
               {
                   entityarrow.canBePickedUp = 2;
               }
               else
               {
                   par3EntityPlayer.inventory.consumeInventoryItem(Items.arrow);
               }
    
               if (!par2World.isRemote)
               {
                   par2World.spawnEntityInWorld(entityarrow);
               }
           }
       }
    
       public ItemStack onEaten(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
       {
           return par1ItemStack;
       }
    
       /**
        * How long it takes to use or consume an item
        */
       public int getMaxItemUseDuration(ItemStack par1ItemStack)
       {
           return 8000; //temps avant chaque utilisation
       }
    
       /**
        * returns the action that specifies what animation to play when the items is being used
        */
       public EnumAction getItemUseAction(ItemStack par1ItemStack)
       {
           return EnumAction.bow;
       }
    
       /**
        * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
        */
       public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer)
       {
           ArrowNockEvent event = new ArrowNockEvent(par3EntityPlayer, par1ItemStack);
           MinecraftForge.EVENT_BUS.post(event);
           if (event.isCanceled())
           {
               return event.result;
           }
    
           if (par3EntityPlayer.capabilities.isCreativeMode || par3EntityPlayer.inventory.hasItem(Items.arrow))
           {
               par3EntityPlayer.setItemInUse(par1ItemStack, this.getMaxItemUseDuration(par1ItemStack));
           }
    
           return par1ItemStack;
       }
    
       /**
        * Return the enchantability factor of the item, most of the time is based on material.
        */
       public int getItemEnchantability()
       {
           return 1;
       }
    
       @SideOnly(Side.CLIENT)
       public void registerIcons(IIconRegister par1IconRegister)
       {
           this.itemIcon = par1IconRegister.registerIcon(this.getIconString() + "_standby");
           this.iconArray = new IIcon[bowPullIconNameArray.length];
    
           for (int i = 0; i < this.iconArray.length; ++i)
           {
               this.iconArray* = par1IconRegister.registerIcon(this.getIconString() + "_" + bowPullIconNameArray*);
           }
       }
    
       /**
        * used to cycle through icons based on their used duration, i.e. for the bow
        */
       @Override
       public IIcon getIcon(ItemStack stack, int renderPass, EntityPlayer player, ItemStack usingItem, int useRemaining)
       {
       if(usingItem != null && usingItem.getItem().equals(this))
       {
       int k = usingItem.getMaxItemUseDuration() - useRemaining;
       if(k >= 18)
       return iconArray[2];
       if(k > 13)
       return iconArray[1];
       if(k > 0)
       return iconArray[0];
       }
       return getIconIndex(stack);
       }
    }
    
    

    Merci d'avance !

    PS : Je m'excuse pour toutes fautes.



  • Salut,
    Essentials doit faire en sorte que cette enchantement ne s'applique qu'aux arcs Vanilla, donc tu as 3 solutions potentielles :

    • Faire ta propre commande de kit dans ton mod.
    • Chercher si il y aurait pas une option pour ça quelque part dans la config d'essentials.
    • Modifier Essentials.

    (PS : Penses à passer à une meilleure version que la 1.7.10 ^^)



  • En tout cas ce n'est pas en les aidant, puis en leur demandant gentiment ensuite qu'ils le feront. Une solution idéale serait d'abandonner ceux qui y persistent !



  • Merci AymericRed et Plaigon ya un problème avec la 1.7.10 ?

    Envoyé de mon SM-J500FN en utilisant Tapatalk



  • Disons qu'il serait temps de se mettre à jour…
    Mais reste comme tu es, il semblerait que certains membres MFF adoptent cette solution fixiste et continuent à aider les gens comme toi.



  • Toi à la deuxieme guerre mondiale, tu aurais été nazi.

    Envoyé de mon SM-J500FN en utilisant Tapatalk


  • Administrateurs

    On m'explique le pourquoi de cette attaque complètement deplacée ?



  • La facon dont il me parle ce n'est pas déplacée ?

    Envoyé de mon SM-J500FN en utilisant Tapatalk


  • Administrateurs

    La réponse de Plaigon était agressif mais pas déplacée, elle est totalement en rapport avec le sujet.
    Et même si elle était déplacé, ça ne t'autorises pas à répondre de la même façon ou pire. C'est à la modération de gérer ces cas.

    Ta réponse en plus d'être hors sujet fait une comparaison qui n'a absolument pas lieu d'être.

    J'attends toujours une réponse à ma question, si je n'ai pas une réponse un minimum correcte tu vas avoir le droit à des vacances forcés.



  • Je m'excuse mais je ne comprend pas pourquoi est il aussi agressif. Je vien de voir le forum et que cauldron avait été archivé je n'étais pas au courant donc je l'avoue je l'ai mal pris

    Envoyé de mon SM-J500FN en utilisant Tapatalk



  • Sinon, pour répondre à ton problème, ddzouille0202, je pence que la class de ton item devrait plutôt extends ItemBow, sinon il n'est pas possible d'appliquer les enchantements des arcs.



  • Ok merci

    Envoyé de mon SM-J500FN en utilisant Tapatalk



  • Je l'aide parce que tout simplement je sais ce que c'est d'être obligé de rester en 1.7.10 parce que tout update quand on a beaucoup de mods est trop complexe/long.
    J'ai poussé les projets où je suis à passer en version supérieures mais quand t'as pas un temps infini, des fois tu peux pas.
    Je comprendrais jamais ceux qui commencent un projet un 1.7.10 (faut être c**), mais il peut y avoir des raisons de rester, au moins temporairement en 1.7.10 dans certains cas.
    En tous les cas, je vais continuer à aider ceux en 1.7.10 parce que c'est pas le but d'un forum de refuser de l'aide qu'on peut donner, et pour ce que j'ai dit plus haut.



  • Le mod je l'ai commencer il y a 2 ans je crois que j'avais un peux abandonner mais je l'ai repris.

    Envoyé de mon SM-J500FN en utilisant Tapatalk



  • Merci LeBossMax2 c'étais bien sa.

    Envoyé de mon SM-J500FN en utilisant Tapatalk



  • Salut, si ton problème est réglé penses à le passer en résolu et de choisir la réponse qui t'as le plus aidé. Bonne continuation 😉



  • @'Joelchasseu':

    Salut, si ton problème est réglé penses à le passer en résolu et de choisir la réponse qui t'as le plus aidé. Bonne continuation 😉

    Il est en résolu non ?



  • Non, relis son message. Cette demarche fait partie du reglement du forum.



  • Voila

    Envoyé de mon SM-J500FN en utilisant Tapatalk