Minecraft Forge France

Version complète : Problème d'enchantements d'arc dans les kits essentials
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
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[i] = par1IconRegister.registerIcon(this.getIconString() + "_" + bowPullIconNameArray[i]);
       }
   }

   /**
    * 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
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
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
Pages : 1 2